Scrum Guide

Scrum‘ın yaratıcıları Ken Schwaber ve Jeff Sutherland tarafından geliştirilmiş olan Scrum Guide’ın Türkçe versiyonunu sizlerle paylaşalım istedik. Scrum Framework’ünü iyi anlamak için okumanızı tavsiye ediyoruz.

Scrum (Guide) Kılavuzu

Scrumın Tanımı

Scrum (isim): İnsanların mümkün olan en yüksek değere sahip ürünleri üretken ve yaratıcı bir şekilde geliştirirken, karmaşık ve adaptasyona açık sorunları ele alabildikleri bir çerçeve.
Scrum :

• Basittir
• Anlaması kolaydır
• Ustaca yönetmek zordur.

Scrum, 1990’ların başından beri karmaşık ürünler için gerçekleştirilen işleri yönetmek için kullanılan bir süreç çerçevesidir. Scrum, bir süreç, teknik veya tanımlı bir yöntem değildir. İçerisinde çeşitli süreçleri ve teknikleri kullanabileceğiniz bir çerçevedir. Scrum, ürün yönetimi ve çalışma tekniklerinizin etkililiğini açık bir şekilde ortaya koyarak, ürününüzde, takımınızda ve çalışma ortamınızda sürekli iyileştirme fırsatı sunar.
Scrum çerçevesi, Scrum Takımları ve takımlarla ilgili rolleri, etkinlikleri, eserleri ve kuralları kapsar. Çerçevedeki her bir bileşen özel bir amaca hizmet eder; Scrumın başarısı ve kullanımı için bu zorunludur.

Bu belgede tanımlanan Scrumın kuralları; rolleri, etkinlikleri, ve eserleri birbirine bağlar ve aralarındaki ilişkiler ile etkileşimleri düzenler.
Scrum çerçevesinin kullanımına ilişkin çeşitli taktikler olmakla birlikte bunlar kılavuzun kapsamı dışındadır.

Scrumın Kullanımı

Scrum başlangıçta ürün geliştirme ve yönetme için geliştirildi. 1990’lı yılların başında başlayan Scrum, dünya çapında yaygın olarak şu amaçlarla kullanılmaktadır:

1. Geçerli pazarları, teknolojileri ve ürün yeteneklerini araştırma ve tanımlama;

2. Ürün ve ürünle ilgili iyileştirmeleri geliştirme;

3. Ürün ve ürünle ilgili iyileştirmelerin günde bir çok kez yaygınlaştırılması;

4. Bulut (online, güvenli, isteğe bağlı) ve ürün kullanımına yönelik diğer operasyonel ortamların geliştirilmesi ve sürdürülmesi; ve,

5. Ürünleri sürdürme ve yenileme.

Scrum, yazılım, donanım, gömülü yazılım, etkileşim fonksiyonları ağları, otonom araçlar, okullar, hükümet, pazarlama, organizasyonların işleyişini yönetmek ve günlük yaşantımızda birey ve toplum olarak kullandığımız hemen her şeyi geliştirmek için kullanılmaktadır. Teknoloji, pazar ve çevresel karmaşıklıklar ve bunların etkileşimleri hızla arttıkça, Scrum’ın karmaşıklıkla başa çıkmadaki faydası günlük olarak kanıtlanmıştır. Scrum, iteratif ve artımlı bilgi aktarımında özellikle etkili olduğunu kanıtladı. Scrum artık ürün, hizmet ve üst organizasyonun yönetimi için yaygın olarak kullanılmaktadır. Scrum’ın özü küçük takımlardır. Bu takım yapısı çok esnektir ve adaptasyon kabiliyetine sahiptir. Bu güçlü yönler, binlerce kişinin iş ve iş ürünlerini geliştiren, yaygınlaştıran, işleten ve idame ettiren farklı takım formasyonlarında (tek takım, birkaç takım, çok sayıda takım ve takım ağlarında) da çalışmaya devam etmektedir. Bu takımlar, karmaşık mimariler ve hedef sürüm ortamları aracılığıyla işbirliği yapar ve birlikte çalışırlar.

“Geliştirme” ve “gelişim” kelimeleri Scrum Kılavuzu’nda kullanıldığında, yukarıda tanımlanan karmaşık çalışmalara atıfta bulunulmaktadır.

Scrum Teorisi

Scrumın temelinde deneysel süreç kontrol teorisi (veya deneycilik) yer alır. Deneycilik, bilginin deneyimden ve bilinen şeylere dayanarak alınan kararlardan meydana geldiğini ileri sürer. Scrum, öngörülebilirliği en iyi seviyeye çıkarmak ve riski kontrol etmek için iterasyonlu ve artımlı (incremental) bir yaklaşım kullanır.

Her deneysel süreç kontrol uygulaması üç ayakla desteklenir: şeffaflık, gözlem ve adaptasyon.

Şeffaflık

Çıktıdan sorumlu kişiler sürecin önemli kısımlarını izleyebilmelidir. Şeffaflık bu kısımların bir ortak standartla tanımlanmasını gerektirir. Bu sayede bakan kişiler gördüklerinden aynı şeyi anlarlar.
Örnek olarak:
• Tüm katılımcılarla sürece ait ortak bir dil paylaşılmalı;
• İşi yapanlar ve sonuçta oluşan ürün parçasını gözlemleyenler ortak bir “Bitti” (Done) tanımına sahip olmalıdır.

Gözlem

Scrumı uygulayanlar, istenmeyen sapmaları tespit edebilmek için Scrum eserlerini ve Sprint Hedefine doğru ilerlemeyi sıkça gözlemlemelidir. Bu gözlemler, iş yapmaya engel olacak kadar sık olmamalıdır. Gözlemler, çalışma esnasında yetkin gözlemciler tarafından itinayla yapıldığında en çok faydayı sağlar.

Adaptasyon

Şayet bir gözlemci sürecin bir veya daha fazla kısmının kabul edilebilir sınırlar dışına çıktığını ve sürecin sonunda çıkacak ürünün kabul edilemez olacağını tespit ederse üzerinde çalışılan süreç veya ürün düzeltilmelidir. Düzeltme daha fazla sapmaya izin vermeden mümkün olan en yakın zamanda yapılmalıdır.
Scrum, gözlem ve adaptasyon için bu belgenin Scrum Etkinlikleri bölümünde tarif edilen dört resmî etkinliği (toplantıyı) zorunlu kılar:
• Sprint Planlama (Sprint Planning)
• Günlük Scrum (Daily Scrum)
• Sprint Değerlendirme (Sprint Review)
• Sprint Retrospektifi (Sprint Retrospective)

