@Joe "Biz" Çevik "bir dükkanız, bu yüzden ayarlamamız gerekiyor ve ne olmasın, ama bazen değişim büyük ve önemsiz bir şey değil."
İşleminiz gereksinimlerdeki değişim oranını kontrol etmenize izin vermiyorsa, işleminiz çevik değil, gelişigüzeldir. Çevik "benim yoluma gelen herhangi bir şeyi almak" anlamına gelmez.
Gereksinim değişikliğini / sürünmeyi kontrol etmek için - işleminizde - bir gereksinimin değişmediği fikrini kabul edebilirsiniz (Scrum'ın kalbindeki bir kavramdır). Bir gereksinim değişikliğini eski bir gereksinimi yenisiyle değiştirerek ele alın. Gereksinimlerin bir birikimine sahip olmanız ve kullanıcının hangilerini uygulamak istediğini seçmesi gerekir.
İki haftada X ve Y'yi istedin, ama aniden Z'yi istiyorsun. Peki, o zaman sana her üçünü de 4 haftada teslim edebilirim. Veya iki hafta içinde bir çift (X ve Z) veya (X ve Y) veya (Y ve Z) verebilirim ve kalanını daha sonra teslim edebilirim. Seç.
Müşterilerle bu şekilde pazarlık edersiniz. Gereksinim değişikliği maliyetini bu şekilde iletirsiniz. Grubunuzun bu gücü yoksa, çevik bir dükkanda değilsiniz ve bu konuda yapabileceğiniz hiçbir şey yoktur. Berbat, ama doğru.
Pazarlık yapabileceğiniz durumlarda, gereksinimleri ve gereksinim değişikliklerini uygulamak için gereken süreyi (hassas bir şekilde) izlemeniz gerekir. Yani, geçmiş ve şimdiki projelerden bu verileri toplamalısınız.
Orijinal zaman tahminini ve gerçek tamamlanma süresini (geliştirici sayısı gibi kaynaklara ek olarak) istek başına (veya N isteklerinden etkilenen modül) toplarsınız. Daha da iyisi, istek / istek değişikliğinin boyutunu tahmin edin (geçmiş projeler ve taleplerdeki kod satırları veya işlev noktaları açısından).
Kullanıcıyla konuşabileceğiniz bir metriğiniz olduğunu varsayalım. Yeni bir isteğin, örneğin, 1K kod satırı veya her biri ortalama 5 giriş alanına sahip 10 web sayfası (50 işlev noktası) alacağını biliyorsunuz.
Daha sonra geçmiş projelerinize özgü geçmiş verilere bakarak (bazıları kod satırlarına göre, bazıları web sayfalarına, bazıları gerçek işlev noktalarına göre) ve bu maliyetlerin her birinin mutlak tamamlanma süresi açısından nasıl olduğunu tahmin edebilirsiniz. Yeterli veriye sahip olanlar için, gerçek bir geliştirici kafa sayısını izleyen gereksinimleri de belirleyebilirsiniz.
Sonra bunu kullanırsınız ve müşterinize geçmiş verilere dayalı olduğunu söylersiniz; proje başarısızlıklarının üstel bir dağıtım takibi yapma eğiliminde olduğunu; ve sonra müşteriniz için aşağıdaki argümanla silahlanıyorsunuz:
Geçmiş ve şimdiki projelerimizden ve mevcut kaynaklarımızdan elde edilen verilere dayanarak, sorduğunuz gereksinim
X'in% 25 hata olasılığıyla tamamlanması için geçen süre (veya başarının% 75'i)
1.5 * X'in% 5'lik bir başarısızlıkla (veya% 95'lik başarıyla) tamamlanması için geçen süre
% 95 başarısızlık (veya başarının% 5'i) ile 0,5 * X tamamlama süresi
Zaman kaynaklarının bir fonksiyonu olarak başarısızlık olasılığı tipik olarak% 95,% 25 ve% 5'tir (üstel bir dağıtıma benzemektedir). Belli bir temel miktarın biraz iyi bir başarı şansı verdiğini (ancak gerçek risklerle) ). Bunların 1.5'i minimum riskle neredeyse belirli bir başarı şansı verebilir, ancak bundan çok daha az olabilir (orijinalin 0,5'i neredeyse kesin başarısızlığı garanti eder.)
Bunu sindirmelerine izin verdin. Eğer riskli öneri için devam ederse ( dün yapılır! ) En azından yazılı olarak söylediniz. Grubunuzun sadece çevik değil mühendislik gibi olma umudu varsa, o zaman müşteri sayılarınıza ciddi önem verebilir ve bu ve gelecekteki talepleri buna göre planlayabilir.
Mühendis olarak, istek değişiklikleri ücretsiz bir yemek değildir, doğrulanabilir ve açık terimlerle açıklamak bir mühendis olarak sizin görevinizdir.