“Bir uygulama fikrim var ama nereden başlayacağımı bilmiyorum” cümlesini çok sık duyuyoruz.
Bu ifade çoğu zaman fikrin zayıf olduğunu değil, fikrin nasıl ele alınması gerektiğinin net olmadığını gösterir.
Bu noktada yapılan en yaygın refleks, doğrudan yazılım geliştirme sürecine girmek olur. Bir ekip bulmak, teklif almak, ekranlar çizmek cazip görünür. Ancak fikri bu şekilde ele almak, çoğu durumda problemi çözmez; sadece belirsizliği daha pahalı hale getirir.
Bu yazıda, uygulama fikri olan ama nereden başlaması gerektiğinden emin olmayanlar için, ilk adımı doğru yere basmayı sağlayacak temel karar noktalarını ele alıyoruz.
Fikirle problem arasındaki fark genelde gözden kaçar
İyi fikirler çoğu zaman bir problemden doğar.
Ancak birçok projede problemle çözüm birbirine karışmıştır.
“Bir uygulama yapalım” bir fikirdir.
Ama şu soru net değilse, işin özü kaçırılır:
Bu uygulama hangi problemi çözecek ve bu problem bugün nasıl yaşanıyor?
Problem net değilse:
- özellik listesi hızla büyür
- öncelikler sürekli değişir
- “aslında bu bizim asıl ihtiyacımız değildi” cümlesi kaçınılmaz olur
Bu yüzden fikri ele alırken ilk adım, çözümü konuşmak değil; problemi netleştirmektir. Çözümler problemden sonra gelir.
“Herkes kullanır” genelde yanlış bir varsayımdır
Uygulama fikri olan birçok kişi için hedef kitle sorusu zordur.
En sık verilen cevaplardan biri şudur:
“Herkes kullanabilir.”
Ne yazık ki bu cevap, projeyi en çok zorlayan cevaplardan biridir.
Gerçek projelerde gördüğümüz ortak durum şudur:
İlk kullanıcı grubu her zaman nettir.
- ilk kullanım senaryosu sınırlıdır
- ilk beklenti dardır
- ilk değer önerisi çok spesifiktir
Herkese hitap etmeye çalışarak başlanan projelerde:
- kim için neyin önemli olduğu netleşmez
- geliştirme kararları zorlaşır
- ürün daha ilk aşamada ağırlaşır
Bu yüzden başlangıçta amaç, herkesi memnun etmek değil; bir problemi yaşayan küçük ama net bir kullanıcı grubunu anlamaktır.
İlk hedef ürün yapmak mı, yoksa öğrenmek mi?
Bu soru çoğu zaman hiç sorulmaz ama en kritik sorulardan biridir.
Bazı fikirlerde ilk hedef:
- satış yapmak
- kullanıcıdan ücret almak
- hızlı büyümek olabilir
Bazı fikirlerde ise ilk hedef:
- varsayımları test etmek
- kullanıcı davranışını görmek
- problemin gerçekten var olup olmadığını anlamaktır
Bu ayrım yapılmadan başlanan projelerde beklentiler çok hızlı bozulur.
Bir taraf “öğreniyoruz” derken, diğer taraf “neden satış yok?” diye sorar.
Bu yüzden uygulama fikrini ele alırken, ilk adımın amacı açıkça tanımlanmalıdır. Ürün geliştirmekle, öğrenmek aynı şey değildir.
Bu noktada yazılım geliştirme sürecine girmek gerçekten doğru mu?
Buradaki soru “hazır bir araç var mı?” sorusu değildir.
Asıl soru şudur:
Bu fikri doğrulamak için şu an özel yazılım geliştirmeye zaman ve bütçe ayırmak doğru bir adım mı?
Bazı durumlarda:
- fikrin kapsamı henüz çok geniştir
- kullanıcı davranışı hakkında yeterli veri yoktur
- çözümün kendisi sık sık değişmektedir
Bu gibi durumlarda doğrudan yazılım geliştirmeye başlamak, fikri netleştirmez; sadece belirsizliği koda bağlar.
Sağlıklı başlangıçlar genelde:
- fikri parçalara ayırarak
- varsayımları tek tek görünür hale getirerek
- hangi sorulara cevap arandığını netleştirerek
ilerler. Geliştirme, bu netlikten sonra anlam kazanır.
En sık yapılan hata: Her şeyi ilk versiyona koymaya çalışmak
Uygulama fikriyle yola çıkan ekiplerde sık karşılaşılan bir başka durum, ilk versiyonda her şeyi çözme isteğidir.
“Zaten başlıyoruz, bunu da ekleyelim” yaklaşımı:
- kapsamı şişirir
- kararları ağırlaştırır
- süreci uzatır
İlk adımda kritik olan, her ihtiyacı karşılamak değil; hangi ihtiyacın gerçekten test edilmesi gerektiğini bilmektir.
Bu noktada şu soru çok değerlidir:
Bu fikrin doğru olup olmadığını anlamak için en az neyi yapmamız yeterli?
Bu soru cevaplanmadan yapılan geliştirmeler, genellikle gereğinden fazla karmaşıktır.
Zamanlama: Her iyi fikir bugün yapılmak zorunda değil
Her iyi fikir, doğru zamanda ele alındığında anlam kazanır.
Ama her iyi fikir, hemen yazılım geliştirmeye başlanması gereken bir fikir değildir.
Bazen:
- problemi biraz daha gözlemlemek
- kapsamı bilinçli olarak küçültmek
- farklı bir yaklaşımla başlamak
çok daha sağlıklı sonuçlar verir.
Bu tür kararlar dışarıdan “yavaşlık” gibi görünse de, uzun vadede projenin hızını artırır. Çünkü yanlış kararlarla ilerlemek, en büyük zaman kaybıdır.
Peki ilk adım ne olmalı?
Uygulama fikri olan ama nereden başlayacağını bilemeyenler için ilk adım genelde şudur:
- fikri çözüm olarak değil, problem olarak ele almak
- varsayımları açıkça yazmak
- geliştirmeden önce kararları netleştirmek
Bu, kod yazmaktan daha az heyecanlı görünebilir.
Ama üretim süreçlerinde en çok rahatlatan şey, doğru sırayla alınmış kararlardır.
Eğer bu soruların cevapları net değilse, doğrudan geliştirmeye girmek yerine önce fikri değerlendirmek, uzun vadede çok daha sağlıklı bir başlangıç sağlar.
Bu noktada birçok ekip, bu netliği tek başına aramak yerine başka bir bakışla konuşarak netleştirmenin süreci hızlandırdığını görüyor.