Agile (çevik), dünya üzerinde
kabul edilen yöntemler arasında hızlı ve güvenli proje geliştirme
yaklaşımıdır.Scrum, en kısa zamanda en yüksek iş değerini teslim etmeye
odaklanmamızı sağlayan bir agile süreçtir. Hızlı ve tekrar tekrar asıl çalışan
yazılımı denetlememize imkan verir. İş birimi önceliklerini belirler. Takımlar, en öncelikli yetenekleri teslim
etmek için, en iyi yolu, en iyi yöntemi, kendiliğinden organize olarak belirlerler.
Her 1 hafta veya 1 aylık sürede gerçek, çalışan yazılım ortaya çıkarılır.
Yaygınlaştırma veya bir sprint daha bu ürün üzerinde çalışılma kararı verilir.
Karakteristikleri:
•
Kendiliğinden organize takımlar,
•
1 ay uzunluğundaki “Sprint”lerde ürün geliştirilir,
•
Gereksinimler “Product Backlog”
içerisinde maddeler olarak tutulur,
•
Herhangi bir mühendislik pratiği tanımlı değildir,
•
Proje teslimatı yapılan Agile bir ortam yaratmak için üretken
kurallar kullanır,
•
“Agile süreçlerden”
birisidir.
Çevik Yazılım Geliştirme Manifestosu;
Scrum Döngüsü;
Scrum Sprintleri:
•
Scrum projeleri Sprint’ler süresince ilerler(Extreme
Programming’deki iterasyonlar gibi),
•
Süresi 1–4 hafta veya en fazla 1 takvim ayıdır,
•
Sabit Sprint süresi, daha iyi ritim yakalanmasını sağlar,
•
Sprint süresince ürün tasarlanır, kodlanır ve test edilir.
Ürün Geliştirme Tekniği;
Sprint
sürelerinde değişiklik yapılmaz ; Sprint süreleri, ne kadar süre değişikliği
sprintin dışında tutulabileceğine göre planlanır.
Scrum Çerçevesi:
ROLLER
a) Ürün Sahibi
•
Ürünün yeteneklerini belirler,
•
Yaygınlaştırma içeriğini ve tarihini belirler,
•
Ürünün karlılığından sorumludur (ROI),
•
Pazar değerine göre yetenekleri önceliklendirir,
•
Gerektiği durumda her iterasyon yeteneklerini ve öncelikleri
günceller,
•
İş sonuçlarını kabul veya reddeder.
b) Scrum Master
•
Projede yönetimi temsil eder,
•
Scrum değer ve pratiklerinin içselleştirilmesinden sorumludur,
•
Engelleri ortadan kaldırır,
•
Takımın tam olarak fonksiyonel ve üretken olduğundan emin
olur,
•
Tüm roller ve fonksiyonlar arasındaki yakın işbirliğini
sağlar,
•
Dış müdahalelerden takımı korur.
c) Takım
•
Genellikle 5-9 kişidir,
•
Disiplinler arası yetenekler bulunur(Yazılımcılar, test
mühendisleri, kullanıcı deneyimi tasarımcıları, vb.),
•
Takım üyeleri tam zamanlı olmalıdır(Bazı özel durumlar olabilir;
Veritabanı yöneticileri gibi),
•
Takımlar kendiliğinden örgütlüdür (self organized),
•
İdeal olarak hiç bir ünvan yoktur (çok nadiren olabilir),
•
Takım üyeleri sadece sprintler arasında değişmelidir.
TOPLANTILAR
a) Sprint Planlama
Sprint planlama işlemleri;
v Takım
bitirmek için taahhüt verebileceği maddeleri ürün iş yığınından seçer,
v Sprint Görev Yığını oluşturulur,
Ø
Görevler belirlenir
ve tahmin yapılır (1-16 saat),
Ø
Sadece Scrum Master tarafından değil, ortak olarak yapılır.
v Üst
seviye tasarım düşünülür.
Örneğin;
b) Ne var? Ne yok? Toplantısı
v Parametreler (Günlük, 15 dakika ve ayakta yapılır),
v Problem çözmek için değildir,
Ø Tüm dünyayı davet edebilirsiniz,
Ø Sadece takım üyeleri, Scrum Master, Ürün Sahibi konuşabilir.
v Diğer ekstra toplantıların düzenlenme ihtiyacını ortadan
kaldırır
Herkes 3 soruyu cevaplar;
v Bunlar Scrum Master’a durum bildirmek için değildir. Takım
üyelerinin önünde verilen taahhütlerdir.
c) Sprint Ürün Gözden Geçirme
•
Takım, sprint süresince ne
tamamladığını sunar,
•
Genellikle yeni yeteneklerin
ve mimarinin demosu şeklindedir,
•
Resmi değildir (2 saat
hazırlanılır, slayt olmaz),
•
Tüm takım katılır.
d) Sprint Süreç Gözden Geçirme
•
Her sprint sonunda yapılır,
•
Periyodik olarak iyi ve kötü
giden noktalara bakılır,
•
Genellikle 15–30 dakika
sürer,
•
Tüm takım katılır(Scrum
Master, Ürün Sahibi, Takım, Belki müşteriler ve diğerleri),
•
Başla/Dur/Devam Kararının
verilmesi; Tüm takım bir araya gelir ve yapılmak istenenleri tartışır.
a) Ürün İş Yığını
•
Gereksinimler,
•
Projede yapılması istenen
tüm işlerin listesi,
•
İdeal olarak her maddenin
müşteri veya kullanıcı açısından bir değeri vardır,
•
Ürün sahibi tarafından
önceliklendirilmiştir,
•
Her sprint başlangıcında
tekrar önceliklendirilir.
Örnek iş yığını;
Sprint Hedefi: Sprintte
yapılacak işin odaklanacağı noktayı tanımlayan kısa ifadedir.
b) Sprint Görev Yığınının Yönetilmesi
•
Bireyler kendi yapacakları
işleri seçerler(Asla iş ataması yapılmaz!),
•
Kalan tahmini iş miktarı her
gün güncellenir,
•
Takım üyeleri, Sprint Görev
Yığını üzerinde ekleme, silme ve güncelleme yapabilir,
•
Sprint işleri gelişir,
•
Eğer net değilse, daha
yüksek tahminli bir Sprint Görev Yığını maddesi tanımlanır, sonra parçalara
ayrılır,
•
Yapılacak iş daha çok belli
olmaya başlayınca kalan iş miktarı güncellenir.
Örnek Sprint görev yığını;
c) Eksiltmeli İş Bitirme Çizelgesi
Ölçeklenebilirlik;
v Genellikle
takımlar 7 ± 2 kişidir
Ø Ölçeklenebilirlik, takımların takımından gelmektedir
v Ölçekleme Faktörleri
Ø Uygulamanın tipi
Ø Takım boyutu
Ø Takım dağılımı
Ø Proje süresi
v Scrum 500+
kişiden oluşan projelerde kullanılmaktadır
Kaynaklar:
·
http://www.scrumturkey.com/
·
www.mountaingoatsoftware.com/scrum
·
“The New New
Product Development Game” by Takeuchi and
Nonaka. Harvard Business Review, January 1986