Scrum Değerleri

Scrum Takımı taahhüt, cesaret, odak, açıklık ve saygı değerlerini bünyesinde barındırdığında ve yaşattığında, Scrumın şeffaflık, gözlem ve adaptasyon ayakları canlanarak herkes için güven oluşturur. Scrum Takımı üyeleri, Scrum etkinlikleri, rolleri ve eserleriyle çalıştıkça bu değerleri öğrenir ve keşfeder.
Scrum uygulamasının başarısı insanların bu beş değeri ustalıkla yaşatma becerisine bağlıdır. Scrum Takımındaki üyelerin her biri takım hedefini gerçekleştirmeyi taahhüt eder; Doğru şeyi yapmaya ve zorlayıcı sorunlar üzerinde çalışmaya cesaret eder; takımdaki herkes Sprint işine ve Scrum Takımının hedeflerine odaklanır. Scrum Takımı ve paydaşları yapılacak tüm işler ve bu işleri yaparken karşılaşılan zorluklar hakkında açık olmayı kabul eder. Scrum Takımının her bir üyesi diğer üyelere yetkin ve bağımsız insanlar olarak saygı duyar.

Scrum Takımı (Scrum Team)

Scrum Takımı, bir Ürün Sahibi (Product Owner), Geliştirme Takımı (Development Team) ve bir de Scrum Masterdan oluşur. Scrum Takımları, kendi kendilerini yönetir (self-organized) ve çapraz fonksiyonludur (cross-functional). Kendini yöneten takımlar, takımın dışındaki birilerinden komut almak yerine işlerini en iyi nasıl başaracaklarına kendileri karar verir. Çapraz fonksiyonlu takımlar, takımın dışındaki kişilere bağımlı olmadan işi tamamlayacak tüm yetkinliklere sahiptir. Scrumdaki takım modeli esnekliği; yaratıcılığı ve üretkenliği en iyi şekilde kullanmak üzere tasarlanmıştır. Scrum Takımı daha önce belirtilen tüm kullanımlar ve karmaşık çalışmalar için giderek daha etkili olduğunu kanıtlamıştır.
Scrum Takımları, ürünleri iterasyonlu ve artımlı bir şekilde teslim ederek geribildirim fırsatlarını en üst seviyeye çıkarırlar. “Bitti” durumundaki ürünün artımlı olarak teslim edilmesi, ürünün çalışan ve kullanılabilir bir sürümünün her an el altında olmasını sağlar.

Ürün Sahibi (Product Owner)

Ürün Sahibi, Geliştirme Takımının işi sonucunda oluşan ürünün değerini en üst seviyeye çıkarmakla sorumludur. Bunun nasıl yapılacağı ise organizasyonlar, Scrum Takımları ve bireyler arasında farklılık gösterebilir.
Ürün Sahibi, Ürün İş Listesini (Product Backlog) yönetmekle sorumlu olan tek kişidir. Ürün İş Listesi yönetimi şunları içerir:
• Ürün İş Listesi kalemlerini açıkça ifade etmek
• Ürün İş Listesindeki kalemleri, hedeflerin ve görevlerin en iyi şekilde gerçekleştirilmesini sağlayacak şekilde sıralamak
• Geliştirme Takımının ortaya koyduğu işin değerini en üst seviyeye çıkarmak
• Ürün İş Listesinin herkes için görünür, şeffaf ve anlaşılır olmasını, Scrum Takımının ele alacağı sonraki işleri göstermesini sağlamak
• Geliştirme Takımının Ürün İş Listesindeki kalemleri gerektiği kadar anlamasını temin etmek.
Ürün Sahibi, yukarıdaki işleri kendisi yapabilir veya Geliştirme Takımına yaptırabilir. Ancak sorumluluk her zaman Ürün Sahibindedir.
Ürün Sahibi bir kişidir; bir komite olamaz. Ürün Sahibi, bir komitenin isteklerini Ürün İş Listesine yansıtabilir fakat Ürün İş Listesindeki kalemlerin önceliğini değiştirmek isteyen her kimse Ürün Sahibine başvurmalıdır.

Ürün Sahibinin başarılı olabilmesi için kararlarının organizasyondaki herkesten saygı görmesi esastır. Ürün Sahibinin kararlarını görmek isteyenler Ürün İş Listesinin içeriğine ve sıralamasına bakabilir. Başka hiçbir kimse Geliştirme Takımını farklı bir iş listesi üzerinde çalışmaya zorlayamaz.

Geliştirme Takımı (Development Team)

Geliştirme Takımı, her bir Sprintin (iterasyon) sonunda ürünün “Bitti” tanımına uyan ve potansiyel olarak yayınlanabilir (releasable) bir parçasını teslim etmekten sorumlu olan profesyonellerden oluşur. Sprint Değerlendirme’de (Sprint Review) “Bitti” tanımına uyan bir ürün parçası gereklidir. Ürün Parçasını sadece Geliştirme Takımının üyeleri geliştirir.
Geliştirme Takımları, kendi işlerini düzenlemek ve yönetmek için organizasyon tarafından kurulan ve yetkilendirilen takımlardır. Ortaya çıkan sinerji, Geliştirme Takımının toplam verimliliğini ve etkililiğini en üst seviyeye çıkarır.
Geliştirme Takımlarının özellikleri şunlardır:
• Kendi kendilerini yönetirler. Hiç kimse (Scrum Master dahi) Geliştirme Takımına Ürün İş Listesini potansiyel olarak yayınlanabilir Ürün Parçalarına nasıl dönüştüreceğini söyleyemez
• Geliştirme Takımları çapraz fonksiyonludur; bir Ürün Parçası oluşturmak için gerekli tüm becerilere sahiptir
• Scrum, Geliştirme Takımı üyeleri için Geliştiriciden başka hiçbir unvanı tanımaz; kişinin ne iş yaptığına bakılmaz ve bunun hiçbir istisnası yoktur
• Scrum, Geliştirme Takımı içinde hiçbir alt takıma izin vermez; test, mimari, operasyon veya iş analizi gibi özel uzmanlıklara bakılmaz ve bunun hiçbir istisnası yoktur
• Geliştirme Takımı üyelerinin uzmanlaştıkları belli beceriler veya odak alanları olabilir fakat sorumlu olan her zaman Geliştirme Takımıdır

