Scrum Eserleri (Scrum Artifacts)
Scrumın eserleri, şeffaflığın yanı sıra gözlem ve adaptasyon fırsatları sunmak için yapılan işi veya üretilen değeri temsil eder. Bu eserler, herkes eserden aynı şeyi anlayabilsin diye kilit bilginin şeffaflığını en üst seviyeye yükseltecek şekilde tasarlanmıştır.
Ürün İş Listesi (Product Backlog)
Ürün İş Listesi, üründe ihtiyaç duyulduğu bilinen her şeyin sıralandığı bir listedir. Üründe yapılacak herhangi bir değişiklik için yegâne gereksinimler kaynağıdır. Ürün Sahibi, Ürün İş Listesinin içeriğinden, erişilebilirliğinden ve sıralamasından sorumludur.
Bir Ürün İş Listesi asla tam değildir. Başlarda ilk bilinen ve en iyi anlaşılan gereksinimleri gösterir. Ürün ve içinde kullanılacağı ortam değiştikçe Ürün İş Listesi de değişir. Ürün İş Listesi dinamiktir; ürünün kullanışlı, rekabetçi ve faydalı olabilmesi için neye ihtiyaç duyduğunu belirlemek amacıyla sürekli değişir. Eğer bir ürün varsa, Ürün İş Listesi de var olur.
Ürün İş Listesi, üründe gelecek yayınlarda yapılacak değişikliklerin kaynağı olan tüm özellikleri, işlevleri, gereksinimleri, iyileştirmeleri ve düzeltmeleri sıralar. Ürün İş Listesi kalemlerinin tanımı, sırası, (büyüklük) tahmini ve değeri vardır. Ürün İş Listesi kalemlerinin, genellikle “Bitti” tanımına göre tamamlandığını kanıtlayan test tanımları da bulunur.
Bir ürün kullanıldıkça, değer kazandıkça ve pazar geribildirim verdikçe Ürün İş Listesi daha geniş ve ayrıntılı bir listeye dönüşür. Gereksinimler sürekli değiştiği için Ürün İş Listesi yaşayan bir listedir. İş gereksinimlerindeki, pazar koşullarındaki veya teknolojideki değişmeler Ürün İş Listesinde de değişikliklere neden olabilir.
Aynı ürün üzerinde çoğunlukla birden fazla Scrum Takımı çalışır. Ürünle ilgili yapılacak işleri tarif etmek için tek bir Ürün İş Listesi kullanılır. Böyle bir durumda Ürün İş Listesi kalemleri gruplandırılabilir.
Ürün İş Listesini iyileştirme (refinement), Ürün İş Listesindeki kalemlere ayrıntı, tahmin ve sıra özellikleri ekleme eylemidir. Ürün Sahibi ve Geliştirme Takımının Ürün İş Listesi kalemlerinin ayrıntıları üzerinde çalıştığı devamlı bir süreçtir. Ürün İş Listesi iyileştirme çalışması esnasında kalemler gözden geçirilir ve güncellenir. Scrum Takımı iyileştirmenin ne zaman ve nasıl yapılacağına karar verir. İyileştirme işlemi genellikle Geliştirme Takımının kapasitesinin %10’undan fazlasını almaz. Ancak Ürün İş Listesi kalemleri Ürün Sahibi tarafından veya onun takdiriyle her an güncellenebilir.
Üst sırada olan Ürün İş Listesi kalemleri genelde daha açıktır ve alt sıradakilerden daha ayrıntılıdır. Açıklık ve ayrıntı arttıkça daha isabetli tahminler yapılabilir. Sıranın altına doğru indikçe ayrıntı azalır. Ürün İş Listesi kalemlerinin Sprint süresi içerisinde “Bitti” olabilmesi için Geliştirme Takımının sıradaki Sprintte meşgul olacağı kalemler iyileştirilir. Geliştirme Takımının bir Sprintte “Bitti” durumuna getirebileceği Ürün İş Listesi kalemleri Sprint Planlamada seçim için “Hazır” kabul edilir. Ürün İş Listesi kalemleri genellikle yukarıda tarif edilen iyileştirme faaliyetleriyle böyle bir şeffaflık derecesine ulaşır.
Geliştirme Takımı tüm tahminlerden sorumludur. Ürün Sahibi Geliştirme Takımını ilgili kalemleri anlaması ve uygun tercihler yapması için etkileyebilir. Ancak son söz, işi yapan Geliştirme Takımınındır.
Hedeflere Doğru İlerlemeyi İzlemek
Hedefe ulaşmak için geriye kalan iş her an hesaplanabilir. Ürün Sahibi en azından her Sprint Değerlendirme toplantısında geriye kalan toplam işi izler. Ürün Sahibi projelendirilen toplam işin istenen zamanda tamamlanıp tamamlanamayacağını anlamak için önceki Sprint Değerlendirme toplantısında kalan işle bu rakamı kıyaslar. Bu bilgi tüm paydaşlar nezdinde şeffaflaştırılır.
İlerlemeyi öngörmek için aşağı-tüketim (burn-down), yukarı-tüketim (burn-up) veya kümülatif akış (cumulative flow) gibi eğilim ölçen çeşitli planlama araçları kullanılmaktadır. Bu araçların faydası kanıtlanmıştır. Ancak bunlar deneyciliğin önemini gölgeleyemezler. Karmaşık ortamlarda, ne olacağı bilinemez. İleriye dönük kararlar almada sadece geçmişte ne olduğu bilgisinden faydalanabilirsiniz.
Sprint İş Listesi (Sprint Backlog)
Sprint İş Listesi, (1) Sprint için seçilen Ürün İş Listesi kalemlerini ve (2) Ürün Parçasını teslim etme ve Sprint Hedefine ulaşma planını içerir. Sprint İş Listesi, Ürün Parçasında hangi fonksiyonların olacağına ve bu fonksiyonları “Bitti” tanımına uygun bir Ürün Parçasına dönüştürmek için gerekli olan işe dair bir öngörüdür.
Sprint İş Listesi, Geliştirme Takımının Sprint Hedefine ulaşmak için gerekli gördüğü tüm işleri görünür kılar. Sprint İş Listesi, sürekli iyileştirmeyi sağlamak için, bir önceki Retrospektif toplantısında belirlenen en az bir yüksek öncelikli süreç iyileştirme maddesini içerir.
Sprint İş Listesi, Günlük Scrumda ilerlemenin anlaşılabilmesi için yeterli ayrıntıyı içeren bir plandır. Geliştirme Takımı, Sprint boyunca Sprint İş Listesini değiştirir; Geliştirme Takımı Sprint içerisinde plana uygun çalıştıkça ve Sprint Hedefine ulaşmak için gerekli olan işi daha fazla anladıkça Sprint İş Listesi belirginlik kazanır.
Yeni bir iş gerektikçe, Geliştirme takımı bunu Sprint İş Listesine ekler. İş yapıldıkça, kalan iş miktarı tahmini güncellenir. Gereksiz görülen her unsur plandan çıkarılır. Sadece Geliştirme Takımı, Sprint boyunca Sprint İş Listesini değiştirebilir. Sprint İş Listesi, Geliştirme Takımının Sprint boyunca başarmayı planladığı işin son derece görünür, gerçek-zamanlı bir resmidir ve sadece Geliştirme Takımına aittir.
Sprintin İlerlemesini İzlemek
Sprint İş Listesindeki toplam kalan iş Sprintin herhangi bir anında hesaplanabilir. Geliştirme Takımı, Sprint Hedefini gerçekleştirmeye ne derece yakın olduğunu görebilmesi için en azından her Günlük Scrumda toplam kalan işi izler. Geliştirme Takımı, Sprint boyunca kalan işi izleyerek ilerlemesini yönetebilir.
Ürün Parçası (Increment)
Ürün Parçası, bir Sprint boyunca tamamlanan Ürün İş Listesi kalemlerinin ve tüm geçmiş Sprintlerin Ürün Parçalarının değerlerinin toplamıdır. Sprintin sonunda, yeni Ürün Parçası “Bitti” olmalıdır yani kullanılabilir durumda olmalı ve Scrum Takımının “Bitti” tanımına uymalıdır. Ürün Parçası, Sprint sonunda deneyselliği destekleyen gözlemlenebilir tamamlanmış bir bütündür. Ürün Parçası, vizyona veya hedefe doğru atılmış bir adımdır. Ürün Sahibi yayın kararı versin veya vermesin, kullanılabilir bir durumda olmalıdır.
Eserlerin Şeffaflığı
Scrum şeffaflığa dayanır. Eserlerden ne anlaşılıyorsa ona göre değeri en üst seviyeye çıkarma ve riski kontrol etme kararları verilir. Şeffaflığın tam olması hâlinde, bu kararların sağlam bir temeli olur. Eserlerin tam olarak şeffaf olamaması hâlinde kararlar zayıftır, üretilecek değer azalabilir ve risk artabilir.
Scrum Master, eserlerin tam olarak şeffaf olup olmadığını anlamak için Ürün Sahibi, Geliştirme Takımı ve ilgili taraflarla birlikte çalışmalıdır. Eksik şeffaflıkla başa çıkmak için belli pratikler vardır; Scrum Master şeffaflığın eksik olması halinde en uygun yöntemi kullanması için herkese yardım etmelidir. Scrum Master, eserleri gözlemleyerek, davranış kalıplarını sezerek, ne söylendiğine iyi kulak vererek ve beklenenle gerçek sonuçlar arasındaki farkları inceleyerek eksik şeffaflığı tespit edebilir.
Scrum Masterın görevi eserlerin şeffaflığını artırmak için Scrum Takımı ve organizasyonla birlikte çalışmaktır. Bu görev genellikle öğrenme, ikna ve değişimi içerir. Şeffaflık bir gecede sağlanmaz; bir yolculuktur.
“Bitti” (Done) Tanımı
Bir Ürün İş Listesi kalemi veya bir Ürün Parçası için “Bitti” deniyorsa, herkes “Bitti”nin ne olduğunu anlamalıdır. Scrum Takımlarının birbirinden farklı “Bitti” tanımları olabilir. Şeffaflığı sağlamak için, bir takım içerisindeki herkes işin hangi durumda bitmiş sayılacağına dair aynı bilgiye sahip olmalıdır. İşte bu Scrum Takımının “Bitti” tanımıdır ve Ürün Parçası üzerindeki çalışmanın değerlendirilmesi için referanstır.
Aynı tanım, Geliştirme Takımına Sprint Planlamada kaç Ürün İş Listesi kalemini seçeceğinde rehberlik eder. Her Sprintin amacı, Scrum Takımının “Bitti” tanımına uyacak şekilde potansiyel olarak yayınlanabilir işlevselliğe sahip Ürün Parçaları teslim etmektir.
Geliştirme Takımları her Sprintte işlevselliğe sahip bir Ürün Parçası teslim eder. Ürün Parçası, Ürün Sahibinin hızlı yayın kararı verebilmesi için kullanılabilir hâldedir. Eğer bir Ürün Parçasının “Bitti” tanımı, geliştirmeyi yapan organizasyonun kılavuzları, standartları ve genel iş yapış şeklinin bir parçasıysa, Scrum Takımları bunlara asgari standart olarak uymalıdır.
Eğer “Bitti” tanımı organizasyonun iş yapışının bir parçası değilse, Geliştirme Takımı ürün için uygun olan bir “Bitti” tanımı yapmalıdır. Eğer sistem veya ürün yayını üzerinde çalışan birden fazla Scrum Takımı varsa, tüm Geliştirme Takımları ortak bir “Bitti” tanımı getirmelidir.
Her bir Ürün Parçası, tüm önceki ürün Parçalarının üzerine gelir ve bunların birlikte çalışmalarını temin edecek şekilde test edilir.
Scrum Takımları olgunlaştıkça, “Bitti” tanımlarının yüksek kalite için daha zorlu kriterler içerecek şekilde genişlemeleri beklenir. Yeni tanımlar, daha önce “Bitti” tanımına uygun olarak geliştirilen Ürün Parçalarında yapılacak işleri ortaya çıkarabilir. Bir ürünün veya sistemin üzerinde yapılacak herhangi bir işlemin standardını ifade eden bir “Bitti” tanımı olmalıdır.