22.4.19

Scrum Nedir? En Sade Nasıl Anlatılır?

Scrum nedir? Nasıl yapılır gibi bir çok yerde bir çok şey okumuşsunuzdur. Ama gerçekten yapan birinin ağzından özünü anlatmak istedim.


Projelerde genelde bütçe ve kapsam sabit tutularak zamandan ya da kaliteden ödün verilir. Scrumda zaman ve bütçe sabit tutularak (sprint'ler ile) kapsam, anlamlı küçük parçalar (increments) haline getirilerek kalitenin daha iyi bir hale gelmesi sağlanır.

Product Backlog
Yapılacak işlerin hazırlanıp tutulduğu sepet gibi düşünebilirsiniz. Product owner backlog'da bulunan işlerin önceliklendirilmesinden ve güncellenmesinden sorumludur. Sprinte alınacak maddeler önceliklendirmeye göre alınır. Development team istemediği maddeyi sprinte kabul etmeyebilir.

Refinement Toplantısı 
Yazılımcılar ve analistler, analizi yapılan ve bir sonraki sprinte alınmak üzere önceliklendirilmiş maddelerde neler yapılacağı konuşulup, taskları çıkartılıt. Önceliklendirme yapılması sağlanır.

Sprint Plan toplantısı
Sprint'e dahil edilecek refine edilmiş maddelerin puanları verilerek, maddelerden hangisinin Sprint içinde yapılacağına karar verilir. Sprint için hedef (Sprint Goal) belirlenir.

Daily Scrum
Her sabah hedefe gitmek için dün ne yaptım, hedefe gitmek için bugün ne yapacağım toplantısı yapılır. Acil olan veya bayrak kaldırılması (yardım gereken) bir durum varsa bildirilir. Development Team tarafından 15 dakikadan uzun olmayacak şekilde yapılır.

Review 
Sprint'in son günü toplantısı yapılır
Yapılan işler gösterilir, bunları yaptık denir. Talebi yapan müşteriler ile birlikte yapılabilir.

Retrospective
Sprint'in son günü Review'dan sonra retrospective toplantısı yapılır
Sprint süresince yapılan iyi ve kötü şeyler, neden sprintin başarılı/başarısız olunduğu konuşulur. Kişinin yaptığı yanlışları paylaşması beklenir.

Impedement List
Sprintte yapılması gereken işlerin yapılmasına engel olan bir şey varsa scrum master tarafından çözülmesi için impedement liste eklenir.

Burndown Chart
Günlük olarak bitirilen puana göre çizilen grafiktir. Sprinte alınan puan ile başlar ve her iş bitiminde bitirilen iş kadar azaltılarak devam edilir. Amaç grafiği sprint sonuna kadar sıfıra kadar indirmektir. X ekseni zamanı, y ekseni ise kalan iş miktarını gösterir.

Definition of Done (DoD)
Development Team tarafından belirlenen, sprint plana alınan bir increment'e (çalışır ürün parçacığına) bitti demek için gerekli olan maddeleri içerir.

Increment
Önceki increment'lere eklenen çalışan ürün parçacığıdır. Tüm increment'lerin toplamı ürünü ortaya çıkarır.

Sprint
Maksimum 1 ay süren, Sprint Plan'da bitirilmesi belirlenen increment'lerin müşteri için kullanılabilir kalitede çıkması için taahhüt edilen süredir. Scrum'daki tüm aktiviteler sprint'lerde yapılır.

Velocity
Development Team'in bir sprint içinde yapabileceği iş kapasitesidir. Her takımın velocity'si kendi tarafından belirlenir.

Scrum Board

Scrumda kullanılan pano yukarıdaki gibidir. Sprint içinde bir önceki gün yapılan işler bir sonraki gün daily scrum yapılırken, yukarıdaki board'ta güncellenir. Kullaılan bir program varsa orada da güncellenir.

Bug alanına sprint boyunca gelen bug'lar eklenir.

Sprint Backlog sprint planda belirlenen item'larla doludur. Yeni işe başlayacak kişiler backlog'dan üzerlerine iş alıp, o işi yaparlar.

Development, sprintte development yapanlar sprint backlog'dan aldıkları increment'ları (iş parçalarını) kendi isimlerinin altında development hizasına ekler.

Development'ı tamamlanan increment'ları işin analizini yapan kişiye test edilmesi için aktarılır.

Testten geçen increment'lar UAT'ye alınır.

Testten geçemeyen increment'lar tekrar development'a gönderilebilir.

UAT'den geçen testler, Ready To Release'e alınır.

UAT'den geçemezse tekrar development'a dönebilir.

Ready To Release olan işler sistemin canlıya alınması belirlenen zamanda müşterilerin kullanımına açılır ve OnRelease olur.