Geliştirme Takımının Büyüklüğü

En uygun Geliştirme Takımı büyüklüğü, hızlı davranabilecek kadar küçük ve bir Sprintte anlamlı bir işi bitirebilecek kadar büyük olmalıdır. Üçten az takım üyesi etkileşimi azaltır ve üretkenlik artışını sınırlar. Küçük takımlar, Sprint boyunca beceri kısıtlarıyla karşılaşarak potansiyel olarak yayınlanabilir bir Ürün Parçası teslim etmekte başarısız olabilir. Dokuzdan fazla üyesi olan bir takım ise çok fazla koordinasyona ihtiyaç duyar. Büyük Geliştirme Takımları deneysel bir sürecin yararlı olmasından daha fazla karmaşıklığa neden olur. Ürün Sahibi ve Scrum Master, Sprint İş Listesindeki işi yapmadıkları sürece bu sayıya dâhil değildir.

Scrum Master

Scrum Master, Scrumın, bu kılavuzda tanımlandığı şekilde desteklenmesinden ve teşvik edilmesinden sorumludur. Scrum Masterlar bu sorumluluklarını herkesin Scrum teorisini, pratiklerini, kurallarını ve değerlerini anlamasına yardımcı olarak yerine getirir.

Scrum Master, Scrum Takımı için bir hizmetkâr liderdir. Scrum Master, Scrum Takımıyla olan hangi etkileşimlerinin faydalı olup olmadığını anlamaları konusunda başkalarına yardım eder. Scrum Master, Scrum Takımınca üretilen değerin en üst seviyeye çıkması için herkese bu etkileşimleri değiştirmelerinde yardımcı olur.

Scrum Masterın Ürün Sahibine Hizmeti

Scrum Master, aşağıdaki hususları içerecek şekilde farklı yollarla Ürün Sahibine hizmet eder:
• Scrum Takımında bulunan herkesin mümkün olduğunca hedefleri, kapsamı ve ürün alanını anlamasını sağlamak
• Ürün İş Listesini etkili bir şekilde yönetebilmesi için teknikler bulmak
• Scrum Takımına, anlaşılır ve kısa Ürün İş Listesi kalemlerine ihtiyaç olduğunu anlamalarında yardımcı olmak
• Deneysel bir ortamda ürün planlamayı anlamak
• Ürün Sahibinin değeri en üst seviyeye çıkarması için Ürün İş Listesini nasıl düzenleyeceğini bilmesini sağlamak
• Çevikliği anlamak ve uygulamak
• İhtiyaç duyulduğu veya istendiği takdirde Scrum etkinliklerini yönetmek.

Scrum Masterın Geliştirme Takımına Hizmeti

Scrum Master, aşağıdaki hususları içerecek şekilde farklı yollarla Geliştirme Takımına hizmet eder:
• Geliştirme Takımına kendini yönetme ve çapraz fonksiyonluluk konularında koçluk etmek
• Geliştirme Takımına yüksek değerli ürünleri oluşturmasında yardım etmek
• Geliştirme Takımının ilerlemesine engel oluşturan unsurları ortadan kaldırmak
• İhtiyaç duyulduğu veya istendiği takdirde Scrum etkinliklerini yönetmek
• Scrumın henüz tam olarak benimsenmediği ve anlaşılmadığı organizasyonlarda Geliştirme Takımına koçluk etmek.

Scrum Masterın Organizasyona Hizmeti

Scrum Master, aşağıdaki hususları içerecek şekilde farklı yollarla organizasyona hizmet eder:
• Organizasyona Scrumı benimsemesinde liderlik ve koçluk etmek
• Organizasyondaki Scrum uygulamalarını planlamak
• Çalışanlara ve paydaşlara Scrumı ve deneysel ürün geliştirmeyi anlamalarında ve uygulamalarında yardım etmek
• Scrum Takımının üretkenliğini artıracak değişimi başlatmak
• Organizasyondaki Scrum uygulamalarının etkililiğini artırmak üzere diğer Scrum Masterlarla birlikte çalışmak.

Scrum Etkinlikleri (Scrum Events)

Scrum etkinlikleri, Scrumda tanımlı olmayan toplantı ihtiyacını asgari seviyeye düşürmek ve düzenlilik sağlamak için kullanılır. Tüm etkinlikler, her bir etkinliğin azami süresi olacak şekilde zaman sınırlıdır (time-boxed). Bir Sprint başladığında, süresi sabittir; kısaltılamaz veya uzatılamaz. Diğer etkinlikler, amaçlarına ulaşıldığında son bulur ve böylece süreçte israfa meydan vermeyecek şekilde uygun bir zamanın harcanması sağlanır.
Sprintin yanı sıra içinde barındırdığı diğer etkinlikler de gözlem ve adaptasyon için resmî birer fırsattır. Bu etkinlikler, büyük öneme sahip olan şeffaflığı ve gözlemi mümkün kılmak için özel olarak tasarlanmıştır. Bu etkinliklerin birini bile kullanmamak, şeffaflığı azaltır; gözlem ve adaptasyon için bir fırsatın kaybedilmesi anlamına gelir.

Sprint

Bir ay veya daha az zaman sınırı olan, içerisinde “Bitti” durumunda, kullanılabilir ve potansiyel olarak yayınlanabilir bir Ürün Parçasının oluşturulduğu Sprint, Scrumın kalbidir. Baştan sona bir geliştirme çalışması boyunca Sprintlerin süresi sabittir. Önceki Sprint biter bitmez yeni Sprint başlar.
Sprintler; Sprint Planlama, Günlük Scrumlar, geliştirme işi, Sprint Değerlendirme ve Sprint Retrospektifinden oluşur.
Sprint boyunca:
• Sprint Hedefini tehlikeye sokacak hiçbir değişiklik yapılmaz
• Kalite hedefleri düşmez
• Daha fazla bilgi edindikçe Ürün Sahibi ve Geliştirme Takımı arasında kapsam netleştirilebilir ve yeniden müzakere edilebilir.
Her bir Sprint bir aydan uzun bir ömrü olmayan bir proje olarak düşünülebilir. Projeler gibi Sprintler de bir şeyi başarmak için kullanılır. Her bir Sprintin, neyin üretileceğine ilişkin bir hedefi, üretime rehberlik edecek bir tasarımı ve esnek bir planı, işin kendisi ve sonuçta ortaya çıkacak olan ürün parçası vardır.

