paint-brush
Yazılım Mühendisliğinde Tahmin Edilebilirlik Neden Hızı gölgede bırakıyor?ile@davydov
33,900 okumalar
33,900 okumalar

Yazılım Mühendisliğinde Tahmin Edilebilirlik Neden Hızı gölgede bırakıyor?

ile Denis Davydov4m2023/10/30
Read on Terminal Reader

Çok uzun; Okumak

Hız, Çevik yazılım geliştirmede verimliliği ölçmek için genellikle birincil ölçü olsa da, öngörülebilirlikten ziyade hıza öncelik verilmesi sorunlara ve teknik borca yol açabilir. Bu makale, bir geliştirme ekibinin başarısının ölçümü olarak öngörülebilirliğin önemini savunuyor ve en iyi sonuçlar için hız ile öngörülebilirlik arasında bir denge bulunmasını öneriyor.
featured image - Yazılım Mühendisliğinde Tahmin Edilebilirlik Neden Hızı gölgede bırakıyor?
Denis Davydov HackerNoon profile picture



Teknoloji dünyasında hız, bir geliştirme ekibinin üretkenliğini ölçmek için genellikle temel ölçüttür. Hız, bir ekibin belirli bir zaman diliminde tamamlayabileceği iş miktarını ölçmek için Agile yazılım geliştirmede kullanılan ve genellikle her yinelemede tamamlanan hikaye noktaları veya kullanıcı hikayeleriyle temsil edilen bir değerlendirmedir. Başka bir deyişle, bu tamamen ekibin kodu ne kadar hızlı geliştirdiği ve özellikleri ne kadar hızlı aktardığı ile ilgilidir. Ancak hız harika olsa da, doğru dengelenmezse kötü sonuçlara ve perde arkası karışıklıklara yol açabilir.


İlerlemeyi takip etmek için harika bir sistem oluşturan, birbirine eşlik eden birçok başka ölçüm olmasına rağmen, hız en popüler olanlardan biri ve dolayısıyla en yanlış uygulananlardan biri olmaya devam ediyor.


Hızın Cazibesi… Ve Tehlikeleri

Hız çoğu zaman ön plandadır. Ekipler, yeni bir özelliği ne kadar çabuk hayata geçirebildikleri veya pazardaki en son değişime ne kadar çabuk uyum sağlayabildikleriyle gurur duyuyor. Bu hız dürtüsü, rakiplere ayak uydurma, kullanıcıları meşgul etme ve sürekli yenilik yapma arzusunu ifade ediyor. Düşünce süreci basittir: Ne kadar hızlı hareket ederseniz o kadar çok başarı elde edersiniz ve paydaşlarınıza o kadar çok değer sunarsınız.


Şimdi bunu parçalayalım. Tam hıza çıkmak bazen çok daha önemli bir şeyi kaçırmak anlamına gelebilir: daha az tükenmişlikle veya hiç tükenmişlikle, dolayısıyla tutarlı bir şekilde çalışma yeteneği. Süper yüksek bir binayı süper hızlı ancak dengesiz bir temele sahip olarak inşa ettiğinizi hayal edin. Zamanla bu, tonlarca teknik karmaşanın birikmesine neden olabilir; bu, daha sonra geri dönecek olan hızlı çözüm çözümlerinin gizli maliyetidir. Elbette, ışık hızında teslimatın çekiciliği vardır, ancak daha sonra getirebileceği baş ağrılarını da düşünmeye değer.



Tahmin Edilebilirlik: Güçlü Araç

Bir ölçüm olarak öngörülebilirlik, bir ekibin veya sistemin belirli bir zaman diliminde sonuçları sunma konusundaki tutarlılığı ve güvenilirliğini ifade eder. Ekiplerin hıza odaklanmak yerine odaklarını öngörülebilirliği artırmaya kaydırması gerekiyor.


