Yazılım Ustalığı ve Yetkinlik
Scrum’ın yükselişi Çeviklik topluluğunda dehşet yarattı. “Uncle Bob”, bu problemi beşinci Çevik Bildiri değerini, Saçmalıktan ziyade Ustalık (Uygulama) eklemek isteyerek belirgin hale getirdi[Martin – “Quintessence”]. Bu çok daha fazla ihtiyaç duyulan bir topluluğun, Yazılım Ustalığı topluluğunun oluşmasını sağladı[“Manifesto for Software Craftsmanship”].
Bunu daha önce söylemiştim, Çeviklik, İşbirliği ve Usta-Çıraklık üzerine odaklanmıştır. Biz, yazılım geliştiriciler topluluğu olarak süreklilik için Yetkinlik kültürüne ve teknik mükemmeliyete dikkat etmek zorundayız. Bu konuda daha fazla bilgi için Uncle Bob’un makalesine bakınız[Martin – “The Land that Scrum Forgot”].
Aşağıdaki diyagram, Yazılım Ustalığı Bildirisi’nin Schneider Kültür Modeli içinde hangi kültüre denk geldiğini gösterir.
Şaşırtıcı olmayan bir şekilde Yetkinlik Kültürü üzerinde büyük bir yoğunluk vardır. Bu kültürde başarıya en iyi olarak ulaşılır. Ustalık, olunabilecek en iyi yazılım geliştirici olmak demektir.
Verimli partnerlik ilkesi yalnız kalır. Esas konu, gerçek problemleri çözen değerli yazılım üretmek için müşteri ile beraber çalışmaktır. Sadece kod yazan maymun olmak değildir.
Neden Önemsemeliyiz?
Ustalık, eXtreme Programming tarafından geliştirilen teknik pratiklerin desteklendiğinden emin olmak için var olmak zorundadır. Bu teknik pratikler sürdürülebilir geliştirme ve pofuduk Çevik Kültürü içinde kaybolmamak için kullanılır. Acımasızca refactor, çalışabilir en basit şeyi yap, Test Driven Development(TDD), Acceptance Test Driven Development(ATDD), sürekli entegrasyon, sürekli teslim, ortak kod sahipliği, temiz kod vb.
Ayrı bir hareketin oluşum ve varoluşunu desteklemek için Yetkinlik Kültürü, Çevikliğin dışında yer alır. Ustalık, İşbirliği ve Usta-Çırak kültürüne odaklanmış, Yetkinlik kültürüne odaklanmamış Çevik kültürün yeteneklerini destekler.
Yazılım Ustalığı kültürünü bitirmeden önce bir dip not, bu bildirinin Ustalık hareketinin önemli bir noktasını doğru bir şekilde yansıtmadığını belirtmek isterim. Öğrenmeye ve gelişmeye derin bağlılık(Usta-Çıraklık Kültürü). Bu değer, yazılım geliştirmede mükemmeliyet hedefini desteklemek için vardır.