Şirketimde, çevik uygulamalarla başarılı bir şekilde çalışıyoruz - ancak yinelemeleri kullanmadan. Bunun ana nedeni, bir yineleme döngüsünde KG'ye uyum sağlamak için temiz bir yol bulamamamızdır.
KG'yi, bu yapı müşteriye dağıtılmadan önce belirli bir yapıya (sürüm adayı) fazladan bir doğrulama olarak anlıyoruz . Mesele, tek bir kötü niyetli taahhüdün tüm sürüme zarar vermesini önlemektir. Hangisinin olduğunu asla bilemeyeceğiniz için, KG sürüm için tüm özellikler / taahhütler yapıda olana kadar beklemek zorundadır . (Meşhur son sözler yok "Bu sadece küçük bir değişiklikti".
KG bir sürüm adayında hata bulursa, geliştiriciler bu hataları ilgili sürüm dalında düzeltir (ve gövdeye birleştirir). Tüm hatalar düzeltildiğinde, KG'nin yeniden test etmesi için yeni bir yapı devreye alınır. Yalnızca belirli bir sürüm adayında hiçbir hata bulunmadığında, müşteriye doğrulama için sunulur.
Bu genellikle sürüm başına yaklaşık iki ila üç aday, yaklaşık bir hafta sürer. Düzeltmeleri yazma süresi genellikle test çabalarından çok daha düşüktür. Bu yüzden geliştiriciler meşgul tutmak için KG N üzerinde çalışırken N + 1 sürümü üzerinde çalışıyorlar.
Yinelemeleri kullanmadan, bu sorun değil çünkü N ve N + 1 sürümleri için işi üst üste getirebiliriz. Ancak, anladığım kadarıyla, bu Scrum veya XP gibi yinelemeye dayalı yaklaşımlarla uyumlu değildir. Yinelemeye dahil edilecek tüm test çabalarıyla sonunda bir yinelemenin serbest bırakılabilir olmasını talep ediyorlar.
Bunun zorunlu olarak aşağıdaki istenmeyen sonuçlardan birine yol açtığını düşünüyorum:
(A) Geliştiriciler bir yinelemenin sonunda boşta kalıyor, çünkü KG'nin bir sürüm adayını doğrulamak için zamana ihtiyacı var ve hata düzeltme çalışmaları geliştiricileri tamamen meşgul etmiyor.
(B) KG, ilk sürüm adayı hazır olmadan önce çalışmaya başlar. Stack Exchange'de en çok tavsiye edilen budur. Ancak şirketimin KG olarak anladığı şey bu değil çünkü test edilen belirli bir sürüm adayı yok. Ve her şeyi kıran "küçük değişiklik" hala fark edilmeden tanıtılabilir.
(C) Hatalar bir sonraki yinelemeye taşınır. Bu, Stack Exchange'de de önerilir. Bunun bir çözüm olduğunu düşünmüyorum. Temel olarak, hiçbir zaman doğrulanmış bir yapı almadığımız anlamına gelir, çünkü hata düzeltmeleri yapıldığında, aynı şubeye de yeni, doğrulanmamış taahhütler eklenir.
Bu ikilemden çıkmanın bir yolu var mı?