Page 149 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 149
Scrum’da Uygulanan Kötü Pratikler | 149
Scrum kılavuzunda, “Sprint, diğer tüm etkinlikleri içinde barındıran bir etkinliktir.” ifadesi
vardır. Bu şu anlama gelmektedir; sprint ile ilgili tüm etkinlikler sprint içinde yapılır. Sprint
süresi dolduktan sonra toplantıları yapmak Scrum’a aykırı bir davranıştır. Bu yüzden toplantılar
da sprintin bir parçası olarak düşünülmeli ve planlama buna göre yapılmalıdır. Ayrıca, bu
etkinliklerden birinin yapılmaması Scrum’ın temel direklerinde zayıflık oluşturur. Örneğin, sprint
değerlendirme toplantılarının (retrospektif) yapılmaması gözlem (inspection) ve adaptasyonun
gerektiği şekilde yapılamamasına yol açar. Tüm etkinlikler, Scrum’ın önemli bir parçasıdır ve
plana uygun olarak yapılmalıdır.
Sprint hedefinin belirlenmesi, sprintte yapılacak işler için ortak bir amaç oluşturur ve takım
üyelerinin bireysel amaçlar yerine, bu ortak amaç için beraber çalışmalarını sağlar. Eğer sprint
hedefi, planlamadan önce belirlenmez veya planlama sırasında tam olarak kesinleştirilmezse,
sprint iş listesine (sprint backlog) birbiriyle bağlantılı olmayan veya rastgele işler alınabilir. Bu
durumda da Scrum’ın faydalarından yararlanılamaz. Eğer hedef belirlenemiyorsa ve bu durum
oluşuyorsa ürün belli bir olgunluğa ulaşmış olabilir. Bu durumda ise Kanban kullanmak daha iyi
bir çözüm olabilir. Aksi durumda ürün sahibi (product owner), ürün iş listesini olması gerektiği
gibi sıralamak yerine paydaşların isteklerine fazla önem verip hedefin odağını dağıtacak şekilde
sıralama yapabilir. Ürün sahibi, birden fazla paydaşı temsil edebileceğinden dolayı bu şekildeki
bir durumda, hedefe hizmet etmeyen işlerle sprint oluşabilir. Paydaşların istek ve görüşleri
ürünün geliştirilmesinde rol oynar ama paydaşlar öncelikli olduğunu düşündükleri durumlarda
ürün sahibini ikna etmelidir. Ürün sahibi, Scrum’ın dışına çıkmaya sebep olmayacak şekilde
ürün iş listesini düzenlemelidir. Bunun yanında birden fazla sprint hedefi belirlemek odağın
dağılmasına yol açar; hedefe ulaşılmasını, organize olmayı ve karar almayı zorlaştırır. Bir süre
sonra hangi hedefin daha önemli olduğu gibi sorulara yol açabilir. Tek hedef belirlense bile
sprint hedefine ulaşılamaması anormal değildir. Sprint hedeflerine ulaşılamadığında sprint
değerlendirme toplantılarında muhtemel sebepler tartışılıp iyileştirme yapılmalıdır. Eğer hedefe
ulaşamama alışkanlık haline gelirse o zaman Scrum uygulaması doğru ve faydalı olamaz.
Güçlendirme (hardening) veya temizlik sprintleri de Scrum felsefesine uygun değildir ve
yapılmaması gerekir. Güçlendirme sprintleri sürüm çıkılmadan önce ürünün sürüme hazır
olduğunu test etmek ve hataları gidermek için yapılmaktadır. Temizlik sprintleri ise kodda
düzenleme (refactoring) ve hata giderme işlerinin olduğu sprintlerdir. Sprintte çoğunlukla
test işleri, eski hataları düzeltme veya kötü kodları düzenleme gibi işler varsa üründe ilerleme
(increment) gerçekleşmiyorsa bu aslında temizlik sprinti yapıldığının sinyalini vermektedir. Bu
duruma gelinmiş ise bitti tanımı (definition of done) tam olarak anlaşılamamış ve işler hatalı
şekilde kapatılmış demektir. Ayrıca bu sprintlerin de tam olarak bir hedefi yoktur ve bunlar tam
olarak planlanamaz. Ilgili sprintlerde bir ilerleme (increment) olmaz ve ürün için yeni bir değer
üretilmemiş demektir.
Scrum kılavuzunda, “Scrum takımı, hızlı davranabilecek kadar küçük ve bir sprint içinde anlamlı
bir işi tamamlayacak kadar büyüktür. Tipik olarak 10 veya daha az kişidir. Genel olarak, daha
küçük takımların daha iyi iletişim kurduğunu ve daha üretken olduğunu gördük.” ifadesi vardır.
Kişi sayısı fazlalaşmaya başladığında karmaşıklık artmaktadır. Daha fazla kişi olması daha verimli
olunacağı anlamına gelmemektedir. Bu durumda takım ikiye bölünebilir. Takım ikiye bölünürken
sorumluluklar olması gerektiği gibi ayrılmalı, takımlara kişiler dengeli şekilde dağıtılmalıdır. Üç
veya daha fazla takım olduğunda ölçeklenmiş Scrum (Nexus, LeSS gibi) kullanmak iyi olabilir.
Birden fazla takım olduğu durumlarda, diğer takımların metriklerini göz önüne alarak rekabet
etmek uygun bir davranış değildir. Bu durum takım motivasyonuna zarar verebilir. Örneğin, bir