Scrum Tarihi

1970 yılında Winston Royce'un "Büyük Yazılım Sistemlerinin Geliştirilmesini Yönetme" raporunun yayınlanmasından bu yana, birçok kişi Şelale geliştirme modelinin dezavantajlarını ortadan kaldırabilecek bir metodoloji bulmaya çalıştı. "Şelale"ye bir alternatif, şimdi tartışılacak olan Scrum yöntemiydi.

Scrum, adını 1986 yılında Takeuchi ve Nonaki'nin Yeni Ürün Geliştirme için Yeni Kurallar adlı çalışmasından almıştır. Bu belge, hedefe ulaşmanın en etkili yolunun, geliştiricilere net bir eylem planı vermek olduğunu savunuyor.

1995 yılında, Sutherland ve Schweiber tarafından hazırlanan "Scrum ile Yazılım Geliştirme" adlı başka bir kılavuz çıktı. Bu yayın o zamandan beri birkaç kez güncellendi. Şimdi bu yöntemin geliştirilmesi için ana rehber olarak kabul ediliyor. Scrum Kılavuzunun mevcut sürümü, 2020'de güncellenen bilgileri içerir.

Scrum Kılavuzunun ana hükümleri, proje yönetimi şablonunun, geliştiricilerin bitmiş ürünü kararlaştırılan zaman çerçevesi - sprintler içinde teslim etmesi gerçeğine dayanması gerektiğini önermektedir. Scrum'ın başarılı bir şekilde uygulanması için birkaç öğeden oluşan bir yapının kullanılması önerilir: roller, olaylar, kurallar ve eserler.

Scrum'daki Roller

Scrum'da hepsi bir Scrum takımı oluşturan üç rol vardır:

Yazılım ürününün müşterisi, projedeki en önemli kişidir, çünkü onun iş için değerini yalnızca o tam olarak anlar. Müşteri, gelecekteki ürünün kullanıcılarının ihtiyaçlarını geliştiricilere açıklar, ancak geliştirme sürecinin teknik kısmından sorumlu değildir. Müşteri, üründe belirli öğeleri veya işlevleri oluştururken önceliği de belirler.

Geliştiricilere, çapraz işlevselliği uygulamanın kapsamına bağlı olan teknik görevlerin uygulanması emanet edilir. Geliştiriciler, sprint biriktirme listesi oluşturmak, kod yazmak, projeyi sprint hedefine göre uyarlamak ve diğer görevlerle meşguller.

Scrum Master, Scrum takımının kolaylaştırıcısıdır. Müşteriye ve geliştiricilere yardım sağlar. Basitçe söylemek gerekirse, Scrum Master, projede yer almayanlar ile kodu yazan kişiler arasında iletişim kurmakla meşguldür. Bazen aynı büyük şirketteki farklı kodlayıcı ekipleri, bu ekiplerin scrum ustalarının genel toplantılarında iletişim kurar ve koordine eder.

Scrum'daki Etkinlikler

5 tür scrum olayı vardır:

Sprint, Scrum'ın en önemli parçasıdır. Sprint planlaması, günlük stand-up'lar (günlük scrum), sprintin gözden geçirilmesi ve retrospektifini içerir.

Sprint planlaması. Scrum ekibinin tüm üyeleri, gelecekteki sprint için bir plan hazırlamaya katılır. Ürün fikrinin sunulduğu yer burasıdır ve her ekip üyesi fikrini, bu konuda ne düşündüğünü ifade edebilir. Daha sonra yapılan toplantıda öncelikler belirlenir ve son tarihler duyurulur.

Daily Scrum, en fazla 15 dakika süren günlük kısa bir scrum etkinliğidir. Genellikle kodlayıcıların bugünün veya yarının çalışmasını planlamak için yapılır. Daily Scrum'da güncel konuları tartışabilirsiniz. Projede yer alan tüm geliştiricilerin böyle bir çalıştaya katılması gerekmektedir. Bir Scrum Master'ın varlığına izin verilir, ancak gerekli değildir.

Sprint Review (Demo) - Sprint sırasında oluşturulan sonuçları göster. Genellikle bu olay son aşamada gerçekleşir. İlgili tüm kişiler buna katılır.

