27 Ekim 2007 Cumartesi

Kavram: Sprint Backlog Tasks

Ekibin veya bir ekip üyesinin, Product Backlog içerisindeki maddelerden birisini, sistem fonksiyonalitesine dönüştürmek için gerekli gördüğü göreve Sprint Backlog Task denir. Bu görevler Sprint Backlog içerisinde listelenir.

Her Sprint Backlog Task aşağıdaki öğeleri içerir:
  • Görevin tanımı
  • Görevin kimin sorumluluğunda olduğu
  • Belirli bir gün için, o görevi tamamlamak için daha ne kadar efor gerektiği

Kavram: Sprint Backlog

Bir sprint boyunca ekibin üzerinde çalışmayı planladığı görev listesine Sprint Backlog denir. Bu görev listesi Sprint boyunca sürekli gelişir. Sprint Backlog içerisindeki her bir göreve Sprint Backlog Task denir.

Sprint Backlog'taki görevler şu şekilde tanımlanır:
  • Görevin tanımı
  • Görevin kimin sorumluluğunda olduğu
  • Belirli bir gün için, o görevi tamamlamak için daha ne kadar efor gerektiği

Geleneksel Proje Yöneticisinin İç Konuşması

Bir proje yöneticisi olarak benim görevim, planlanan sonuçlara ulaşmaktır. Bu görevi yerine getirmek için en iyi yol, sonuçları yönlendirmek için planı kullanmaktır. Burada tercih ettiğim yaklaşım, nişan almak, tekrar nişan almak ve dikkatlice ateş etmektir. Herzaman, süreçleri sıkı biçimde kontrol altında tutmaya çalışırım. Kontrolümü kaybediyor olduğumu hissettiğimde, prosedürleri ve kurralları daha sıkı hale getiririm. Proje rotasının dışına çıktığında, projeyi ilk baseline'a uygun şekilde düzeltirim. Projede kendi rolümü, bir görev yöneticisi olarak görüyorum. Başarılı bir proje, ilk seferinde doğru sonuca ulaşandır.

Çevik Proje Yöneticisinin İç Konuşması

Bir proje yöneticisi olarak benim görevim, beklenen sonuçları keşfetmektir. Bu görevi yerine getirmek için en iyi yol, planı yönlendirmek için sonuçları kullanmaktır. Burada tercih ettiğim yaklaşım, ateş etmek ve sonradan kurşunun yönünü değiştirmektir. Herzaman, süreçleri gevşek tutmaya çalışırım. Kontrolümü kaybediyor olduğumu hissettiğimde, referanslara, prensip ve değerlere mutabık kalmak konusunda gayret gösteririm. Proje rotasının dışına çıktığında, projeyi o anki duruma en uygun hale getiririm. Projede kendi rolümü, bir ilişki yöneticisi olarak görüyorum. Başarılı bir proje, son hamlede doğru sonuca ulaşmış olarak biten projedir.

Scrum Nedir

Scrum, kısa döngüler ile çıktı üretme ve sürekli iyileştirme felsefesi üzerine oturan “çevik” proje yönetimi uygulamalarından biridir. Diğer çevik metodlojilere; eXtreme Programming, Adaptive Software Development, Crystal Clear, Feature Driven Development ve Lean Software Development örnek olarak verilebilir. Bunlar arasında en popüler olanları Extreme Programming ve Scrum’dır. Microsoft Solutions Framework Agile metodolojiler için de süreç kılavuzları sunmaktadır.

Scrum Jeff Sutjerland ve Ken Schawaber tarafından 1990’ların ortalarında geliştirilmiştir. Kapsam perspektifinden bakıldığında yüksek seviyede belirsizlik arzeden projelerde son yıllarda yoğun biçimde uygulanan ve başarılı sonuçlar üreten bir tür metololidir. Scrum, küçük takımlarda (<20) uygulaması kolay olan bir proje yönetimi yöntemi olup, büyük projelerde takımların küçük parçalara ayrılması ile etkinleştirilir. Scrum değişimi bir istisna olarak görmeyen, adaptif sistem geliştirme hayat döngüsü perspektiflerinin genel özelliğine paralel olarak proje kapsamının proje boyunca sürekli değişeceğini en baştan kabul eden bir yöntemdir. Bu kabul doğrultusunda Scrum, fazla dokümantasyon yapmadan, kısa periyotlarda geliştirme yapılıp, sonuçların müşteriye sıkça gösterildiği ve geribeslemeler doğrultusunda geliştirmelerin yönünün sürekli değiştiği, gereksiz geliştirmelerin minimuma indirilmeye çalışıldığı bir sürecin yönetimini üstlenir.

