Scrum, Bitti Tanımını (DoD – Definition of Done) oldukça basit terimlerle tanımlar: Her bir kullanıcı hikâyesinde ortak olan kabul kriterleridir.

Scrum’ın amacı potansiyel olarak canlıya alınabilecek çıktılar (increment) üretmektir. Yazılım geliştirenler bilirler. Yazılım aslında bir problemi çözülebilir küçük parçalara ayırıp çözme işidir. Küçük parçalar ne kadar küçük ve anlaşılırsa çözmesi de o kadar kolay olur. Her bir parçayı, yani her bir işi bitirip bir başkasına geçeriz.  Peki, bir işin bitip bitmediğini nasıl anlarız?

Ürün sahibi takımın yaptıklarını “gözden geçirme” (sprint review) toplantısında inceler ve her bir hikayenin bitmiş olup olmadığına bakar. Örneğin; testlerinin yazılmış olması eğer bittinin tanımı içerisinde varsa, testleri yazılmamış bir geliştirme henüz bitmemiş demektir. “Review” toplantılarında ürün sahibi bu kontrol listesine uymayan işler için “başarısız” kararı verebilir. Bu yüzden takımlar kendi bitti tanımlarını oluştururlar.

Yazılımlar, döngüler, kullanıcı hikâyeleri ve sürümler için bitti tanımları oluşturabilirsiniz. Sizlerle örnek bir kaç tane bitti tanımı kriteri paylaşıyorum.

Bitti Tanımı Kriterleri

  • Yazılım: Birim testler, koda yeteri kadar yorum girilmesi, kod yazıldıktan sonra re-faktör edilmesi, ortama özel konfigürasyon değerlerinin belirlenmesi.
  • Kullanıcı Hikayeleri: Yazılım işlerinin tamamlanması, analiz, tasarım ve test hikayelerinin belgelendirilmesi, entegrasyon testi yapılması.
  • Döngüler: Bütün hikayelerin Product Owner tarafından kabul edilmesi, sprint gözden geçirme toplantısında tüm demo senaryoları üzerinden geçilmesi.
  • Sürümler: Tüm performans ve güvenlik testlerinin yapılması, sürüm notlarının hazırlanması.

“Bitti” tanımındaki kriterler, yalnızca tek bir kullanıcı hikâyesi için değil, Ürün Biriktirme Listesi’ndeki tüm öğeler için geçerli olacak şekilde tasarlanmalıdır. 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 Scrum takımlarındaki geliştirme takımları ortak bir “Bitti” tanımı getirmelidir.

Bitti tanımı, başarılı yazılım geliştirmede anahtar etmenlerden biri olup takımın belirlediği “Minimum Kalite Eşiği” dir. Takımların tüm elemanları ile ortaklaşa belirlediği, kaliteli yazılım yapabilmek için yapmayı taahhüt ettiği kurallardır. Kalite, her zaman geliştirme takımının sorumluluğundadır.

Scrum Takımları olgunlaştıkça, “Bitti” tanımlarının yüksek kalite için daha katı kriterler içerecek şekilde genişlemeleri beklenir. Kaliteli ürün ve kaliteli şekilde bitmiş bir ürün iş kalemi, takımın hız (velocity) değerini de yükseltecektir.

Scrum ritüellerinden Sprint Retrospective etkinliği ise takımların bu bitti tanımlarını gözden geçirmesi ve geliştirmesinde en uygun ortamı sağlar. Toplantılarda, düzenli olarak kriterlerinizi gözden geçirip düzenlemeler yapmanız, sizlere bu çalışmalarda büyük avantaj sağlayacaktır.

Peki sizin bitti kriterleriniz nelerdir?

Behire Tapınç
YTÜ Üniversitesi Matematik Mühendisliği ve Endüstri Mühendisliği bölümleri mezunu olup, yine aynı üniversitede, Bilgisayar Mühendisliği / Bilgi Teknolojileri alanında yüksek lisansını tamamlamıştır. IT sektöründe özel bir firmada "Yazılım Ürün Yöneticisi" olarak çalışmalarına devam etmektedir.