Bunun birkaç nedeni var:


  • Paydaşlarla net beklentiler belirlemek.

    Bir ayda 100 puan, sonraki iki ayda sadece 10 puan gibi çeşitli sonuçlar veren bir ekip, paydaşlar için bir rollercoaster olabilir. Belirsiz çıktılar, paydaşları bundan sonra ne bekleyeceklerinden emin olamayarak ikilemde bırakıyor. Bunun yerine, örneğin her ay tutarlı bir şekilde 40 puan toplayan bir takım MVP olur ve oyundaki güvenilir oyuncu haline gelir. İş dünyasının gerçekten arzuladığı şey de budur: öngörülebilirlik .


  • Ne kadar az hata olursa oyun o kadar uzun olur.

    Tahmin edilemezlik ara sıra parlaklık patlamalarına neden olsa da, uzun vadede gerçekten kazanan şey öngörülebilirliğin istikrarlılığıdır. Şöyle bir şey var: öngörülebilirliğe giden yol haritası evrensel değil. Elbette her takımın kendine has bir yolculuğu var. Ancak en iyi performans gösterenlerin bir modeli var.


    Olgun çevik uygulamalar, yüksek performanslı öngörülebilir ekipler arasındaki ortak noktadır. İster Scrum'a, Kanban'a ister çeşitli metodolojilere dalmış olsunlar, bu ekipler kendi çekirdekleriyle uyumlu ritmi belirlediler ve hem yapılandırılmış çalışmaya hem de yaratıcı özgürlüğe alan sağladılar. Öte yandan, her sprint veya yinelemenin bir öncekini gölgede bırakması için sürekli bir gelişme dürtüsü vardır.


    Belirli bir örneği ele alalım. Atlassian'ın Jira'sı, basit bir hata ve sorun izleyici olarak başladı ancak geniş bir sektör yelpazesine hizmet sunarak dünyanın en popüler proje yönetimi araçlarından biri haline geldi. Elbette şirketin yükselişinde rol oynayan çok sayıda farklı faktör var, ancak öngörülebilirlik kesinlikle en önemli faktörlerden biri. Tutarlı yinelemelerden oluşan geçmişi (tutarlı ve düzenli güncellemeler sunan), geri bildirim döngüsü, genişletilebilir ekosistemi ve şeffaf bir yol haritasıyla Jira, dünya çapında birçok kuruluştaki konumunu güvence altına aldı.


Denge: Hız ve Tahmin Edilebilirlik

Bu makaledeki en önemli amacım öngörülebilirliğin neden hıza galip geldiğini göstermek olsa da, görevim en iyi uygulamanın her zaman bu ikisi arasında iyi bir denge kurmak olduğunu belirtmektir. Kuşkusuz, en adil ölçümün seçilmesi söz konusu olduğunda öngörülebilirlik, en uzun oyunu vaat eden bir şeydir. Ancak çok yönlü bir değerlendirme sistemi oluşturma yeteneğiniz varsa, her iki (veya hatta daha fazla) ölçümü kalibre etmenin yolunu bulmak en iyi yoldur.


Bu altın orta yolu bulmak hibrit bir yaklaşım gerektirir. Bu sadece farkı bölmek anlamına gelmez; bunun yerine her iki unsuru da geliştirme yaşam döngüsüne entegre etmek anlamına gelir. Örneğin yinelemeli gelişim, belirli sprintler sırasında hız patlamaları sağlayabilir ve bunu öngörülebilirliğin ve iyileştirmenin öncelikli olduğu dönemler takip edebilir. Hem hızın hem de tutarlılığın değerinin farkında olan ekipler, hem zamanında hem de güvenilir bir ürün üretmek için her birinin güçlü yönlerinden yararlanarak yaklaşımlarını belirli proje ve aşamalara göre uyarlama becerisine sahip olacak.


Sonuç olarak, yazılım dünyasının sonsuz bir yük gibi gelmemesi gerektiğini akılda tutmak zor ama gerçekten önemli. Zaten karmaşık olan mühendislik görevleri sorunlu ve bazen sığ ölçümlerle birleştiğinde, işin gerçek özü karartılır ve çoğu zaman gereksiz gerginlik artar. Bir teknoloji ekibinin başındaysanız başarıyı nasıl ölçtüğünüz ve ekibinize nasıl rehberlik ettiğiniz üzerinde düşünmeniz çok önemlidir. Hepsinden iyisi, değerlendirmeyi hedeflediğiniz diğer geliştiricilere soru sormak ve onları kontrol etmeye devam etmektir.