Agile Scrum Egitim Notları – 2

Bir önceki yazımda Agile üzerine notlar paylaşmıştım. Bu yazımda agile çatısı içerisinde yer alan scrum üzerine notları paylaşacağım.

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, usataca 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 çok 9 kişiden az 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, “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şitme 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
    • Geliştirme takımı
  • 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.

Şimdilik bu kadar, sonraki scrum yazılarında görüşmek üzere 😀

Linkler

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.