Sprintler bir takvim ayıyla sınırlıdır. Sprintin süresi çok uzun olursa üretilecek şeyin tanımı değişebilir, karmaşıklık ve risk artabilir. Sprintler, en az bir takvim ayında bir, Sprint Hedefine doğru ilerleyişi gözlemlemeyi ve adapte etmeyi temin ederek öngörülebilirliği mümkün kılar. Ayrıca Sprintler riski bir takvim ayının maliyetiyle sınırlar.

Bir Sprinti İptal Etmek

Bir Sprint zaman sınırına ulaşılmadan iptal edilebilir. Sadece Ürün Sahibi Sprinti iptal etme yetkisine sahiptir. Ancak paydaşlar, Geliştirme Takımı veya Scrum Master, Ürün Sahibini bu kararı alması yönünde etkileyebilir.

Bir Sprint, Sprint Hedefine ulaşmak anlamını kaybettiğinde iptal edilebilir. Bu durum kurum yön değiştirdiğinde veya pazar ve teknoloji koşulları değiştiğinde söz konusu olabilir. Genel olarak, bir Sprint mevcut koşullarda artık bir anlam ifade etmiyorsa iptal edilmelidir. Fakat Sprintler kısa süreli olduğu için iptal kararı nadiren bir anlam ifade eder.
Bir Sprint iptal edildiğinde, bitirilen ve “Bitti” durumundaki Ürün İş Listesi kalemleri gözden geçirilir. Eğer işin bir kısmı yayın potansiyeline sahipse, Ürün Sahibi bunu genellikle kabul eder. Bitmemiş tüm kalemler yeniden tahmin edilerek Ürün İş Listesine geri konulur. Bu maddeler üzerinde yapılan çalışmalar hızla değer kaybeder ve sıkça yeniden tahmin edilmelidir.
Herkesin yeni bir Sprinti başlatmak üzere bir Sprint Planlama toplantısı için tekrar bir araya gelmesi gerektiğinden, Sprint iptalleri kaynak tüketir. Sprint iptalleri çoğunlukla Scrum Takımı için sarsıcıdır ve nadiren gerçekleşir.

Sprint Planlama (Sprint Planning)

Sprintte yapılacak iş Sprint Planlama toplantısında planlanır. Tüm Scrum Takımı planı birlikte oluşturur.
Sprint Planlama, bir aylık Sprint için 8 saatle sınırlıdır. Daha kısa Sprintler için, etkinlik genellikle daha kısadır. Scrum Master, etkinliğin yapılmasını ve katılımcıların etkinliğin amacını anlamasını sağlar. Scrum Master, Scrum Takımına bu etkinliğin zaman sınırını aşmamasını öğretir.
Sprint Planlama şu sorulara cevap verir:
• Başlayan Sprintte Ürün Parçası olarak ne teslim edilebilir?
• Ürün Parçasını teslim etmek için gerekli olan iş nasıl başarılacak?

Birinci Konu: Bu Sprintte ne yapılabilir?

Geliştirme Takımı, Sprint boyunca geliştirilecek fonksiyonları öngörmek için çalışır. Ürün Sahibi, Sprintin başarması gereken amacı ve (Sprintte tamamlanırsa) Sprint Hedefini gerçekleştirecek Ürün İş Listesi kalemlerini tartışır. Tüm Scrum Takımı Sprintin işini anlamak üzere birlikte çalışır.
Sprint Planlama toplantısının girdileri Ürün İş Listesi, son çıkan Ürün Parçası, Geliştirme Takımının Sprintte harcayacağı kapasite tahmini ve Geliştirme Takımının geçmiş performansıdır. Ürün İş Listesinden kaç tane kalemi alacağına Geliştirme Takımı karar verir. Sadece Geliştirme Takımı önündeki Sprintte ne kadar işi yapabileceğini tartabilir.
Sprint Planlama toplantısı sırasında, Scrum Takımı aynı zamanda bir Sprint Hedefi oluşturur. Sprint Hedefi, Ürün İş Listesinin Sprint boyunca uygulanmasıyla ulaşılacak amaçtır ve Geliştirme Takımına Ürün Parçasını neden geliştirdiğiyle ilgili rehberlik eder.
İkinci Konu: Seçilen iş nasıl yapılacak?
Sprint Hedefini belirleyen ve Sprinte alınacak Ürün İş Listesi kalemlerini seçen Geliştirme Takımı bu işlevselliği Sprint boyunca nasıl “Bitti” durumundaki bir Ürün Parçasına dönüştüreceğine karar verir. Sprint için seçilen Ürün İş Listesi kalemleri ve bunları teslim etmek için hazırlanan plana birlikte Sprint İş Listesi denir.
Geliştirme Takımı, genellikle Ürün İş Listesini çalışan bir Ürün Parçasına dönüştürmek için gerekli olan işi ve sistemi tasarlayarak başlar. İşler farklı büyüklükte veya tahmin edilen eforlarda olabilir. Ancak Geliştirme Takımı Sprint Planlamada önündeki Sprintte yapabileceğine inandığı kadar işi tahmin ederek üzerine alır. Toplantının sonunda Sprintin ilk günlerinde yapılması planlanan iş ayrıntılı bir şekilde ifade edilir ve çoğu zaman bir gün veya daha kısa sürecek parçalara bölünür. Geliştirme Takımı, hem Sprint Planlamada hem Sprint boyunca gerekli oldukça, Sprint İş Listesinden iş almak için kendi kendine organize olur.
Ürün Sahibi, seçilen Ürün İş Listesi kaleminin anlaşılmasına ve doğru seçimin yapılmasına yardım edebilir. Eğer Geliştirme Takımı çok az veya çok fazla işi olduğunu düşünürse, seçilmiş olan Ürün İş Listesi kalemlerini Ürün Sahibi ile tekrar müzakere edebilir. Geliştirme Takımı toplantıya teknik veya uzmanlık tavsiyesi vermek üzere başka kişileri davet edebilir.
Geliştirme Takımı, Sprint Planlamanın sonunda Ürün Sahibine ve Scrum Mastera Sprint Hedefine ulaşmak ve beklenen Ürün Parçasını oluşturmak için nasıl kendini yöneten bir takım olarak çalışacağını açıklayabilmelidir.