Scrum’ın süreçlerini kısaca ifade etmekte fayda var. Bu bağlamda Product Backlog, Sprint Backlog, Sprint ve Scrum toplantılarına kısaca değinelim. Scrum projelerinde ilk yapılan proje sponsorları ile bir masaya oturulup projenin kapsamını ifade eden “Product Backlog”u çıkartmaktır. “Product Backlog” proje sonunda üretilmesi beklenen sistemin özellik ve fonksiyonlarının önceliklerine göre yazıldığı bir liste dokümanıdır. Bu dokümanda, sponsorun ihtiyaçları ve istekleri öncelik sırasına konarak listelenir. Proje süresince bu doküman proje sponsoru tarafından sürekli güncellenir; yeni fonksiyon ve özellikler listeye eklenir, mevcut fonksiyon ve özelliklerin öncelikleri değiştirilebilir.

Scrum yöntemi ile yönetilen projeler “sprint” denilen fazlara ayrılır. Herbir “sprint”in süresi genellikle (en fazla) 30 gündür. İdeal olan proje boyunca boyunca tüm “sprint”ler aynı süreli olur. Proje takımı (scrum team), proje yöneticisi (scrum master) ile her sprint başlangıcında masaya oturarak yeni “sprint” dahilinde geliştirilecek özellik ve fonksiyonları belirler. Bu süreçte seçilen fonksiyon ve özellikler daha önceden oluşturulmuş ve sürekli güncellenen Product Backlog listesindeki sıra ile en öncelikli olanlardır. Hiçbir zaman önceliği düşük bir özellik veya fonskyon önceliği yüksek bir özellik veya fonskyiondan önce geliştirilemez. Bu bağlamda bazı “sprint”lerde proje takımı, Product Backlog’dan 4 eleman, bazı sprint’lerde 25 eleman seçebilir. Seçilen özellik ve fonksiyonlar Sprint Backlog denilen ikinci bir listeye aktarılır. Proje takımı bir sonraki sprint başlangıcına kadar bir daha Product Backlog’a bakmaz, o sprint dahilinde sadece ilgili Sprint Backlog listesine odaklanır.

Sprint Backlog dahilindeki her özellik veya fonsksiyon için maksimum 3 günlük geliştirme süresi verilir. Bu sürede sözkonusu elemanın geliştirmesinin tamamlanmasına çalışılır. Scrum takımı her sabah Scrum Master eşliğinde “Scrum” denilen günlük toplantısını yapar. Bu toplantıya tüm takım üyeleri katılmak zorundadır. Scrum toplantısına proje takımı dışındaki diğer proje paydaşları da katılabilir; ancak onların toplantı sırasında kesinlikle konuşma hakları yoktur; sadece dinleyici olabilirler. Konuşan paydaşlar bir sonraki “Scrum” toplantısına alınmaz. Scrum toplantılarında kimse oturmaz; herkes ayaktadır. Scrum toplantısında bir önceki gün yapılanlar, o gün yapılacaklar, karşılaşılan ve karşılaşılabilecek riskler tartışılır. Scrum toplantısı en fazla 15 dakika sürer.

Her sprint sonunda sprint raporu çıkarılır. Bu rapor dikey ekseni kalan Sprint Backlog’da bulunan ve daha geliştirilmemiş özellik ve fonskyion sayısını, yatay ekseni sprint gün sayısını gösteren iki eksenli basit bir rapordur. Her sprint için bir adet sprint raporu çıkarılır ve günlük olarak Scrum Master tarafından güncellenir. Sprint’in ilk günü yatay eksendeki değer en yüksektir, sprint sonuna doğru aşağıya doğru eğimli bir çizgi oluşur.