500 K kod satırı aşan bir kod tabanı ile çalışıyorum. Yeniden düzenlemeye ciddi ihtiyaç var. Normal iki haftalık sprint süresinden daha uzun süreceği tespit edilen yeniden düzenleme çalışmaları yapıldı. Bu sitedeki diğer cevaplarda önerildiği gibi bunlar daha küçük görevlere bölünemez. Ürün, yinelemenin sonunda çalışmalıdır ve kısmi yeniden yapılandırma, öğeler arasındaki bağımlılık korkunç olduğu için sistemi kullanılamaz bir durumda bırakacaktır. Peki bu engele yaklaşmanın en iyi yolu ne olabilir? Yine bahsetmiştim, daha küçük parçalara ayırmak, zaten yapılmış bir seçenek değil.
Güncelleme: İnsanların neden 2 haftalık bir sprint ile uyuşamayacağına dair bir açıklama yapması gerekiyor. Bir sprintde sadece kod yazmaktan daha fazlası var. Test olmadan kodsuz bir politikamız var. Bu politika her zaman mevcut değildi ve kod tabanının büyük bir bölümünde bunlara sahip değil. Ayrıca entegrasyon testlerimizden bazıları hala manuel testlerdir. Mesele, yeniden yapılanmanın kendisinin çok büyük olması değil. Küçük değişikliklerin sistemin birçok parçası üzerinde etkisi olduğu gerçeğinden dolayı, bu parçaların doğru bir şekilde çalışmasını sağlamak zorundayız.
Bir sprint'i uzatamaz veya uzatamayız çünkü aylık düzeltmelerimiz vardır. Bu nedenle, bir sprintin ötesine uzanan bu değişiklik, düzeltmeye eklenen diğer işleri durduramaz.
Yeniden düzenleme vs Yeniden tasarlama: Geliştirme sürecimizin bu yeniden düzenleme işlemini iki haftalık bir döngüde gerçekleştirecek kadar verimli olmaması, yeniden tasarım olarak yeniden adlandırılmasını garanti etmez. Gelecekte, sürecimiz geliştikçe iki haftalık bir süreç içerisinde aynı görevi yerine getirebileceğimize inanmak istiyorum. Burada söz konusu olan kodun çok uzun zamandır değişmesi gerekmedi ve oldukça kararlı. Şimdi, şirketin yönü değişime daha uygun hale geldikçe, kod tabanının bu bölümünün geri kalan kısımlar gibi uyarlanabilir olmasını istiyoruz. Bu yeniden tadilat gerektirir. Buradaki cevaplara dayanarak, bu yeniden düzenleme işleminin normal sprintlerin zaman diliminde çalışması için gereken eksik iskelenin olduğu anlaşılıyor.
Cevap:
Corbin March'ın ilk kez önerdiği dal ve birleştirme yaklaşımını yapacağım, böylece bu sorun alanları ve eksik testlerin nasıl tespit edileceği hakkında daha fazla bilgi edinebiliriz. Bence ilerlemeye devam ediyorum, Buhb'un testlerin eksik olduğu alanları tespit etmek için önerdiği yaklaşımı benimsemeli, önce bunları uygulamalı, sonra yeniden düzenlemeyi yapmalı. Normal iki haftalık sprint çevrimimize devam etmemize izin verecek, tıpkı birçok kişinin söylediği gibi refactoring için her zaman böyle olması gerektiğini söyledi.