AdaYilmaz
Backend & API
Geçen ay bir arkadaşımın yanına oturdum, kafasında bir SaaS fikri vardı ama iki aydır kod yazmaya başlayamamıştı. Sebebini sorunca klasik cevap geldi: "Önce altyapıyı kurayım, sonra özellikleri eklerim." Ben de ona kendi başımdan geçen bir şeyi anlattım. İlk ciddi projemde ben de aynı tuzağa düştüm, kimlik doğrulamayı, rol yönetimini, e-posta kuyruğunu falan her şeyi baştan yazmaya kalktım. Üç hafta sonra elimde çalışan tek şey bir login ekranıydı ve kullanıcıya gösterecek hiçbir değer yoktu. O günden sonra kafamda şu netleşti: MVP, "az özellikli ürün" değil, "tek bir acıyı çözen en küçük şey".
Benim denediğim yöntem şu oldu: fikri yazarken üç soru soruyorum. Birincisi, bu problemi şu an insanlar nasıl çözüyor? Excel mi, WhatsApp grubu mu, kağıt kalem mi? İkincisi, benim çözümüm onların mevcut yönteminden hangi tek noktada daha iyi? Üçüncüsü, bunu bir hafta sonunda gösterebileceğim en yalın hali ne? Bu üçüncü soru en zoru, çünkü insanın içi rahat etmiyor, "biraz da şunu ekleyeyim" diyorsun. Ama eklediğin her özellik seni kullanıcıdan biraz daha uzaklaştırıyor.
Teknik tarafta da benzer bir şey var. Ben backend'ciyim, veritabanı şeması tasarlamaya bayılırım. Ama öğrendim ki MVP aşamasında şema işkencesi yapmak zaman kaybı. İlişkileri, indeksleri, cascade kurallarını mükemmelleştirmek yerine çalışan en kaba haliyle bırakıyorum. Sonra gerçek veri gelince zaten neyin yanlış olduğunu görüyorsun. Geçenlerde bir projede kullanıcı tablosuna eklediğim üç alanı hiç kimse doldurmadı, sildim gitti. Oysa tasarlarken "kesin lazım olur" demiştim.
Bir de şu var: MVP'yi kendi kendine test etmek yetmiyor. Arkadaşımda gördüm, ürünü kendi kafasında kurduğu senaryoya göre test ediyordu, her şey çalışıyordu. Ama ilk gerçek kullanıcı geldiğinde adam bambaşka bir yerden tıkladı ve akış çöktü. En az beş kişiye, hiç anlatmadan, sadece ekranı gösterip ne yapacağını izlemek gerekiyor. O beş kişi sana bir aylık kod yazmadan daha fazla şey öğretiyor.
Son olarak, MVP'yi bitirmek için bir tarih koymak şart. Ben kendime "iki hafta sonra şu kişiye göstereceğim" diye söz veriyorum, yoksa iş uzadıkça uzuyor ve mükemmelleşme tuzağına düşüyorum. Sizin de bu aşamada en çok vaktinizi yiyen şey ne oldu, altyapı mı, özellik seçimi mi, yoksa kullanıcı geri bildirimi toplamak mı?
Benim denediğim yöntem şu oldu: fikri yazarken üç soru soruyorum. Birincisi, bu problemi şu an insanlar nasıl çözüyor? Excel mi, WhatsApp grubu mu, kağıt kalem mi? İkincisi, benim çözümüm onların mevcut yönteminden hangi tek noktada daha iyi? Üçüncüsü, bunu bir hafta sonunda gösterebileceğim en yalın hali ne? Bu üçüncü soru en zoru, çünkü insanın içi rahat etmiyor, "biraz da şunu ekleyeyim" diyorsun. Ama eklediğin her özellik seni kullanıcıdan biraz daha uzaklaştırıyor.
Teknik tarafta da benzer bir şey var. Ben backend'ciyim, veritabanı şeması tasarlamaya bayılırım. Ama öğrendim ki MVP aşamasında şema işkencesi yapmak zaman kaybı. İlişkileri, indeksleri, cascade kurallarını mükemmelleştirmek yerine çalışan en kaba haliyle bırakıyorum. Sonra gerçek veri gelince zaten neyin yanlış olduğunu görüyorsun. Geçenlerde bir projede kullanıcı tablosuna eklediğim üç alanı hiç kimse doldurmadı, sildim gitti. Oysa tasarlarken "kesin lazım olur" demiştim.
Bir de şu var: MVP'yi kendi kendine test etmek yetmiyor. Arkadaşımda gördüm, ürünü kendi kafasında kurduğu senaryoya göre test ediyordu, her şey çalışıyordu. Ama ilk gerçek kullanıcı geldiğinde adam bambaşka bir yerden tıkladı ve akış çöktü. En az beş kişiye, hiç anlatmadan, sadece ekranı gösterip ne yapacağını izlemek gerekiyor. O beş kişi sana bir aylık kod yazmadan daha fazla şey öğretiyor.
Son olarak, MVP'yi bitirmek için bir tarih koymak şart. Ben kendime "iki hafta sonra şu kişiye göstereceğim" diye söz veriyorum, yoksa iş uzadıkça uzuyor ve mükemmelleşme tuzağına düşüyorum. Sizin de bu aşamada en çok vaktinizi yiyen şey ne oldu, altyapı mı, özellik seçimi mi, yoksa kullanıcı geri bildirimi toplamak mı?