4 Aralık 2013 Çarşamba

AGILE METOD-SCRUM


2000 yılında yazılım dünyasının önde gelen isimlerinden Kent Beck ve 16 arkadaşı “çevik yazılım geliştirme manifestosu” ve “çevik yazılımın prensipleri” ni yayınlamışlar, bu oluşumu ve gelişimini desteklemek için “AGILE Alliance” adıyla kar amacı gütmeyen bir organizasyon kurmuşlardır.
(Kent Beck-Mike Beedle-Arie van Bennekum-Alistair Cockburn-Ward CunninghamMartin Fowler-James Grenning-Jim Highsmith-Andrew HuntRon Jeffries-Jon Kern
Brian Marick-Robert C. Martin-Steve Mellor-Ken Schwaber-Jeff Sutherland- Dave Thomas)

AGILE MANİFESTOSU
1. Individuals and interactions over processes and tools
Bireyler ve etkileşimi, süreç ve araca tercih etmek.
2. Working software over comprehensive documentation
Çalışan bir yazılımı, detaylı belgelendirmeye tercih etmek.
3. Customer collaboration over contract negotiation
Müşteri ile işbirliğini, sözleşmedeki kesin kurallara tercih etmek.
4. Responding to change over following a plan
Değişikliklere uyum sağlayabilmeyi, belirli bir plana tercih etmek.

ÇEVİK YAZILIM (AGILE) METODU İLKELERİ
•Müşteriye hızlı şekilde kullanılabilir çıktılar üretilmelidir.
•Kodlamanın ilerleyen safhalarında bile gereksinim değişiklikleri kabul edilir, esneklik vardır.
•Müşteri /iş birimleri, yazılımcılar, analistler, testçiler birebir iletişim halinde ve birlikte çalışırlar.

ÇEVİK METODOLOJİLER
1.Sınırsal Programlama (Extreme Programming-XP)
2.Çevik Birleştirilmiş Süreç (AGILE Unified Process)
3.Scrum
4.Test Güdümlü Geliştirme (Test-Driven Development)
5.Çevik Bilgi Metodu (AGILE Data Method)
6.Özellik Güdümlü Geliştirme (Feature-Driven Programming),

SCRUM
•Rekabetçi piyasa koşulları nedeni ile şirketin karlılığının arttırılmasında sağladığı faydalar; yeniliklere /değişen teknolojilere ayak uydurmaktaki esneklikler, SCRUM metdodu waterfall metodlara karşı üstün kılar.
•Scrum karmaşık ve belirsiz gereksinimlerin olduğu projeler için daha anlamlıdır.
•Scrumda tahmin edilebilirlik optimize edilir, riskler revize edilerek amaca doğru katmadeğerli olarak ilerlenir.
•Yüz yüze iletişim olduğundan ekip içerisinde kaliteli bilgi akışı sağlanır.
•Kapsam tamamlandıktan sonra projeye başlanmaz. Kapsam proje boyunca tamamlanmaya çalışılır.
•Çoğu zaman, müşteriler büyük resmi göremediklerinden, isterlerinin tamamını projenin başında iletemezler.Maliyeti nedeni ile ertelenen müşteri talebi de, müşterinin istemediği şekilde prod’a çıkılması sonucu, müşteri memnuniyetsizliğine neden olur.
•Scrum metodta müşteriden gelecek CR’lar her bir SPRINT'te handle edilerek ilerlenir.Bu da müşteri memnuniyetinin arttırılması demektir.
•İlk SPRINT'teki maddeler ilk aşamada bilinen ve çok iyi analaşılmış gereksinimlerdir.Kapsam dinamiktir. Ürün yaşam döngüsü boyunca güncellenir.

SCRUM’IN BAŞARISI İÇİN;
•Product owner sorumluluğunu alacak müşteri, konusuna hakim olmalı ve geliştirme ekibi ile işbirlikçi bir tutum sergilemelidir.
•Kişiler hiyerarşik olarak değil, yetkinlikleri ile bir arada oldukları bilincinde olmalıdırlar. Takım üyeleri arasında ast üst ilişkisi olmamalıdır.
•Her role tanımlanmış kişiler sorumluluklarını yerine getirmelidir.
•Toplantıları düzenli olarak yapılmalıdır.
•Hızlı şekilde, müşteri tarafından kullanılabilir çıktılar üretilmelidir.

PRODUCT OWNER
•Ürün kapsamının (product backlog)yönetiminden sorumludur. Product owner bir grup değil, bir kişidir. Product backlog'taki maddeler net şekilde ifade edilmelidir.
•Maddeler önceliklerine göre sıralanmalıdır.
•Product backlog'taki maddeler analistlerle birlikte hazırlansa da sorumluluk product owner’dadır.
•Geliştirme ekibindeki kişiler product owner’ın yönlendirmesi ile hareket eder.
•Product owner projenin çıktılarını onaylar.
•SPRINT backlog'taki görevi
–Görevin kimin sorumluluğunda olduğunu
–O görevi tamamlamak için daha ne kadar efor gerektiğini belirtmektir.

