Startup’ların Vazgeçilmez İki Terimi: Agile ve MVP

Ali Kazım Sandal
Kodluyoruz
Published in
4 min readSep 14, 2020

SaaS’ta La Vista dördüncü hafta!

Agile Yazılım Geliştirme

Yazılım projelerinin yarısından çoğu maliyet veya kapsam açısından başarısız olmaktadır. Bu başarısızlıkla sonuçlanan yazılım projelerinin risk faktörlerinin ortadan kalkması için Agile metodu geliştirilmiştir. Bu projeler hızlı gelişen müşteri gereksinimlerinin doğru ve net olarak belirlenmesi, proje yönetim metotlarının uygulanmadan geliştirilmesi, projenin iyi takip edilememesi gibi durumlardan dolayı başarısız olmaktadır.

Yukarıda görmüş olduğunuz çember, bir ürün ekibinin geçtiği genel aşamaların en yalın haliyle gösterim şeklidir. Bu aşamaların detayları için Google Design Sprint metodolojisini inceleyebilirsiniz.

Bu metodolojiye göre probleme yönelik bir fikri ortaya koyduktan sonra geliştirme aşamasına geçiyorsunuz. Bu geliştirme aşamasında problemi çözebilecek gerekli yazılımların geliştirilmesi, tasarımların yapılması, test edilmesi gibi aşamaları gerçekleştirirsiniz. Ardından ürün canlıya çıkar, müşteri görüşmeleri başlar ve gerekli testlerin yapılması sonucu müşteriden feedback’ler alınır. Alınan feedback’ler ve yapılan müşteri testleri doğrultusunda yeni problemler elde edersiniz. Bu yeni problemleri nasıl çözebiliriz diyerek yeni bir fikir aşamasına tekrardan geri döner ve yeniden geliştirme aşamasına geçersiniz.

Yapılan bir araştırmaya göre yazılım projelerinin %68'i değişen koşullara ayak uyduramadığından, zaman ve maliyet hedeflerini aştığından başarısızlıkla sonuçlanıyor. Bu durum şirketleri yeni yöntemleri denemeye yöneltmiştir. Birçok şirket bu yöntemlerden en esnek ve iterasyona en açık olan yöntem olan Agile metodolojisini seçmektedir.

Agile yaklaşımının geleneksel Waterfall (Şelale) yaklaşımına göre avantajları aşağıdaki gibidir:

  • Planlamanın döngüler halinde daha kısa sürede yapılması
  • Müşteri ihtiyaçlarına daha esnek bir şekilde cevap verilebilmesi ve proje üzerinde etkisinin daha az olması
  • Projede ekip ruhunun daha güçlü olması
  • Ürünün son teslimden önce müşteri tarafından görülerek test edilmesi dolayısıyla ürünün kabul edilmemesi riskinin azaltılması
  • Müşterinin proje ekibi ile devamlı işbirliği içinde olması gerektiği için projeye olan bağlılığın artması ve ürünün sahiplenilmesi
  • Projede liderliği sadece proje yönetim ekibinin değil, çeşitli proje üyelerinin de insiyatif alarak kullanabilmesi

Agile proje yönetiminin asıl uğraştırıcı olan kısmı temelinde iterasyona dayanmasıdır. Kabaca, “yapılmak istenen projeyi küçük parçalara bölme, bu çalışan küçük parçaları bir araya getirerek tamamlama ve bu yinelemeyi bütün proje bitene kadar tekrar etme işlemidir” diyebiliriz.

Her bir iterasyonu farklı mini projeler olarak düşünülebiliriz. Her iterasyon için test ve onay aşamaları da ayrıca tamamlanıyor. Böylelikle her iterasyon sonunda projenin belli bir kısmı onaylı bir şekilde tamamlanmış oluyor.

Waterfall modelinde projenin testi tüm development tamamlandığında yapılırken; Agile süreçte her bir iterasyon sonrasında projenin çalışan parçaları ayrı ayrı test edilir ve müşteri geri bildirimleri sonrasında projenin ilgili kısmına entegre edilir. Böylelikle proje üretim boyunca sürekli teste tabi tutulmuş olacaktır.

MVP (Minimum Viable Product)

Minumum Viable Product olarak bilinen MVP, yapacağımız ana ürünün hızlıca hedef kitlesinden feedback alabilmek ve ürüne pazarda bir ihtiyaç olup olmadığını anlamak için minimum efor ve fonksiyon setiyle ürünün hayata geçirildiği halidir. Ürünün odaklandığı alanda hedef kitlesine değer sunabilen en ufak yapıdır.

Bir metafor ile anlatacak olursak, MVP’yi yürüyen bir iskelete benzetebiliriz. Bir iskeletin en önemli özelliği ayakta durabiliyor ve yürüyebiliyor olmasıdır. Üstünde derisi, saçı veya organları olmadığı için çok iyi veya tamamlanmış gözükmez ancak iş görür bir yapıdadır. Bir MVP’nin de en önemli özelliği en hızlı sürede en az kaynak kullanılarak ortaya test edilebilir ve iş görebilir bir ürün çıkarmaktır.

Peki MVP için ilk aşamada ürününüzün hangi özelliklerini geliştireceğinizi nasıl belirleyeceksiniz?

Öncelikle geliştirmek istediğiniz tüm özellikleri yazmanız ve görmeniz gerekiyor. Daha sonrasında bu özellikleri yukarıdaki gibi bir önceliklendirme matriksine yerleştirmelisiniz. Önceliklendirme matriksinde en önemli olup en kolay yapabiliceğiniz özelliklere odaklanmanız gerekiyor (High value).

Son olarak önceliklendirmeleri yaptıktan sonra ürününüzün her kategorisi için geliştirmeyi düşündüğünüz özellikleri öncelik sırasına koyarak yukarıdaki gibi bir özellik tablosu oluşturmalısınız. Her kategoride en öncelikli olan ilk özellikler sizin MVP’nizde hangi özellikleri çıkarmanız gerektiğini gösterecektir.

Konu hakkında daha ayrıntılı bilgi edinmek isterseniz bunları da inceleyebilirsiniz:

MVP & Kullanıcı Akışı ile ilgili:

Development ile ilgili :

https://medium.com/swlh/agile-for-startups-594e47500dc6

--

--