Sprint Retrospective - sprint sonuçlarının tartışılması. Ekip üyeleri, kendilerine verilen görevlerle nasıl başa çıktıkları ve gelecekte çalışma sonuçlarını nasıl iyileştirebilecekleri konusundaki görüşlerini paylaşırlar.

Ek olarak, bazen birikmiş iş listesi iyileştirmesi gerçekleştirilir - Birikmiş İş Listesi İyileştirmesi. İş listesi öğelerini, bir sonraki sprint için hazırlanmayı ve mevcut görevlere öncelik vermeyi tartışır.

eserler

Scrum eserleri, bir projenin veya sprint'in sonunda gerçekleşen çalışmadır. Üç yapı vardır - ürün biriktirme listesi, sprint biriktirme listesi ve artış. Her biri, yazılımın kullanıcılara zamanında teslim edilmesi için gereklidir. Yardımcı eserler de vardır (grafikleri yakmak ve daha fazlası).

Sprint eserlerine dahil olan bileşenler:

Ürün birikimi - arayüz ve arka uç özellikleri.

Sprint biriktirme listesi, yineleme sırasında yapılması gereken görevlerin bir listesidir. Sprint başlamadan önce kararlaştırılırlar.

Artış - Sprint sırasında oluşturulan yazılım biriktirme listesi öğelerinin toplam sayısı ve ondan önce yapılan artışların değeri. Bitmiş yeni artış, sprint bitiminden önce gösterilmelidir. Bu, scrum ekibinin gereksinimlerini karşılayan çalışan bir sürüme sahip olduğunuz anlamına gelir.

Ürün biriktirme listesi öğesi - sprint yinelemesi sırasında tamamlanmalıdır. Kural olarak, öğe birkaç küçük göreve bölünmüştür.

Sprint hedefi, tamamlanması gereken görevlerdir (bir biriktirme listesi öğesi veya başka bir görev oluşturun).

Bir sprint burndown, sprintin bitiminden önce kalan iştir. Yakma grafiği ya artan ya da azalandır. Her şey, ekip üyelerinin çalışırken karşılaştıkları zorluklara bağlıdır. İlerlemenin bir göstergesi değil, yalnızca sorunları çözmenin bir yolu ve bir teşviktir.

Ürün Sürümü/Ürün Yakma Tablosu, Scrum Master tarafından bir sonraki Sprint'in bitiminden önce çizilen bir tablodur. Yatay eksen sprintleri, dikey eksen ise kalan iş miktarını gösterir.

Scrum çerçeve kuralları

Roller, olaylar ve eserler Scrum'ın temelidir ancak bunun dışında başka kurallar da vardır. Hepsi iş sürecinin verimliliğini arttırır. İşte o kuralların bir listesi:

  • Scrum ekibi, yazılım müşterisini, scrum ustasını ve geliştiricileri içerir.
  • Tüm sprintler aynı uzunlukta olmalıdır.
  • Bir sprinti tamamladıktan sonra hemen yeni bir sprint üzerinde çalışmaya başlar.
  • Bir sprint her zaman bir planla başlar.
  • Ekip üyeleri, iş günlerinin başında bir sabah koşuşturmacasına sahiptir.
  • Her sprint, her sprint sırasında gözden geçirilir. Bu, ekip ve paydaşlar arasındaki iletişimi geliştirir.
  • Sprint sırasında sprint iş listesinin değiştirilmesi önerilmez.

Scrum'daki Sınırlamalar

Bariz avantajların yanı sıra, Scrum'ın dezavantajları da vardır:

  • Scrum, genellikle ortak bir son teslim tarihinin olmaması nedeniyle yapılan iş miktarında bir azalmaya yol açar.
  • Proje katılımcıları arasında düşük katılım veya işbirliği isteksizliği ile, sonuçta başarısız olma olasılığı yüksektir.
  • Scrum yapısını büyük takımlarda kullanmak zordur ama yine de mümkündür. Bunun için ölçeklendirme çerçeveleri var: LeSS, SAFe, Nexus ve diğerleri.
  • Proje ortasında ekipten bir veya daha fazla üyenin ayrılması projeyi çok iyi etkilemez.