GELİŞTİRME TAKIMI
•Her SPRINT'in sonunda ürün çıkaran ekiptir.
•İterasyon içinde üretilen tüm ürünlerden sorumludur.
•Grubun içinde ünvanlar yoktur.
•Konu bazlı uzmanlaşma olsa da , ürünle ilgili tüm sorumluluk bütün proje ekibine aittir.
•Takım en az 3 enfazla 9 kişiden oluşmalıdır.

SÜREÇ YÖNETİCİSİ (Scrum Master)
•Sürecin anlaşılmasından ve kuralların doğru işletilmesinden sorumludur.
•Geliştirme takımının önündeki engelleri aşmak adına, geliştirme takımına hizmet ederler.
•Backlog'taki maddelerin açık ve geliştirme ekibi tarafından anlaşılır olmasına yardımcı olurlar.
•Geliştirme takımını eğitmeli ve onlara liderlik etmelidirler.
•Dışardan gelebilecek ekstra görev ya da taleplerden (takim elemanını ilgilendirse bile) ve takımı hedeften şaşırtıcı, her türlü engelin kaldırılmasından Scrum master sorumludur.
•Geliştirme ekipleri içinde olası problemlere (kurallara uyulmaması ya da görevin tamamlanmaması gibi durumlar) Scrum-ustası müdehale etmelidir. Müdahale; talimat verme şeklinde olmamalıdır.Anlaşma sağlamaya yönelik olmalı ve önerilerde bulunmak ya da aksayan işler için hatırlatmalarda bulunmak şeklinde olmalıdır.

SPRINT
•Max 1 ay süresi olan, 1 ay sonunda ilgili iterasyonda çıkması planlanan ürünün geliştirildiği fazlardan her birine denir.
•SPRINT kapsamındaki maddeler, SPRINT backlog'ta listelenir.
•SPRINT'ler biribirini izler.
•Bir SPRINT'in ardından diğeri başlar.

SCRUMDA TOPLANTILAR
Scrumda 4 temel toplantı vardır:
•Sprint Planlama Toplantısı: SPRINT süresince yapılacak işler planlanır.Scrum takımının katılımı ile gerçekleştirilir. 1 aylık SPRINT için ayrılacak SPRINT planlama toplantısı max. 8 saattir. Bir önceki SPRINT'teki ürün, önceki SPRINT'in performansı ve ilgili SPRINT'in kapasitesi görüşülür. SPRINT'te ne kadar işin yapılabileceğine geliştirme takımı karar verir.
•Sprint Planlama Toplantısı 1:Product backlog'taki maddeler, netleştirilerek önceliklendirilir. Bu toplantıda “NE” sorusunun cevabı aranır.
•Sprint Planlama Toplantısı 2: Bu toplantıda “NASIL” sorusunun cevabı aranır. Sprintin kapsamı ve gereksinimler bellidir ve nasıl yapılacağı konuşulur. Açık konular netleşltirilir. Bir günlük süreyi aşmayacak şekilde sonuçlandırılması beklenir.

•Sprint Günlük Toplantısı: 15 dakika ile sınırlı bir aktivitedir ve ayakta gerçekleştirilir. Hangi işlerin yapıldığı, bir sonraki toplantıya kadar hangi işlerin tamamlanmasının planlandığı ve varsa planlanan işlerin önündeki engellerin neler olduğu görüşülür. (dün ne yaptım, yarın ne yapıcam, beni ne engelliyor) SPRINT süresince “burndown chart” denilen kalan gereksinimler/geçen zaman grafiği güncellenir.
•Sprint Gözden Geçirme Toplantısı: SPRINT süresince neler yapıldığı konuşulur. 1 aylık SPRINT süresinde 4 saat zaman ayrılır. Amaç bir önceki SPRINT için geri bildirim almak ve işbirliğini arttırmaktır.Bu toplantının sonunda revize edilmiş ürün kapsamı çıkar.
•Sprint Süreç İyileştirme Toplantısı:SPRINT gözden geçirme toplantısı ile SPRINT planlama toplantısı arasında yapılır. 1 aylık SPRINT'te max. 3 saat olarak gerçekleştirilir. İyi yapılanlar ve gelişeme açık yönler görüşülür. Eksik yönlerin düzeltilmesi için iyileştirme planları hazırlanır. Scrum takımı bir sonraki SPRINT'te iyileştirmeleri tamamlamış olmalıdır.

Yeni bir SPRINT için tekrar gereksinimler seçilir ve tekrar sprint hayat döngüsü başlar.

Hiç yorum yok:

Yorum Gönder