Yazılım geliştirmedeki rutin iş miktarının, ihmal edilemez olmasa bile nispeten küçük olması gerektiğine ve bunun yazılım tahmininin temel sorunu olduğuna ikna oldum.
Bu sonuca nasıl geldiğimi açıklayayım ve argümanın ciddi kusurları olup olmadığını söyleyeyim:
Yüksek doğrulukla tahmin edilebilecek tek şey, daha önce yapılan şeyler anlamına gelen rutin çalışmadır. Araştırma ve yaratıcılığı içeren diğer tüm işler gerçekten tahmin edilemez, en azından yüzde +/- 20'lik bir doğrulukla değil.
Yazılım geliştirme tamamen tekrar eden görevlerden kaçınmakla ilgilidir. Temel ilkelerinden biri KURU'dur (kendinizi tekrarlamayın). Bir programcı kendini tekrar eden şeyler yaptığında bulduğunda, bu tekrardan kaçınan bir soyutlama bulma zamanı gelmiştir. Bu soyutlamalar, yinelenen kodu bir işleve çıkarmak veya bir döngüye koymak gibi basit şeyler olabilir. Ayrıca, alana özgü bir dil oluşturmak gibi daha karmaşık olabilirler. Her halükarda, bunları uygulamak araştırma (daha önce herhangi biri yapmış mı?) Veya yaratıcılık içerecektir.
Bu iki noktadan yukarıdaki sonucu çıkarıyorum.
Aslında bir süredir neden bu ilişkinin diğer tartışmalarda, blog yazılarında veya yazılım tahminiyle ilgili makalelerinde bahsedilmediğini merak ediyorum. Çok teorik mi? Varsayımlarım yanlış mı? Yoksa çok önemsiz - ama neden tanıdığım çoğu geliştirici yüzde +/- 20 veya daha iyi bir doğrulukla tahmin yapabildiklerine inanıyor?