Ben de dahil 4 devs proje ekibindeyim. Tek bir iş kaleminde ortaya çıkan ekstra işi nasıl ele alacağımız hakkında uzun bir tartışma yaşıyoruz.
Bu ekstra çalışma genellikle görevle biraz ilgili olan, ancak öğenin amacına ulaşmak için her zaman gerekli olmayan şeylerdir (bu bir fikir olabilir). Örnekler aşağıdakileri içerir ancak bunlarla sınırlı değildir:
- iş öğesi tarafından değiştirilen kodun yeniden düzenlenmesi
- öğenin değiştirdiği koda komşu yeniden düzenleme kodu
- biletin etrafındaki daha geniş kod alanını yeniden tasarlamak. Örneğin, bir öğe tek bir işlevi değiştirirse, bu değişikliğe daha iyi uyum sağlamak için tüm sınıfın artık yeniden yapılabileceğini fark edersiniz.
- yeni değiştirdiğiniz bir formdaki kullanıcı arayüzünü iyileştirme
Bu ekstra iş küçük olduğunda aldırmıyoruz. Sorun, bu ekstra çalışmanın, öğenin orijinal özellik noktası tahmininin ötesinde önemli ölçüde genişlemesine neden olmasıdır. Bazen 5 puanlık bir öğe aslında 13 puan alır. Bir durumda, geriye dönük olarak 80 puan veya daha fazla olabilecek 13 puanlık bir öğemiz vardı.
Tartışmamızda bunun nasıl ele alınacağına dair iki seçenek var.
Aynı iş öğesindeki ekstra işi kabul edebilir ve yanlış tahmin olarak yazabiliriz. Buna ilişkin argümanlar şunları içeriyor:
- Bu tür bir şeyi hesaba katmak için sprint sonunda "dolgu" yapmayı planlıyoruz.
- Kodu her zaman bulduğunuzdan daha iyi durumda bırakın. Yarım yamalak işi kontrol etmeyin.
- Daha sonra yeniden düzenleme yapmayı bırakırsak, programlamak zordur ve asla yapılamayabilir.
- Zaten kodun derinliklerinde olduğunuz için, bu işi şimdi ele almak için en iyi zihinsel "bağlamda "sınız. Şimdi yoldan çekilmek ve daha sonra geri döndüğünüzde bu bağlamı kaybetmekten daha verimli olmak daha iyidir.
Mevcut iş kalemi için bir çizgi çiziyoruz ve ekstra işin ayrı bir bilete gittiğini söylüyoruz. Bağımsız değişkenler şunları içerir:
- Ayrı bir bilete sahip olmak yeni bir tahmine izin verir, bu yüzden şeylerin gerçekte kaç puan olduğu konusunda kendimize yalan söylemiyoruz veya tüm tahminlerimizin korkunç olduğunu kabul etmek zorunda değiliz.
- Sprint "dolgusu", bilet gereksinimlerini karşılamanın doğrudan engelleri olan beklenmedik teknik zorluklar içindir. Sadece "iyi niyetli" yan öğeler için tasarlanmamıştır.
- Yeniden düzenleme planlamak istiyorsanız, iş yığınının üst kısmına koymanız yeterlidir.
- Bu tür şeyleri bir tahminde doğru bir şekilde açıklamamızın bir yolu yoktur, çünkü ortaya çıktığında biraz keyfi görünmektedir. Bir kod inceleyici "bu UI denetimleri (aslında bu iş öğesinde değiştirmediğiniz) biraz kafa karıştırıcı olabilir, bunu da düzeltebilir misiniz?" Bu bir saat gibidir, ancak "Bu kontrol şimdi diğerleriyle aynı temel sınıftan miras alıyorsa, neden tüm bu (yüzlerce satır) kodu tabana taşımıyorsunuz ve tüm bunları yeniden sarmıyorsunuz? , basamaklı değişiklikler vb.? " Ve bu bir hafta sürüyor.
- Bilete ilgisiz çalışmalar ekleyerek "suç mahallini kirletir" ve orijinal özellik nokta tahminlerimizi anlamsız hale getirir.
- Bazı durumlarda, ekstra çalışma bir check-in işlemini erteleyerek geliştiriciler arasında engellemeye neden olur.
Bazılarımız şimdi bazı kesintilere karar vermemiz gerektiğini söylüyoruz, ek şeyler 2 FP'den azsa, aynı bilete gidiyor, eğer daha fazla ise, yeni bir bilet yapın.
Agile'ı kullanmaya sadece birkaç ay kaldığımız için, buradaki daha deneyimli Agile gazilerinin bunun nasıl ele alınacağına dair görüşü nedir?