Scrum Notları - Framework
İkinci gün notları ile devam ediyorum.
SCRUM mümkün olan en yüksek değerdeki ürünü üretken ve yaratıcı bir şekilde geliştirirken karşılaşılan KARMAŞIK PROBLEMLERI adreslediğimiz bir çerçevedir.
- Scrum bir süreç, metot veya yöntem değildir. Scrum bir çerçevedir.
- Scrum basittir, anlaması kolaydır, ustaca yönetmesi zordur.
- Scrum’ın temelinde deneysel (Empirical) süreç kontrol teorisi veya deneycilik vardır.
- Scrum, öngörülebilirliği iyileştirir
- Scrum’ın özü küçük takımlardır
Deneysel Süreçler
-> Şeffaflık
-> Gözlem
-> Adaptasyon
Scrum Değerleri
Scrum uygulamasının başarısı aşağıdaki beş değerin ustalıkla yaşatma becerisine bağlıdır.
-> Cesaret – Courage
-> Odak – Focus
-> Saygı – Respect
-> Taahhüt – Commitment
-> Açıklık – Openness
Scrum Rolleri
Scrum takımları kendi kendini yönetir (self-organized) ve çapraz fonksiyonludur (cross-functional).
- Scrum Takımı
- Development Team
- Geliştirme takımının hiç bir şekilde alt takımı olamaz.
- Geliştirme takımı içerisinde yer alan herkes ünvan olarak geliştiricidir,
- Analiz, yazılım mühendisi, test mühendisi gibi bir ünvan yoktur.
- Geliştirme takımı 3 kişiden az 9 kişiden çok olamaz.
- Scrum Master
- Scrum Masterlar scrum teorisini, pratiklerini, kurallarını ve değerlerini ekipteki herkesin anlamasına yardımcı olurlar.
- Scrum sürecini yönetme sorumluluğu vardır
- Product Owner
- Ürün sahibi bir kişidir, komite olamaz,
- Product Backlog önceliğinden sorumludur,
- Bir kişi product backlog önceliğini değiştirmek istiyor ise ürün sahibine başvurmalıdır.
- Development Team
Scrum Etkinlikleri
Tüm etkinlikler azami olacak şekilde zaman sınırlıdır(time-boxed). Bir sprint başladığında süresi sabittir, kısaltılamaz veya uzatılamaz. Sprint harici diğer tüm etkinlikler gözlem ve adaptasyon için birer fırsattır.
Sprint (iteration)
- Sprint scrum’ın kalbidir,
- Sprint içerisinde, “Bitti” tanımına uyan, kullanılabilir ve potansiyel olarak yaygınlaştırılabilir bir ürün parçacığı geliştirilir,
- Her sprint 1 ay veya daha az sürelidir,
- Önceki sprint biter bitmez bir sonraki sprint başlar,
- Her sprint 1 aydan uzun süreli olmayan bir proje gibidir,
- Kalite hedefleri düşürülmez,
- Sprint boyunca sprint hedefini tehlikeye sokacak hiç bir değişiklik yapılmaz,
- Sprint sadece ürün sahibi tarafından iptal edilebilir,
- Bir sprint sprint hedefine ulaşmak anlamsız hale geldiğinde iptal edilebilir,
- Her sprint’in amacı scrum takımının “Bitti” tanımına uyacak şekilde potansiyel olarak yayınlanabilir işlevselliğe sahip ürün parçacıkları teslim etmektir,
Sprint Planning
- Scrum takımı planlamayı birlikte yapar,
- Bir aylık sprint için 8 saattir. 2 haftalık sprint için 4 saattir
- Sprint planlama toplantısı iki aşamadan oluşur,
- WHAT – bu sprint de ne yapılacak – PBI – size
- Sprint de yapılacak her iş product owner tarafından geliştirme takımına anlatılır
- Takımdaki herkesin yapılacak işi anlaması önemlidir
- Sprint boyunca kaç tane iş yapılacağına geliştirme takımı karar verir
- Bu bölümde aynı zamanda sprint hedefi belirlenir
- HOW – seçilen işler nasıl yapılacak – TASK – remaining work
- Çoğu zaman yapılacak işler bir gün veya daha kısa sürece bitecek şekilde parçalara bölünür
- Sprint Goal
- Sprint hedefi geliştirme takımını birlikte çalışmaya teşvik eder
- Geliştirme takımı sprint hedefini aklından çıkarmaz
- WHAT – bu sprint de ne yapılacak – PBI – size
- Sprint deki işler bir kişi tarafından geliştirici ekibe atanmaz,
- Herkes yapacağı işi kendi üstüne alır ve böylelikle kendi-kendine organize olan bir ekip oluşur
- Tüm işler geliştirici ekibin sorumlulukğundadır ve sprint içerisindeki işleri bitirmek için ekip olarak taahhüt eder
- Geliştirme takımı toplantıya uzmanlık tavsiyesi vermek için birilerini davet edebilir
Daily Scrum
- 15 dk ile sınırlıdır
- Sprint in her günü gerçekleştirilir
- Geliştirme takımı sonraki 24 saati planlar
- Takım işbirliği ve performansını iyileştirir
- Ürün sahibine veya Scrum master’a işleri rapor etme yeri değildir
- Günlük scrum her gün aynı yer ve zamanda düzenlenir,
- Daily scrum uygulama yöntemi takımdan takıma farklılık gösterebilir, Bazı takımlar soruları kullanır, bazıları da tartışma temelli olabilir
- Dün ne yaptım ?
- Bugün ne yapacağım ?
- Engel var mı ? – Impediment
- Günlük scrum ı yönetmek geliştirme takımının sorumluluğundadır,
- Scrum master geliştirme takımının daily scrum’ı yapmasını sağlar
- Geliştirme takımının toplantısıdır, iletişimi iyileştirir, başka toplantılara olan ihtyacı ortadan kaldırır
Sprint Review
- Her sprint sonunda ürün iş parçacığını görüp kontrol etmek ve gerekiyorsa ürün iş listesini düzenlemek için düzenlenir
- Scrum takımı ve paydaşlar (iş birimleri, müşterler) bu toplantıda çıkan ürünü görürler
- Toplantının amacı durum bildirimi yapmak değil, geribildirimi ve işbirliğini arttırmaktır
- Aylık sprintler için 4 saat, 2 haftalık sprintler için 2 saattir
- Scrum master etkinliğin gerçekleşmesini sağlar
- Sprint review in çıktısı toplantıdaki geribildirimleri ve pazarı değerlendirerek güncellenmiş iş planı oluşur,
- Ürün sahibi backlog da geriye kalan her işi izler
Sprint Retrospective
- Scrum takımının kendini gözlemlemesi ve buna ilişkin yapılacak iyileştirmelerin bir sonraki sprint için bir plan oluşturmaktır
- Sprint Review den sonra , planlamadan önce yapılır
- 1 aylık sprinler için 3 saat, 2 haftalık sprintler için 1.5 saattir,
- Scrum master toplantının pozitif ve üretken olmasından sorumludur,
- Sprint retrospektif ; gözlem ve adaptasyon için fırsat oluşturur,
- Ürün kalitesini arttıracak yollar aramak
- Amaçları,
- Son sprint’in insanlar, ilişkiler, süreç ve araçlar bakımdan nasıl geçtiğini gözlemlemek
- İyi giden alanları ve muhtemel iyilleştirmeleri tespit edip sıralamak
- Scrum takımının iş yapış tarzını iyileştirecek plan oluşturmak
Sprint Eserleri
Product Backlog
- Ürün üzerinde ihtiyaç duyulan herşeyin sıralandığı bir listedir
- Ürün iş listesi dinamiktir, yaşayan bir listedir ama asla tam değildir
- Değişen ihtiyaçlara göre sürekli değişim gösterir,
- Her ürün için tek bir product backlog olur.Eğer bir ürün üzerinde birden fazla scrum ekibi çalışıyor ise ortak product backlog kullanırlar
- Refinement – Grooming – Ürün iş listesini iyileştirme
- Ürün iş listesindeki maddelere ayrıntı, tahmin, sıra özellkleri ekleme eylemidir
- Üst sıralarda olan işler daha ayrıntılı, açık ve daha nettir,
- İlerlemeyi öngörmek için araçlar
- Burn-Down Chart
- Burn-Up Chart
- Cumulative Flow
Sprint Backlog
- Sprint planlama toplantısının çıktısıdır,
- Sprint-Retro toplantısında alınan aksiyonlardan en az bir adet iyileştirme maddesi içerir. Örneğin ; Code-Review, Refactoring, Ortak component yazılması
- Sprint boyunca yapılacak işleri içeren bir plandır, iş maddeleridir,
- İşler yapıldıkça kalan iş miktarı güncellenir,
- Yeni işler geldikçe (emergent pbi) geliştirme takımı sprint iş listesine ekler,
Increment
- Ürün vizyonuna ve hedefe doğru atılmış bir adımdır,
- Kullanılabilir ve taşınabilir ürün parçacığıdır,
Definition of “Done”
- Scrum takımındaki herkes bir ürün parçacığının bitti denilmesinden aynı “Bitti” tanımını anlamalıdır
- Örneğin; Herhangi ekranın UAT ortamına hazır hale getirilmesinin “Bitti” tanımı şöyle olabilir
- Çözüm dökümanının yazılması
- Test Case dökümanının yazılması
- Ekranın UAT ortamında çalışır durumda olması
- Testlerin Gerçekleştirilmesi
- Bazılarımız bunu sadece teknik olarak bir ekranın çalıştırılmasından ziyade bir ürün olarak ele alıp ekipteki herkesin bundan aynı şeyi anlayıp gerekli çalışmaların yapılmasını sağlar,
- “Definition of Done” tanımı geliştikçe ve ekip için daha zorlayıcı hale geldikçe daha kaliteli ürünlerin çıkarılması anlamına gelir.