22 Mart 2015 Pazar

SCRUM’a Giriş

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;
gibi.


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.


 ÇIKTILAR
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.agilemanifesto.org
·         www.mountaingoatsoftware.com/scrum
·         The New New Product Development Game by Takeuchi and Nonaka. Harvard Business Review, January 1986