Sprint Hedefi (Sprint Goal)

Sprint Hedefi, bir Sprint için belirlenen ve Ürün İş Listesinin gerçekleşmesi durumunda ulaşılabilecek amaçtır. Geliştirme Takımına neden ilgili Ürün Parçasını geliştireceğiyle ilgili rehberlik eder. Sprint Planlama toplantısında belirlenir. Sprint Hedefi Geliştirme Takımına Sprintte geliştirilen işlevsellikle ilgili biraz esneklik sunar. Sprint Hedefi, seçili Ürün İş Listesi kalemlerinin birbiriyle ilişkili ve bütünsel bir işlev olarak ifade edilmesidir. Sprint Hedefi, Geliştirme Takımını farklı girişimlerde bulunmak yerine birlikte çalışmaya sevk edecek, üzerinde çalıştıkları parçaların aynı bütüne hizmet ettiğini ifade eden herhangi bir şey olabilir.
Geliştirme Takımı çalışırken Sprint Hedefini aklından çıkarmaz. Sprint Hedefine ulaşmak için gereken fonksiyonları ve teknolojiyi geliştirir. Eğer Sprint içerisinde iş, Geliştirme Takımının öngördüğünden farklılaşmaya başlarsa, Takım Ürün Sahibiyle iş birliği yaparak Sprint İş Listesinin kapsamını müzakere eder.

Günlük Scrum (Daily Scrum)

Günlük Scrum, Geliştirme Takımı için 15 dakikayla sınırlı bir etkinliktir. Günlük Scrum, Sprint’in her günü gerçekleştirilir. Bu toplantıda, Geliştirme Takımı sonraki 24 saat için işlerini planlar. Bir önceki Günlük Scrumdan beri yapılan işlerin ve sonraki toplantıya kadar yapılabilecek işlerin gözlemlenmesi ile takım işbirliği ve performansı iyileşir. Günlük Scrum karmaşıklığı azaltmak için her gün aynı yer ve zamanda düzenlenir.
Geliştirme Takımı, Sprint Hedefine doğru ilerlemeyi ve Sprint İş Listesindeki işlerin tamamlanma durumlarının nasıl bir eğilim gösterdiğini anlamak için Günlük Scrumı kullanır. Günlük Scrum, Geliştirme Takımının Sprint Hedefini gerçekleştirme ihtimalini güçlendirir. Geliştirme Takımı her gün Sprint Hedefine ulaşmak ve beklenen Ürün Parçasını Sprint sonuna kadar üretmek için birlikte kendini yöneten bir ekip olarak nasıl çalışması gerektiğini anlamalıdır.
Toplantının yapısı Geliştirme Takımı tarafından ayarlanır ve Sprint Hedefine göre ilerlemeye odaklanıldığı sürece farklı yollarla gerçekleştirilebilir. Bazı takımlar sorular kullanır, bazıları daha çok tartışma temellidir. Soru olarak kullanılabilecek bir örnek aşağıda belirtilmiştir:
• Geliştirme Takımının Sprint Hedefine ulaşması için dün ne yaptım?
• Geliştirme Takımının Sprint Hedefine ulaşması için bugün ne yapacağım?
• Beni veya Geliştirme Takımını Sprint Hedefine ulaşmaktan alıkoyacak bir engel görüyor muyum?
Geliştirme Takımı veya takım üyeleri Günlük Scrumın hemen ardından ayrıntılı olarak tartışmak, Sprintin kalan işini yeniden planlamak veya adapte etmek için sıklıkla bir araya gelirler.
Scrum Master Geliştirme Takımının toplantıyı yapmasını temin eder fakat Günlük Scrumı yürütmek Geliştirme Takımının sorumluluğudur. Scrum Master, Geliştirme Takımına Günlük Scrumı 15 dakikayla sınırlı tutmasını öğretir.
Günlük Scrum, Geliştirme Takımı için bir iç toplantıdır. Eğer toplantıda başka kişiler de varsa, Scrum Master, dışarıdan katılımcıların toplantıyı aksatmamasını sağlar.
Günlük Scrumlar iletişimi iyileştirir, başka toplantılara olan ihtiyacı ortadan kaldırır, geliştirmenin önündeki engellerin tespit edilmesini sağlar, hızlı karar almayı teşvik eder ve Geliştirme Takımının bilgi seviyesini artırır. Bu etkinlik kilit bir gözlem ve adaptasyon toplantısıdır.

Sprint Değerlendirme (Sprint Review)

Sprint Değerlendirme, her bir Sprintin sonunda Ürün Parçasını görüp kontrol etmek ve gerekiyorsa Ürün İş Listesini uyarlamak için düzenlenir. Scrum Takımı ve paydaşlar bu toplantıda Sprintte yapılan işi görüşürler. Bu görüşmeye ve Sprint boyunca Ürün İş Listesinde yapılan değişikliklere dayanarak, katılımcılar değeri en üst seviyeye çıkarmak adına yapılabilecekleri belirlemek için işbirliği yaparlar. Bu gayrı resmî bir toplantıdır, bir durum tespiti toplantısı değildir. Ürün Parçasını sunmanın amacı geribildirim almak ve işbirliğini artırmaktır.
Bir aylık Sprint için bu toplantının süresi en fazla 4 saattir. Daha kısa Sprintler için, bu süre genellikle daha kısadır. Scrum Master, etkinliğin gerçekleşmesini ve katılımcıların bunun amacını anlamasını sağlar. Scrum Master dahil olan herkese zaman sınırı içerisinde kalmasını öğretir.
Sprint Değerlendirme şu unsurları içerir:

• Katılımcılar Ürün Sahibi tarafından davet edilen kilit paydaşlar ve Scrum Takımıdır
• Ürün Sahibi, Ürün İş Listesi kalemlerinden hangilerinin “Bitti” olup olmadığını açıklar
• Geliştirme Takımı Sprint boyunca neyin iyi gittiğini, hangi sorunlarla karşılaştığını ve bu sorunları nasıl çözdüğünü tartışır
• Geliştirme Takımı “Bitti” dediği işi gösterir ve Ürün Parçasıyla ilgili soruları yanıtlar
• Ürün Sahibi, Ürün İş Listesini tartışır. O güne kadar olan ilerlemeye dayanarak yaklaşık hedef ve teslimat sürelerini öngörür (eğer gerekliyse)
• Gruptaki herkes bir sonraki yapılacak şey hakkında birlikte çalışarak takip eden Sprint Planlama toplantısı için değerli girdiler sağlar
• Pazarın veya ürünün potansiyel kullanımının, sıradaki en değerli işin seçimini değiştirip değiştirmediğinin kararlaştırılması
• Ürünün sıradaki fonksiyon ve yeteneklerinin yayınları için zaman planının, bütçenin, potansiyel yeteneklerin ve pazarın değerlendirilmesi.

Sprint Değerlendirmenin çıktısı, sıradaki Sprint için seçilebilecek kalemleri içeren güncellenmiş bir Ürün İş Listesidir. Ürün İş Listesi, yeni fırsatları yakalayabilmek için baştan aşağı elden geçirilebilir.

Sprint Retrospektifi (Sprint Retrospective)

Sprint Retrospektifi, Scrum Takımının kendini gözlemlemesi ve sıradaki Sprintte yapacağı iyileştirmelere ilişkin bir plan oluşturması için bir fırsattır.
Sprint Retrospektifi, Sprint Değerlendirmeden sonra ve Sprint Planlamadan önce yapılır. Bir aylık Sprint için bu toplantının süresi en fazla 3 saattir. Daha kısa Sprintler için etkinlik süresi genellikle daha kısadır. Scrum Master, etkinliğin gerçekleşmesini ve katılımcıların etkinliğin amacını anlamasını temin eder.
Scrum Master, toplantının pozitif ve üretken olmasından sorumludur. Scrum Master herkese toplantıyı zaman sınırı içerisinde tutmasını öğretir. Scrum Master, Scrum sürecini yönetme sorumluluğu sebebiyle herhangi bir takım üyesi gibi toplantıya katılır.
Sprint Retrospektifinin amaçları şunlardır:
• Son Sprintin insanlar, ilişkiler, süreç ve araçlar bakımından nasıl geçtiğini gözlemlemek
• İyi giden noktaları ve muhtemel iyileştirme alanlarını tespit edip sıralamak
• Scrum Takımının iş yapış tarzını iyileştirecek bir plan oluşturmak.
Scrum Master, sıradaki Sprinti daha etkili ve keyifli kılmak için geliştirme sürecini ve pratiklerini iyileştirme yönünde Scrum Takımını cesaretlendirir. Her Sprint Retrospektifi esnasında, Scrum Takımı, eğer ürünün veya organizasyonun standartlarına uygunsa ve uyuşmazlık durumu yoksa, iş süreçlerini iyileştirerek veya “Bitti” tanımını uygun şekilde adapte ederek ürün kalitesini artıracak yolları planlar.
Sprint Retrospektifinin sonunda, Scrum Takımı sıradaki Sprintte uygulayacağı iyileştirme alanlarını tespit etmiş olur. Bu alanları iyileştirmek Scrum Takımının kendini gözlemleyerek adapte olmasıdır. İyileştirmeler herhangi bir anda yapılabilse de, Sprint Retrospektifi gözlem ve adaptasyona odaklanmak için resmî bir fırsattır.

Scrum Eserleri (Scrum Artifacts)

Scrumın eserleri, şeffaflığın yanı sıra gözlem ve adaptasyon fırsatları sunmak için yapılan işi veya üretilen değeri temsil eder. Bu eserler, herkes eserden aynı şeyi anlayabilsin diye kilit bilginin şeffaflığını en üst seviyeye yükseltecek şekilde tasarlanmıştır.

Ürün İş Listesi (Product Backlog)

Ürün İş Listesi, üründe ihtiyaç duyulduğu bilinen her şeyin sıralandığı bir listedir. Üründe yapılacak herhangi bir değişiklik için yegâne gereksinimler kaynağıdır. Ürün Sahibi, Ürün İş Listesinin içeriğinden, erişilebilirliğinden ve sıralamasından sorumludur.
Bir Ürün İş Listesi asla tam değildir. Başlarda ilk bilinen ve en iyi anlaşılan gereksinimleri gösterir. Ürün ve içinde kullanılacağı ortam değiştikçe Ürün İş Listesi de değişir. Ürün İş Listesi dinamiktir; ürünün kullanışlı, rekabetçi ve faydalı olabilmesi için neye ihtiyaç duyduğunu belirlemek amacıyla sürekli değişir. Eğer bir ürün varsa, Ürün İş Listesi de var olur.
Ürün İş Listesi, üründe gelecek yayınlarda yapılacak değişikliklerin kaynağı olan tüm özellikleri, işlevleri, gereksinimleri, iyileştirmeleri ve düzeltmeleri sıralar. Ürün İş Listesi kalemlerinin tanımı, sırası, (büyüklük) tahmini ve değeri vardır. Ürün İş Listesi kalemlerinin, genellikle “Bitti” tanımına göre tamamlandığını kanıtlayan test tanımları da bulunur.
Bir ürün kullanıldıkça, değer kazandıkça ve pazar geribildirim verdikçe Ürün İş Listesi daha geniş ve ayrıntılı bir listeye dönüşür. Gereksinimler sürekli değiştiği için Ürün İş Listesi yaşayan bir listedir. İş gereksinimlerindeki, pazar koşullarındaki veya teknolojideki değişmeler Ürün İş Listesinde de değişikliklere neden olabilir.
Aynı ürün üzerinde çoğunlukla birden fazla Scrum Takımı çalışır. Ürünle ilgili yapılacak işleri tarif etmek için tek bir Ürün İş Listesi kullanılır. Böyle bir durumda Ürün İş Listesi kalemleri gruplandırılabilir.
Ürün İş Listesini iyileştirme (refinement), Ürün İş Listesindeki kalemlere ayrıntı, tahmin ve sıra özellikleri ekleme eylemidir. Ürün Sahibi ve Geliştirme Takımının Ürün İş Listesi kalemlerinin ayrıntıları üzerinde çalıştığı devamlı bir süreçtir. Ürün İş Listesi iyileştirme çalışması esnasında kalemler gözden geçirilir ve güncellenir. Scrum Takımı iyileştirmenin ne zaman ve nasıl yapılacağına karar verir. İyileştirme işlemi genellikle Geliştirme Takımının kapasitesinin %10’undan fazlasını almaz. Ancak Ürün İş Listesi kalemleri Ürün Sahibi tarafından veya onun takdiriyle her an güncellenebilir.
Üst sırada olan Ürün İş Listesi kalemleri genelde daha açıktır ve alt sıradakilerden daha ayrıntılıdır. Açıklık ve ayrıntı arttıkça daha isabetli tahminler yapılabilir. Sıranın altına doğru indikçe ayrıntı azalır. Ürün İş Listesi kalemlerinin Sprint süresi içerisinde “Bitti” olabilmesi için Geliştirme Takımının sıradaki Sprintte meşgul olacağı kalemler iyileştirilir. Geliştirme Takımının bir Sprintte “Bitti” durumuna getirebileceği Ürün İş Listesi kalemleri Sprint Planlamada seçim için “Hazır” kabul edilir. Ürün İş Listesi kalemleri genellikle yukarıda tarif edilen iyileştirme faaliyetleriyle böyle bir şeffaflık derecesine ulaşır.
Geliştirme Takımı tüm tahminlerden sorumludur. Ürün Sahibi Geliştirme Takımını ilgili kalemleri anlaması ve uygun tercihler yapması için etkileyebilir. Ancak son söz, işi yapan Geliştirme Takımınındır.

