Agile hakkında her şey...20Şubat

Agile hakkında her şey...

Agile çalışma şeklinde uygulanacak çalışma disiplinlerinden biri bizim kullandığımız SCRUM’dır. SCRUM, rugby oyunundan gelen ve tüm oyuncularla hücum ederek topu karşı sahaya taşıma tekniğine verilen isimdir. Scrum çalışma disiplini ile Agile proje yönetiminde ilerleme şekli aşağıda açıklandığı gibidir.
 

Yapılacak işler - Product backlog (user story’lerden seçilerek)
İlk çalışma zamanında yapılacak işler - Sprint backlog
Çalışma zaman aralığı belirleme - Sprint tıme 
Daily scrum meeting - Günlük scrum değerleme toplantısı
Potentially shippable product increment - Çalışan yazılım ve proje çıktısı
 

Agile projelerde scrum yapılırken etkisi olan aktörler ve açıklamaları;

Product owner: İşin veya ürün çıktısının sahibi olan kişidir.
Scrum master: Scrum yapan takımın koordinasyonu, motivasyonu, sahipliği ve projenin yönetiminden sorumlu olan kişidir. 
Scrum team: Proje için dedike olarak çalışan analist, yazılım, testten sorumlu rollere ait kişilerden oluşur.

 

Nasıl çalışılır?

Sprint planlama toplantısı ile kullanıcının istediği çıktıya ulaşmayı sağlayacak, kullanıcı hikayeleri (user story) bağımsız olarak yazılır ve ekip tarafından sürelendirilerek ürün sahibinin (product owner) seçimine sunulur. Seçilen işler product backlog adını alarak o sprint planında yapılmak üzere ele alınır.
 

Günlük olarak 15 dakikalık toplantılarda önceki gün yapılan, o gün yapılacak işler konuşulur ve anlaşılır. Bu toplantılar genelde ayakta yapılır, başlangıç saatine uyum önemlidir ve toplantıda konuşmalar aynı anda sadece bir kişi tarafından yapılır. Scrum master toplantıyı yönetir. Söz alan kişiler yaptıklarını ve yapacaklarını söyledikten sonra sorusu var ise diğer takım üyelerine sorar. Teker teker cevaplanır, aynı anda konuşulmaz. Toplantı bitimine yakın projede olası aksaklık veya sorun çıkması muhtemel konular scrum master’a bildirilir. Scrum master bunların çözüm yollarını arar ve karara bağlar. Ekibe bilgi verir.
 

Sprint dediğimiz çalışma zamanları (genelde 2 ila 4 hafta seçilir) ve iş büyüklüklerini ölçeklendirdiğimiz bir birimle işin süresi belirlenir. Örnek büyüklük olarak, bir Formula 1 yarış süresi kadar denebilir (yaklaşık iki saat).

 

Agile çalışma şeklinin başlangıcındaki manifesto;

  • “Önemli ve az önemli işler arasında;
  • Kişiler ve takım çalışması, süreç ve araçlardan daha önemlidir,
  • Çalışan yazılım, detaylı dökümantasyondan daha önemlidir,
  • Müşteri ile beraber çalışmak, sözleşme ve anlaşmalar yapmaktan daha önemlidir,
  • Değişime ayak uydurmak, plana bağlı kalmaktan daha önemlidir.”
     

Aksiyonlar

  • Analiz, dizayn, yazılım, test ve prototip sprint sonunda çıkarılır. Her sprint sonunda sprint değerlendirme ve geriye dönük özeleştiri yapılır. (sprint review, sprint retrospective)
  • Neleri iyi yaptık, neleri daha iyi yapabilirdik ve neleri yapamadık gibi sorulara cevap aranır, öğrenilir ve bir sonraki sprintte buna dayanarak daha güçlü olunması sağlanır.
  • Günlük çalışmalar; Yapılacak, yapılmakta olan ve yapılmış işlerin ve zaman planlarının şeffaf olarak izlenmesini sağlar. Bunun için burndown denen ekip çalışma hızını belirleyen grafik gösterilir.
  • Bu grafikte hedef ve gerçekleşen çalışma, iş bitirme süreleri günlük olarak izlenir. Projenin herhangi bir anında ne durumda oldugu buradan rahatlıkla görülebilir.
  • Product owner’dan gelen her türlü değişiklik talebini alabiliyoruz. Ancak sprint içinde kesinlikle planlama ve değişiklik yapmıyoruz. Bunun için mutlaka bir sonraki sprint planlamayı bekliyoruz.
  • Bu şekilde iterasyonlar (sprintler) sonucunda kapsama göre product owner’ın istediği şekilde projeyi tamamlıyoruz.
  • Agile yaklaşımıyla çalışarak; Karmaşık ve belirsizlik içeren proje ve işleri, zengin kapsam, yüksek kalite ve müşteri memnuniyeti ile sonuçlandırmaya çalışıyoruz.