Scrum Notları - Framework

scrum

İ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

scrum

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.

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
    • 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.

Linkler

Scrum Guide