Hedeflere Doğru İlerlemeyi İzlemek

Hedefe ulaşmak için geriye kalan iş her an hesaplanabilir. Ürün Sahibi en azından her Sprint Değerlendirme toplantısında geriye kalan toplam işi izler. Ürün Sahibi projelendirilen toplam işin istenen zamanda tamamlanıp tamamlanamayacağını anlamak için önceki Sprint Değerlendirme toplantısında kalan işle bu rakamı kıyaslar. Bu bilgi tüm paydaşlar nezdinde şeffaflaştırılır.
İlerlemeyi öngörmek için aşağı-tüketim (burn-down), yukarı-tüketim (burn-up) veya kümülatif akış (cumulative flow) gibi eğilim ölçen çeşitli planlama araçları kullanılmaktadır. Bu araçların faydası kanıtlanmıştır. Ancak bunlar deneyciliğin önemini gölgeleyemezler. Karmaşık ortamlarda, ne olacağı bilinemez. İleriye dönük kararlar almada sadece geçmişte ne olduğu bilgisinden faydalanabilirsiniz.

Sprint İş Listesi (Sprint Backlog)

Sprint İş Listesi, (1) Sprint için seçilen Ürün İş Listesi kalemlerini ve (2) Ürün Parçasını teslim etme ve Sprint Hedefine ulaşma planını içerir. Sprint İş Listesi, Ürün Parçasında hangi fonksiyonların olacağına ve bu fonksiyonları “Bitti” tanımına uygun bir Ürün Parçasına dönüştürmek için gerekli olan işe dair bir öngörüdür.
Sprint İş Listesi, Geliştirme Takımının Sprint Hedefine ulaşmak için gerekli gördüğü tüm işleri görünür kılar. Sprint İş Listesi, sürekli iyileştirmeyi sağlamak için, bir önceki Retrospektif toplantısında belirlenen en az bir yüksek öncelikli süreç iyileştirme maddesini içerir.
Sprint İş Listesi, Günlük Scrumda ilerlemenin anlaşılabilmesi için yeterli ayrıntıyı içeren bir plandır. Geliştirme Takımı, Sprint boyunca Sprint İş Listesini değiştirir; Geliştirme Takımı Sprint içerisinde plana uygun çalıştıkça ve Sprint Hedefine ulaşmak için gerekli olan işi daha fazla anladıkça Sprint İş Listesi belirginlik kazanır.
Yeni bir iş gerektikçe, Geliştirme takımı bunu Sprint İş Listesine ekler. İş yapıldıkça, kalan iş miktarı tahmini güncellenir. Gereksiz görülen her unsur plandan çıkarılır. Sadece Geliştirme Takımı, Sprint boyunca Sprint İş Listesini değiştirebilir. Sprint İş Listesi, Geliştirme Takımının Sprint boyunca başarmayı planladığı işin son derece görünür, gerçek-zamanlı bir resmidir ve sadece Geliştirme Takımına aittir.

Sprintin İlerlemesini İzlemek

Sprint İş Listesindeki toplam kalan iş Sprintin herhangi bir anında hesaplanabilir. Geliştirme Takımı, Sprint Hedefini gerçekleştirmeye ne derece yakın olduğunu görebilmesi için en azından her Günlük Scrumda toplam kalan işi izler. Geliştirme Takımı, Sprint boyunca kalan işi izleyerek ilerlemesini yönetebilir.

Ürün Parçası (Increment)

Ürün Parçası, bir Sprint boyunca tamamlanan Ürün İş Listesi kalemlerinin ve tüm geçmiş Sprintlerin Ürün Parçalarının değerlerinin toplamıdır. Sprintin sonunda, yeni Ürün Parçası “Bitti” olmalıdır yani kullanılabilir durumda olmalı ve Scrum Takımının “Bitti” tanımına uymalıdır. Ürün Parçası, Sprint sonunda deneyselliği destekleyen gözlemlenebilir tamamlanmış bir bütündür. Ürün Parçası, vizyona veya hedefe doğru atılmış bir adımdır. Ürün Sahibi yayın kararı versin veya vermesin, kullanılabilir bir durumda olmalıdır.

Eserlerin Şeffaflığı

