Diğer cevaplar tarafından ele alınmayan bazı hususları göstermeye çalışacağım ve IMO önemli.
Temel mesele şudur: Bazı geliştiriciler, zor bir iş yapmanın, bir tasarım ile düşünmenin, olası sorunları düşünmenin, sonra problemi parça parça çözmenin, başkalarıyla en az etkileşimle, uzun bir süre boyunca çözmenin mutluluğunu temel alır. zaman aralığı. Genelde işleri yüksek kalitede ve zamanında tamamlarlar; çalışmaları sürdürülebilir ve genel mimariye uyar.
Bu tür geliştiriciler çevik bir çevreye uyum sağlamayı zor bulabilir ve davranışları genellikle muhtemelen ego ya da eski moda olmakla ilgili "değişme isteksizliği" olarak reddedilir.
Genellikle göz ardı edilen şey, karmaşık sorunları çözmek için kişinin çok fazla bilgiyi ele alması gerektiği ve bunun çok fazla analize, düşünmeye, denemeye, bir çözüm çizmeye, bir kenara atmaya, başka bir deneye ihtiyaç duyabileceğidir. Böyle karmaşık bir problem bitmiş bir çözüm bulana kadar birkaç saatten birkaç haftaya kadar odaklanmış iş gerektirebilir.
Bir yaklaşım, geliştiricinin sorun belirtimini alması, odasına gitmesi ve iki / üç hafta sonra bir çözümle geri dönmesidir. Herhangi bir zamanda (gerektiğinde) geliştirici, ekibin diğer üyeleriyle veya paydaşlarla bazı etkileşimler başlatabilir (belirli konular hakkında sorular sorabilir) ancak işlerin çoğu, görevi atanan geliştirici tarafından yapılır.
Çevik bir senaryoda ne olur? Ekip, hızlı bir analizden (tımar) sonra sorunu küçük parçalara (kullanıcı hikayeleri) ayırır. Umut, kullanıcı hikayelerinin birbirinden bağımsız olmasıdır ancak çoğu zaman durum böyle değildir: karmaşık bir sorunu gerçekten bağımsız parçalara ayırmak için normalde ancak birkaç gün çalıştıktan sonra edineceğiniz bir bilgiye ihtiyacınız olacaktır. Başka bir deyişle, karmaşık bir problemi küçük bağımsız bölümlere ayırabiliyorsanız, bu sorunu temelden çözdüğünüz ve yalnızca titizlik çalışmalarınız kaldığı anlamına gelir. Örneğin, üç haftalık bir çalışma gerektiren bir sorun için, muhtemelen ikinci hafta boyunca, sprintin başlangıcında yapılan birkaç saatlik bakımdan sonra durum böyle olacaktır.
Bu yüzden, bir sprint planlandıktan sonra, takım muhtemelen aralarında bağımlı olan bir problemin farklı parçaları üzerinde çalışır. Bu, eşit derecede iyi olabilecek ancak birbirinden farklı olabilecek farklı çözümleri entegre etmeye çalışan çok sayıda iletişim yükü oluşturur. Temel olarak, deneme yanılma çalışması, ek bir iletişim ek yükü ile (dörtlü artışla) ilgili tüm ekip üyelerine dağıtılır. Bence bu sorunların bazıları Paul Graham tarafından, özellikle 7. maddede bu makalede çok iyi gösterilmiştir .
Elbette, çalışmayı ekip üyeleri arasında paylaşmak, projeden ayrılan bir ekip üyesiyle ilgili riski azaltır. Öte yandan, kod hakkındaki bilgiler başka yollarla da iletilebilir, örneğin kod incelemeleri kullanarak veya meslektaşlarına teknik sunumlar. Bu bakımdan, tüm durumlar için geçerli bir gümüş mermi olduğunu sanmıyorum: paylaşılan kod sahipliği ve çift programlaması tek seçenek değil.
Ayrıca, "çalışma işlevselliğinin daha kısa aralıklarla sağlanması", iş akışının kesintiye uğramasına neden olur. İşlevsellik öbeği bir sprint sonunda tamamlanabilecek "giriş sayfasına bir iptal düğmesi ekle" ise bu sorun yaratabilir, ancak karmaşık bir görev üzerinde çalışırken bu tür kesintileri istemezsiniz: olabildiğince hızlı bir şekilde 100 km'lik bir araba sürmeye çalışıyorum ve ne kadar yol aldığınızı kontrol etmek için her 5 dakikada bir durunuz. Bu sadece seni yavaşlatacak.
Tabii ki, sık kontrol noktalarına sahip olmak bir projeyi daha öngörülebilir hale getirmek içindir, ancak bazı durumlarda kesinti çok sinir bozucu olabilir: Birisi, durma ve bir şey sunma zamanının geldiğine ancak hız kazandırabilir.
Dolayısıyla, soruda açıklanan tutumun yalnızca ego veya değişime direnç ile ilgili olduğunu sanmıyorum. Bazı geliştiricilerin yukarıda açıklanan problem çözme yaklaşımını daha etkili olarak görmeleri de mümkündür, çünkü çözdükleri sorunları ve yazdıkları kodları daha iyi anlamalarını sağlar. Bu tür geliştiricilerin farklı şekillerde çalışmaya zorlanması üretkenliklerini azaltabilir.
Ayrıca, ekibin bazı üyelerinin belirli, zor problemlere göre yalıtılmış olarak çalışmasının çevik değerlere karşı olduğunu düşünmüyorum. Sonuçta, takımlar kendi kendilerini organize etmeli ve yıllar boyunca en etkili olduğu tespit edilen süreci kullanmalıdır.
Sadece 2 sentim.
There’s a great story of a manager of a Coca-Cola plant whose numbers were far better than his peers. When asked what his “secret” was, he said simply that rather than take a best practice and modify it to meet what the plant did, he instead modified the plant to match the best practice.
Neden yaptığını anlayana kadar çevik değilsin.