"yazılım bittiğinde yapılır, daha erken değil, daha sonra."
Bu doğrudur, ancak geliştiricilerin üzerinde çalışmaya başladığı her görev için, kuruluşunuzdaki herkes her iş için Tamamlanan Tanımını anlıyor mu?
En büyük sorunlarınızdan birinin Tahmin olduğu anlaşılıyor , ancak geliştiriciler yalnızca açık ve net bir şekilde belirlenmiş bir “tanım tanımı” yaptıklarında gerçekçi bir tahmin sağlayabilirler. (Bu, şirket işlem sorunlarını içerir - örneğin kullanıcı belgeleri, resmi sürümdeki çalışma paketleri vb.)
Çoğu geliştiricinin bir görevi tamamlamak için gereken süreyi tahmin etmenin, sorulmasının en zor olduğunu düşündüğü göz önüne alındığında, aşırı tahminin soruna neden olması şaşırtıcı değildir.
Bununla birlikte, çoğu geliştirici, belirli bir süre boyunca harcayabilecekleri çaba konusunda makul ( iyimser de olsa ) bir işlem yapma eğilimindedir .
Sorun genellikle, geliştiricilerin bir görev ile eksik bilgilerle uğraşırken gereken toplam çaba miktarı arasında bir ilişki oluşturmakta zorlanıyor olmalarıdır - özellikle de gerçekten çok büyük bir görevin önündeki tüm cevapları bulmaya zorlanırlarsa .
Bu, doğal olarak zaman tahminlerinin gerçeklikle bağlantısının kopmasına neden oluyor ve yapım süreci ve kullanıcı dokümantasyonu gibi şeyleri gözden kaçırıyorlar.
Bağlantı kesme, görev tanımlandığında en baştan başlama eğilimindedir; ve genellikle gerekli çaba miktarına dair hiçbir ipucu olmadan bir ihtiyaç listesi oluşturan teknik olmayan bir kişi tarafından birleştirilir.
Bazen üst yönetimdeki insanlar görevleri belirler ve şirketin süreç sorunlarını tamamen görmezden gelir; Üst düzey yönetimin, testleri tanımlamak, resmi yayınlanmış bir yapı oluşturmak veya bir kullanıcı belgesini güncellemek için zaman veya çaba harcamadan sihirli bir şekilde gerçekleştiğini düşünmesi nadir değildir. gereklidir.
Bazen bir geliştirici kod satırı yazmadan önce projeler başarısız olur, çünkü birileri bir yerde işlerini doğru yapmıyor.
Geliştirme ekibi şartları kabul etme veya kabul kriterlerini yakalamada yer almıyorsa, bu yönetimin bir başarısızlığıdır - çünkü bu, kodu ve teknik sorunları tam olarak anlamayan birinin işi tamamlanmamış bir gereklilikler dizisine adadığı anlamına gelir; ve projeyi yanlış yorumlamaya, kapsam sürünmesine, altın kaplamaya vb. açık bıraktı.
Geliştirme ekibi yakalama ve gereksinimleri kabul katılan, o zaman ayrıntıları (ve kabul kriterlerini netleştirilmesi sorumludur ekibin, bir başarısız olabilir - "? Dağıtılabilir görünüm gibi olan neyi yani yapılır ?" ). Geliştirme ekibi aynı zamanda başka engelleyici sorunların olduğu durumlarda veya bir gereklilik gerçekçi olmadığı takdirde HAYIR demekten de sorumludur .
Yani geliştiriciler gereksinimleri yakalamada yer alıyorsa:
- Ekip, yapılan gereksinimleri / tanımları netleştirmek için ürün yöneticisiyle görüşme şansına sahip mi?
- Ekip, ima edilen / üstlenilen gereksinimleri netleştirmek için yeterli sorular soruyor mu? Bu sorular ne sıklıkla tatmin edici bir şekilde cevaplanmaktadır?
- Ekip , bir tahminde bulunmadan önce Kabul kriterlerini (yapılan tanımı) talep ediyor mu?
- Kabul kriterleri genellikle her görev için ne kadar iyi ele geçirilir? Çok az ayrıntı içeren belirsiz bir belge mi yoksa somut işlevselliği ve geliştiricinin açıkça testten geçebileceğini ifade eden somut ifadeler mi?
Şansınız, ekibinizin verimliliğinin bir sorun olmaması; Ekibiniz büyük olasılıkla , gelişim konusunda harcayabilecekleri her türlü çabayı gösteriyor. Gerçek sorunlarınız aşağıdakilerden biri veya birkaçı olabilir:
- Eksik ve belirsiz şartlar.
- Öncelikle çok büyük olan ihtiyaçlar / görevler.
- Geliştirme ekibi ve üst yönetim arasında zayıf iletişim.
- Görevler takıma verilmeden önce açıkça tanımlanmış bir kabul kriterleri eksikliği.
- Kabul testlerinin eksik veya belirsiz / belirsiz şartnamesi. (yani Bittiğin Tanımı)
- Kabul kriterlerini tanımlamak / kabul etmek için ayrılan zaman yetersiz.
- Geliştiriciler, mevcut temel kodu test etmek veya mevcut hataları düzeltmek için zaman düşünmediler
- Geliştiriciler mevcut temel kodu sınamış , ancak gereksinimler hakkında tahminlerde bulunmadan önce hataları Engelleme Sorunları olarak gündeme getirmemişlerdir.
- Yönetim sorunları / hataları gördü ve yeni kod yazmadan önce hataların düzeltilmesi gerekmediğine karar verdi.
- Geliştiriciler zamanlarının% 100'ünü hesaba katma baskısı altındadır, ancak zamanlarının% 20'sini (veya bazı benzer sayılarını) muhtemelen toplantılar, dikkat dağıtıcılar, e-postalar, vb.
- Tahminler gerçek değerde kabul edilir ve hiç kimse hata veya beklenmedik durum için odayı ayarlamaz (örn. "Bunun 5 gün sürmesi gerektiğine karar verdik, bu yüzden 8'de yapılmasını bekleyeceğiz").
- Tahminler herkes tarafından (geliştiriciler ve yönetim) gerçekçi bir "aralık" sayıları yerine tek sayılar olarak ele alınır - yani
- En iyi durum tahmini
- Gerçekçi tahmin
- En kötü durum tahmini
... liste bundan daha uzun sürebilir.
Bazı "gerçekleri bulma" yapmanız ve tahminlerin tam olarak neden gerçekçilikten kopuk olduğunu anlamanız gerekiyor. Mevcut temel yazılım kötü mü? Birim test kapsamı yok mu? Geliştiricileriniz yönetim ile iletişimden kaçınıyor mu? Yönetim, geliştiricilerle iletişimden kaçınıyor mu? “Bitti'nin Tanımı” söz konusu olduğunda, yönetim beklentileri ile geliştirici beklentileri arasında bir kopukluk var mı ?