Scrum şeffaflığa dayanır. Eserlerden ne anlaşılıyorsa ona göre değeri en üst seviyeye çıkarma ve riski kontrol etme kararları verilir. Şeffaflığın tam olması hâlinde, bu kararların sağlam bir temeli olur. Eserlerin tam olarak şeffaf olamaması hâlinde kararlar zayıftır, üretilecek değer azalabilir ve risk artabilir.
Scrum Master, eserlerin tam olarak şeffaf olup olmadığını anlamak için Ürün Sahibi, Geliştirme Takımı ve ilgili taraflarla birlikte çalışmalıdır. Eksik şeffaflıkla başa çıkmak için belli pratikler vardır; Scrum Master şeffaflığın eksik olması halinde en uygun yöntemi kullanması için herkese yardım etmelidir. Scrum Master, eserleri gözlemleyerek, davranış kalıplarını sezerek, ne söylendiğine iyi kulak vererek ve beklenenle gerçek sonuçlar arasındaki farkları inceleyerek eksik şeffaflığı tespit edebilir.
Scrum Masterın görevi eserlerin şeffaflığını artırmak için Scrum Takımı ve organizasyonla birlikte çalışmaktır. Bu görev genellikle öğrenme, ikna ve değişimi içerir. Şeffaflık bir gecede sağlanmaz; bir yolculuktur.

“Bitti” (Done) Tanımı

Bir Ürün İş Listesi kalemi veya bir Ürün Parçası için “Bitti” deniyorsa, herkes “Bitti”nin ne olduğunu anlamalıdır. Scrum Takımlarının birbirinden farklı “Bitti” tanımları olabilir. Şeffaflığı sağlamak için, bir takım içerisindeki herkes işin hangi durumda bitmiş sayılacağına dair aynı bilgiye sahip olmalıdır. İşte bu Scrum Takımının “Bitti” tanımıdır ve Ürün Parçası üzerindeki çalışmanın değerlendirilmesi için referanstır.
Aynı tanım, Geliştirme Takımına Sprint Planlamada kaç Ürün İş Listesi kalemini seçeceğinde rehberlik eder. Her Sprintin amacı, Scrum Takımının “Bitti” tanımına uyacak şekilde potansiyel olarak yayınlanabilir işlevselliğe sahip Ürün Parçaları teslim etmektir.

Geliştirme Takımları her Sprintte işlevselliğe sahip bir Ürün Parçası teslim eder. Ürün Parçası, Ürün Sahibinin hızlı yayın kararı verebilmesi için kullanılabilir hâldedir. Eğer bir Ürün Parçasının “Bitti” tanımı, geliştirmeyi yapan organizasyonun kılavuzları, standartları ve genel iş yapış şeklinin bir parçasıysa, Scrum Takımları bunlara asgari standart olarak uymalıdır.
Eğer “Bitti” tanımı organizasyonun iş yapışının bir parçası değilse, Geliştirme Takımı ürün için uygun olan bir “Bitti” tanımı yapmalıdır. Eğer sistem veya ürün yayını üzerinde çalışan birden fazla Scrum Takımı varsa, tüm Geliştirme Takımları ortak bir “Bitti” tanımı getirmelidir.
Her bir Ürün Parçası, tüm önceki ürün Parçalarının üzerine gelir ve bunların birlikte çalışmalarını temin edecek şekilde test edilir.
Scrum Takımları olgunlaştıkça, “Bitti” tanımlarının yüksek kalite için daha zorlu kriterler içerecek şekilde genişlemeleri beklenir. Yeni tanımlar, daha önce “Bitti” tanımına uygun olarak geliştirilen Ürün Parçalarında yapılacak işleri ortaya çıkarabilir. Bir ürünün veya sistemin üzerinde yapılacak herhangi bir işlemin standardını ifade eden bir “Bitti” tanımı olmalıdır.

Son Not

Scrum ücretsizdir ve bu kılavuzda sunulmaktadır. Scrumın rolleri, etkinlikleri, eserleri, ve kuralları değiştirilemez. Scrumın bazı kısımlarını uygulamak her ne kadar mümkün olsa da sonuç Scrum olmaz. Scrum sadece bir bütün olarak vardır ve diğer teknikler, metodolojiler ve pratikler için iyi bir hazne görevi görür.
Takdir ve Teşekkür

Kişiler

Scruma katkıda bulunan binlerce insan arasında, Scrumın başlangıçta yardımı dokunanları özellikle saymalıyız. En başta Jeff McKenna ve John Scumniotales ile çalışan Jeff Sutherland ve Mike Smith ve Chris Martin ile çalışan Ken Schwaber vardı. Ve bu kişilerin tamamı birlikte çalıştılar. Sonraki yıllarda çok daha fazla insan katkı sağladı. Onların yardımı olmasa Scrum bugünkü üstün hâline ulaşamazdı.

Tarihçe

Ken Schwaber ve Jeff Sutherland, 1995 yılına kadar Scrum üzerinde çalıştılar. Scrumı ilk defa 1995’teki OOPSLA1 konferansında birlikte tanıttılar. Bu sunum, esasen Ken ve Jeff’in önceki yıllarda Scrumı uygulayarak edindikleri birikimin bir belgesidir. Scrumın ilk herkese açık resmi tanımıda bu sunum ile gerçekleşti.
Scrumın tarihçesi başka kaynaklarda anlatılmaktadır. Denendiği ve geliştiği ilk yerler olarak Individual, Inc., Newspage, Fidelity Investments ve IDX’i (şu an GE Medical) saymak gerekir.

Scrum Kılavuzu, Jeff Sutherland ve Ken Schwaber’ın 20 yılı aşkın süredir geliştirdiği, evrimleştirdiği ve koruduğu Scrumı belgeler. Diğer kaynaklar size Scrum çerçevesini dolduracak davranış kalıpları, süreçler ve içgörüler sunar. Bunlar üretkenliği, değeri, yaratıcılığı ve sonuç memnuniyetini arttırabilir.

Çeviri

Bu çeviri, Scrum Guide’ın 2016 versiyonu temel alınarak Agile Turkey’i temsilen Barış BAL tarafından yapılmıştır.
(Scrum Guide 2016 versiyonu Agile Turkey’i temsilen Selçuk Alimdar tarafından yapılmış, Ahmet Akdağ ve Onur Özcan tarafından gözden geçirilmiştir.)

 

 

Bir Yorum Yazın