Tahmin, bir görevi tamamlamak, bir özelliği geliştirmek veya bir projeyi teslim etmek için gereken iş gücünün nicel bir değerlendirmesidir. Mobil geliştirmede tahminler, sprint planlaması, maliyet belirleme ve müşteri beklentilerini yönetmek için kullanılır. Project Management Institute, 2024'e göre, projenin erken aşamalarında tahmin hatası %100'e ulaşabilir ve bu da tahmini geliştirmedeki en zor disiplinlerden biri haline getirir.
Ana Noktalar
Tahmin (İngilizce estimate — değerlendirme), bir görevi tamamlamak için gereken zaman veya iş gücü miktarının öngörüsüdür. Mobil geliştirmede tahminler saat, gün, story point veya parasal terimlerle ifade edilebilir. Bir tahminin amacı kesin bir tahmin değil, karar verme için belirsizliği azaltmaktır.
Tahmin, hata payı olan bir öngörüdür. Taahhüt, bir görevi belirli bir tarihe kadar tamamlama sözüdür. Fark kritiktir: tahmin “muhtemelen 5 gün” der, taahhüt “5 günde yaparız” der. Yöneticiler genellikle bu kavramları karıştırır ve tahmini hata payı olmayan bir son teslim tarihine dönüştürür.
Tahmin süreci, sonucu kadar önemlidir. Ekip bir görev tahminini tartıştığında, gizli gereksinimler, bağımlılıklar ve riskler ortaya çıkar. Nihai sayı hatalı olsa bile, tartışma tüm katılımcılara görev hakkında bir anlayış kazandırır. Bu nedenle kolektif tahmin yöntemleri (Planning Poker) bireysel olanlardan daha etkilidir.
Projenin farklı aşamaları ve detay seviyeleri için uygun birkaç tahmin yöntemi vardır. Yöntem seçimi, mevcut verilere ve gereken doğruluğa bağlıdır.
| Yöntem | Tür | Doğruluk | Ne zaman kullanılır |
|---|---|---|---|
| Planning Poker | Uzman, kolektif | Yüksek (sprintte) | Sprint görev tahmini |
| T-Shirt sizing | Uzman, hızlı | Orta | Ön epik tahmini |
| Benzer tahmin | Geçmiş tabanlı | Orta | Geçmişteki benzer görevler |
| Üç nokta (PERT) | Olasılıksal | Ortalamanın üstü | Yüksek belirsizlikli görevler |
| Parametrik | Formül tabanlı | Verilere bağlı | Tekrarlanabilir ölçülebilir görevler |
Planning Poker, Agile'da en popüler tahmin yöntemidir. Her geliştirici Fibonacci sayıları (1, 2, 3, 5, 8, 13, 21) içeren bir kart destesi alır. Görevi tartıştıktan sonra, herkes aynı anda kartını gösterir. Tahminler farklıysa, en düşük ve en yüksek tahmine sahip geliştiriciler mantıklarını açıklar, ardından yeniden oylama yapılır. Bu yöntem otorite yanlılığını ortadan kaldırır ve daha doğru bir tahmin sağlar.
T-Shirt sizing, tişört boyutuna (XS, S, M, L, XL, XXL) göre kabaca bir tahmindir. Bu yöntem, ayrıntıların bilinmediği erken aşamalarda büyük görevlerin (epik) hızlı tahmini için kullanılır. Daha sonra, bu tür görevlerin her biri ayrıştırılır ve Planning Poker'de tahmin edilir. T-Shirt sizing, görev başına 5-10 dakika sürer ancak yalnızca bir büyüklük sırası sağlar.
PERT üç tahmin kullanır: iyimser (O), kötümser (P) ve en olası (M). Nihai tahmin şu formülle hesaplanır: (O + 4M + P) / 6. Bu yöntem belirsizliği hesaba katar ve tek bir tahminden daha gerçekçi bir sonuç verir. PERT özellikle yüksek riskli veya yeni teknolojili görevler için kullanışlıdır.
Tahmin doğruluğu, projenin aşamasına ve bilinen bilgi miktarına bağlıdır. Tahmin ne kadar erken yapılırsa, hata payı o kadar büyük olur — bu normaldir ve planlamada dikkate alınmalıdır.
Belirsizlik konisi (Cone of Uncertainty), proje ilerledikçe tahmin hatasının nasıl azaldığını açıklayan bir modeldir. Kavram aşamasında hata payı %400'tür (bir görev 1 ila 4 ay sürebilir). Sprint aşamasında bu oran %20'dir (1-1,2 ay). Bu modeli anlamak, erken aşamalarda kesin tahminler talep etmemeye yardımcı olur.
Göreceli tahmin (story point cinsinden), mutlak tahminden (saat cinsinden) daha doğrudur çünkü insanlar zamanı tahmin etmektense görevleri karşılaştırmada daha iyidir. “Bu görev, diğerinin iki katı karmaşık”, “bu görev 8 saat sürecek” ifadesinden daha güvenilir bir yargıdır. Göreceli tahminler belirli bir geliştiriciye bağlı değildir ve sorumlu kişi değiştiğinde doğruluğu korur.
Tahmin doğruluğu, sistematik bir yaklaşım, kolektif tartışma ve geçmiş hataların analizi yoluyla artırılabilir. Kanıtlanmış birkaç uygulama vardır.
2 günden fazla tahmin edilen herhangi bir görev, alt görevlere ayrıştırılmalıdır. İlke: bir görev %50'den fazla doğrulukla tahmin edilemiyorsa, çok büyüktür. Her biri anlaşılabilir ve tahmin edilebilir adımlara bölün. Ayrıştırmadan sonra, toplam tahmin genellikle ilk tahminden 1,5-2 kat daha büyük olur.
Bir tahmin geçmişi tutun ve gerçek iş gücüyle karşılaştırın. Örneğin: “3 story point olarak tahmin edilen görevler ortalama 4 gün sürer, 2 gün değil”. Tahmin için ekip velocity'sini kullanın: ekip sprint başına 20 story point tamamlıyorsa, 30 planlamayın. Geçmiş tahmin doğruluğunu analiz etmek, tahmin becerisi için en iyi eğitimdir.
Çıpalama, ilk söylenen tahminin tüm katılımcıları etkilediği psikolojik bir etkidir. Planning Poker'de çıpalamayı önlemek için herkes sırayla değil, aynı anda kartlarını gösterir. Kalibrasyon, tahminlerin gerçek sonuçlarla düzenli olarak karşılaştırılmasıdır: 10-20 sprintten sonra ekip, geri bildirim yoluyla daha doğru tahmin yapmayı öğrenir.
Her görev gizli riskler içerir: geliştirici hastalığı, API sorunları, gereksinim değişiklikleri. Tahmininize risk ayarlı bir faktör ekleyin: yüksek riskli görevler için 1,5-2 çarpanı; düşük riskli için 1,1-1,2. Hangi risklerin hesaba katıldığını ve bunların zaman çizelgelerini nasıl etkilediğini müşteriye şeffaf bir şekilde gösterin.
Tahmin hataları, olgunluklarına bakılmaksızın çoğu ekipte tekrarlanır. Bu hataları bilmek, düzeltmenin ilk adımıdır.
En yaygın hata, en iyi senaryoya göre tahmin yapmaktır: “her şey mükemmel giderse, 3 günde yaparız”. Gerçekte hiçbir şey mükemmel gitmez: hatalar, gereksinimlerle ilgili sorular, bağımlı görevler. Çözüm: iyimser değil, en olası senaryoya göre tahmin yapın. Değişkenliği hesaba katmak için PERT kullanın.
Bir yönetici “Cuma gününe kadar lazım” dediğinde, geliştirici bilinçaltında tahmini bu son teslim tarihine göre ayarlar. Baskı altında tahmin her zaman düşük olur ve teslim tarihlerinin kaçırılmasına yol açar. Çözüm: tahmin, son teslim tarihinden önce gelmelidir, tersi değil. Önce ekip tahmin yapar, sonra taraflar zaman çizelgeleri üzerinde anlaşır.
Görev karmaşıklığı (ne kadar düşünmek) ve zaman (ne kadar yapmak) farklı metriklerdir. Bir görev basit ama zaman alıcı olabilir (10 ekran oluşturmak) veya karmaşık ama hızlı olabilir (eski kodda hata bulmak). Story point'ler genellikle karmaşıklığı tahmin ederken, zaman ekip velocity'sinden türetilir.
Bir geliştirici tek bir görev üzerinde 8 saat boyunca kesintisiz çalışmaz: toplantılar, kod incelemeleri, meslektaşlara yardım ve idari işler, çalışma süresinin %30-50'sini tüketir. Bağlam değiştirme tahminde dikkate alınmalıdır: gerçekte, bir geliştirici günde 3-4 saat kod yazar.
Sıkça Sorulan Sorular
Geliştirme, yüksek belirsizlik içeren yaratıcı bir süreçtir. Her adımın bilindiği inşaat veya üretimin aksine, BT'de her görev benzersizdir. Bilinmeyen bilinmeyenler (unknown unknowns), hatanın ana nedenidir. Deneyimli bir ekip bile tahminlerin %30-50'sinde yanılır. Bu normaldir ve planlamada dikkate alınmalıdır.
Story point'ler sprint planlaması için daha iyidir çünkü görecelidir ve uygulayıcıya bağlı değildir. Saatler sözleşmeler ve dış raporlama için gereklidir ancak daha az doğrudur. En uygun kombinasyon: görevler story point olarak tahmin edilir ve zaman çizelgeleri ekip velocity'si aracılığıyla takvim günlerine dönüştürülür.
Bilinmeyen teknolojilere sahip görevler için önce bir Spike (zaman sınırlı araştırma) kullanın. Araştırmadan sonra ekip karmaşıklığı anlar ve gerçekçi bir tahmin verebilir. Normal tahmine 2-3 kat çarpan uygulayın ve öngörülemeyen zorluklar için %50 tampon ekleyin.
Ayrıştırmayı gösterin — görevi bireysel tahminlerle alt görevlere bölün. Zamanın nelerden oluştuğunu açıklayın: geliştirme, test, kod incelemesi, dokümantasyon. Alternatifler önerin: kapsamı azaltmak, işlevselliği basitleştirmek veya aşamalara bölmek. Gereksinimleri değiştirmeden asla tahmini düşürmeyin.
Yeniden tahmin, bir görev hakkında yeni bilgi ortaya çıktığında gereklidir: ek gereksinimler keşfedilir, teknik kısıtlamalar bulunur veya öncelikler değişir. Sprint içinde görevler yeniden tahmin edilmez — odak tamamlamadır. Sprintler arasında, grooming sırasında backlog yeniden tahmin edilir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun