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
   144   145   146   147   148   149   150   151   152   153   154