14 Ekim 2019

Agile Genel Kavramlar

ile Mehmet Çevik

Agile Genel Kavramlar

  • Projeyi aşamalı olarak geliştirmeyi öngören
  • İş değerinin erken ve kısa aralıklarla teslim edilmesi,
  • Ürün yada süreçlerin sürekli iyileştirilmesi,
  • Esnek Kapsam yönetimi,
  • Müşteri ile yakın iş birliği,
  • Kendi kendine yönetebilen etkin ekipler

WaterFall Şelale Yöntemi : Karmaşıklığın az olması gerekir karmaşıklık artıkça merkezi kontrol bozulur.

1970 Winston W.Royce Requiremnet>Design>İmplementation>Verification>Maintenance

Prototip: Sistem son hale gelmeden önce kullanıcıya gösterilen bir örnek prototip ile ilerletilmeye çalışılır.

Spiral Model : Her fazda alternatifler incelenir bu inceleme spiralin bir sonraki aşaması için referans teşkil eder. 

İlgili resim

Spiralin orj olan uzaklığı maliyeti ifade eder. Nesne tabanlı uygulamalar için kullanılması uygundur.

Artırımlı Sürüm Modeli : Ardışık release ler ile çıkartılır.

Çevik Yöntemler

Daha küçük döngüler ile, analiz geliştirme ve test aşamaları tekrarlanmasına dayanır.

İşi parça parça geliştirme ve teslim etme mantığı üzerine kurgulanmıştır.

Çevik Manifesto

Daha Önemli Az Önemli
Bireyler ve aralarındaki etkileşimler Kullanılan Araç ve Süreçler
Çalışan Yazılım Detaylı Dokümantasyon
Müşteri ile işbirliği Sözleşmedeki kesin kurallar
Değişikliklere uyum sağlayabilmek Mevcut Planı Takip etmek

İlkeler

1.       Değerli yazılımın erken ve devamlı teslim edilmesi

2.       Değişen gereksinimler yazılım son surecinde bile kabul edilmelidir . Değişim müşterinin rekabet avantajı için kullanılır.

3.       Çalışan yazılım tercihen kısa aralıklar belli aralıklar ile müşteriye teslim edilir. (Bir kaç hafta ay)

4.       İş süreçlerinin sahibi ve yazılımcılar proje boyunca her gün birlikte çalışmalıdır.

5.       Projede motive olmuş bireyler ile çalışılmalıdır. Onların ihtiyaçları olan ortam ve destek sağlanmalıdır.

6.       En etkili iletişim yüz yüze iletişimdir.

7.       İlerlemenin birinci şartı çalışan yazılımdır.

8.       Çevik süreçler sürdürülebilir geliştirmeyi teşvik etmelidir.

9.       Teknik mükemmeliyet ve iyi tasarım konusundaki özen çevikliği artırır.

10.   Sadelik yapılmaması gereken işlerin belirlenmesi ve artırılması sanatı

11.   En iyi mimariler kendi örgütleyen ekiplerden çıkar.

12.   Takım düzenli aralıklar ile daha iyi nelein yapacağı konusunda düşünür ve davranışlarını geliştirir.

Ana Elemanlar

·         Şeffaflık

·         Denetleme,(Gözlem)

·         Adaptasyon

Roller

·         Scrum Master

·         Product Owner

·         Geliştirme Takımı

Aktiviteler

1.       Iterasyon Planlama (Sprint Planing)

2.       Günlük Scrum (Daily Scrum)

3.       Iterasyon Değerlendirme (Sprint Demo,Sprint Review)

4.       Geriye Dönük Gözden geçirme (Sprint Retrospective)

Eserler

1.       Ürün İçeriği (Product Backlog)

2.       Iterasyon İçeriği (Sprint Backlog)

3.       İş Bitimi Grafiği (BurnDown Chart)

4.       Çalışan Ürün (Working Product)

5.       Engel Listesi (Impediment List)

Product OwnerProduct Backlog dan sorumludur.

Sprint süresi genellikle 2 hafta olarak seçilir

Sprint in ilk kısmı “NE”  ikinci kısmı “NASIL” öğleden sonra görüşülür.

2-4 hafta süre

TimeBoxing (Zaman Sınırı)

Sprint Planlama 8 saat
Sprint 2,3,4 hafta olabilir
Daily Scrum 15 dk
Sprint Review 4 saat
Sprint Retrospective 3 Saat

1.      XP  Extreme Programming

2.      DSDM Dinamik Sistem Geliştirme

3.      Crystal

4.      Kanban

5.      Lean Yaklaşım

Toplamı Optimize et Çöpü Elimine et Kaliteyi Dahil et Sürekli Öğren Hızlı Teslim et Ekibi Güçlendir Hep Daha iyiye git

ROI =  (YATIRIMDAN GELEN KAZANÇ -YATIRIM MASRAFI) / YATIRIM MASRAFI

Ürün Sahibi

Tema > Epic > Kullanıcı Hikayesi

Kullanıcı Hikayesi sıralaması Ürün sahibi tarafından yapılır.

Tahminleme Yöntemleri

o   Efor Tahminlemesi

o   Planing Poker

o   Relatif Tahmineleme

Ürün Yol haritası hazırlanması 4 adımdan oluşmaktadır.

1.       Ürün gereksinimlerin belirlenmesi,

2.       Ürün Özelliklerin yerleştirilmesi (Temaların

3.       Ürün özelliklerinin tahminlenmesi ve önceliklendirilmesi

4.       Üst düzey zaman dilimlerinin belirlenmesi

Gereksinim Hiyerarşisi

En alt seviye de Task, Task  görev tek bir iş türüne bağlı olan iştir (programlama, analiz , test)

User Story :   Kullanıcı hikayesi birden fazla çalışma türünü içermektedir.  yani birden fazla görevden oluşur kullanıcı hikayesi ürün iş listesinden oluşur  bunların üstünde Epic yer alır

Tema : Üst Seviye hedeflerdir

Örn : Tüm şirket  yazılımlarına single sign-on giriş sağlamak gösterilebilir.

Epic : Birbiri ile ilişkili kullanıcı hikayeleri grubudur.

Scrum da 3 çeşit hikaye olur.

1.       Kullanıcı Hikayesi : Kullanıcı için değer yaratan fonksiyonları tanımlar, planlama kalemleridir, sprint kapsamasında yer alır.

2.       Teknik Hikaye : Geliştirme Takımı tarafından yazılır. Fonksiyonel olmayan projeye ilişkin gereksinimlerdir.

3.       Hata (Defect) üründe ki bir hata yada bulguyu tanımlar, çözüm önerisi sunulabilir. Ürün iş listesinden hatanın referansının tutulması önemlidir.

Kullanıcı Hikayesi Şablonu

As A <Role>  ilgili rol

I want to <Goal> istediği hedef

so that <benefit> bu hedefin faydaları

Kabul Kriterleri istenmelidir.

Persona : Ürünün gerçek kullanıcıları hakkında bilgilerinize dayanan hayali kişileri temsil eder.

Kullanıcı Hikayesi Özellikleri

Independent Birbirinden bağımsız olmalı
Negotiable : Müzakere edilebilir olmalı
Valuable Müşteri Değeri olmalı
Estimated Efor Tahmini yapılabilmeli
Small Küçük boyutlu birkaç günlük işler olmalı
Testable Test edilebilir olmalı

Story Map (Hikaye Haritası)

İş akışının görünürlüğünü sağlar

Hikayeler arası ilişkileri gösterir

Eksik hikayelerin tespitini gösterir.

Önceliklendirme tekniklerinden birisidir.

Sürüm planlamasında değer yaratan hikayelere odaklanılmasını kolaylaştırır.

Soldan sağa doğru önceliklendirmeye göre Epic ler sıralanır. Epic lerin gerçekleşme sıralamasına uygun olarak düzenlenir.

Sonraki aşama Epicler ile ilgili Kullanıcı Hikayelerinin belirlenmesidir.

Product Backlog : Ürün iş listesi  önceliklendirmesi ve büyüklük tahminlemesi yapılan kullanıcı hikayeleri, teknik hikayeler, hatalar ve risk yanıtlarının listesi yer alır.

Kullanıcı Hikayesi Tahminleme Yöntemleri

·         WideBand Delphi- Planing Poker : Grup Tahminleme yöntemi birbirinden bağımsız tahminleme(en düşü ve yüksek  tahminleme arasındaki fark%20 kadar olmalıdır.

·         Planing Poker : Fibonacci sequence baz alınır.

·         Triangulation: Önceden tahmin edilmiş bazı hikayelere bağıl olarak diğer hikayelere tahminleme yöntemi A hikayesi B den büyük mü?

·         Anchoring : Algısal ön yargı karar alırken sunulan ilk bilgi parçasına dayanılır (Anchor – Çapa) diğer kararlar bu çapadan ayarlanarak yapılır.

·         Velocity :

Story Point : Hikaye puanı  Scrum takımı tarafından kullanılan rasgele bir ölçüdür. Bir hikayenin gerçekleştirilebilmesi için gerekli olan eforun ölçmekte kullanılır.

Sprint Planlama Toplantısı :

·         İlk yarısında ; (NE kısmı sorusuna cevap arar)

o    Ürün sahibi sprintte olması istenen özellikleri listeler

o    Geliştirme takımı bu özelliklerden yapılabilecek olanları seçer

o    Ürün sahibi öncelik sırasında son sözü söyler

o    Geliştirme takımı yapılacaklar için son sözü söyler

·         İkinci yarısında; (Nasıl kısmına cevap aranır.)

o    Seçilen hikayeler görevlere tasklara kırılır.

o    Görevler için tahminleme yapılır.

o    İşlerin nasıl yapılacağı kararlaştırılır.

o    Kimin yapacağı sonra da belirlenebilir.

Görev Task Özellikleri

·         Görev Sahibi

·         Görev Durumu (Beklemede, Başladı , Tamamlandı)

·         Tahmin Süre

·         Gerçek Süre

·         İlgili Hikaye

Müşteri Değeri Odaklı Önceliklendirme

·         Kano Modeli : Müşteri gereksinimlerini belirleme ve müşteri beklentilerini ötesine geçme (Temel ,Doğrusal ,Heyecan Verici İhtiyaçlar)

·         Theme Screening ( Tema Gösterimi)

·         Theme Scoring(Tema skorlama)

·         Relative Weighting (Bağıl Ağırlıklandırma)

·         MoSCoW

o    (Must,

o    Should Have,

o    Could Have,

o    Won’t Have)

·         100 Puan

Günlük (Daily) Scrum

·         Ayakta en fazla 15 dk

·         Dün ne yaptım, bugün ne yapacağım, önümde bir engel görüyor muyum?

·         Scrum Master toplantıyı organize eder.

·         Scrum Master katılımı zorunlu değildir.

·         Sorunlara çözüm bulunmaz

·         Scrum Master engel ve sorunları Engeller (impediment) Listesine kaydeder ve aynı gün içerisinde çözülmesini sağlanır.

Task Board :  To do , InProgress , Testing, Done

Spint BurnDownChart : Sprint için kalan iş miktarının gösterildiği bir grafiktir.

Sprint (Preview )Değerlendirme Toplantısı

Geliştirilen ürünün gözden geçirildiği

Bu toplantıya geliştirme takımı, paydaşlar, sponsor ve müşteri katılabilir.

Geliştirilen kısma odaklanır.

Herkesin ilerlemeyi görmesi sağlanır.

Sprint Retrospektif Toplantısı

Sürecin ve takımın iyileştirilmesin odaklanır. Takım süreç ve diğer teknik yaklaşımlarda sorun olup olmadığı konusunda tartışılır

Product Backlog Grooming :

Ürün iş listesinin iyileştirilmesi aktivitesi. Bir sonraki sprint planlaması öncesi Product Backlog un gözden geçirilmesi öncelikler değişebilir ve yeni gereksinimler eklenebilir.

Tüm scrum takımı dahil olur olur sorumlu Product Owner dır.

Projenin Aşamaları

Planlama – Proje ve Sürüm

·         Product Backlog oluşturulması

o    Kullanıcı Hikayesi oluşturulması

o    Kullanıcı Hikayelerinin Önceliklendirilmesi

o    Kullanıcı Hikayelerinin büyüklük tahminlemesi

Planlama – Sprint

o   Sprint Backlog oluşturulması

o    Kullanıcı Hikayelerinin işlere (tasklara) bölünmesi

o    Geliştirme Takımının işleri üzerine alması

o    Görev efor tahminlemesi

o    Görevlerin öncelik ve bağlantılarının incelenmesi

İlk Sprintin Başlatılması ve İzlenilmesi

·         Günlük Scrum

·         Sprint Değerlendirme

·         Sprint Retrospektifi

·         Product Backlog Grooming (Bakım/ İyileştirme)

Product Backlog ve Kullanıcı Hikayesi Oluşturma

·         Öncelikle paydaşlar belirlenir.

·         Sonrası olası tüm roller ekiple birlikte belirlenir.

·         Önemli roller için detaylandırma yapılır ve kayıt altına alınır

·         Rol kartlarına detaylar eklenir(Personas) hangi sıklıkla yazılım kullanılacak, uzmanlığı, bilgisayar kullanım sıklığı yetkinliği

Iron Triangle Paradigma Shift (Paradigmanın Değişimi)

Gördükçe hayallerin değişmesi regulasyonlar proje önceliklerinin değişmesi

Yapılmış olan geliştirmelerin % kaçı kullanılıyor

Fonksiyonların kullanımının ölçülmesi yapılamıyor (%40)

Waterfall: gereksinimlerinin tümünü topla , planla,  tamamı implemente et, tamamını test et,

Artırımlı Sürüm Modeli: İlk sürüm de bir değer ortaya çıkarma ve sonraki sürümlerde ilk üretilene değer katarak

Sprint değerlendirme neler doğru neleri iyileştirebiliriz retrospective

Karmaşıklığın üst düzey olduğu projelerde aile metotları karamaşıklığını değişikliğin az olduğu projeler waterfall ile yürütülebilir.

Agile Manifesto

·         Bireyler arası etkişimin artırılması

·         Çalışan yazılım

·         Müşteri ile iş birliği

·         Değişikliklere uyum sağlayabilmek

Agile bir felsefe bir yaklaşım üst çatı gibidir.

Agile altında yer alan framework

Scrum %58

Scrum /xp Hybrid %10

Custom Hybrid %8

Kanban % 5

ScrumBan % 7

Don’t Know % 8

İtarretive yaklaşım : bir şeyi bitir yeniden başla

Şeffaflık  (Transparency): Günlük toplantılar,

Denetleme ( Inspection)

Adaptasyon (Adaptation) her spirint sonrası bir sonraki sprint da daha iyi nelerin yapılabileceğini konuşulması

Scrum Master : Takımın sorumlusu, bir yönetici değildir takımın önündeki engellleri kaldıran bir hizmetkar liderlik (Servant Leaders) günlük toplantılara katılması zorunlu değil ama katılmasının faydası olur 

Product Owner , iş biriminden genellikle günlük toplantılara opsiyonel oalrak katılabilir zorunlu değil ürünün yol haritasını belirleyen, bütçeyi belirleye nyöneten   

Devolepment Team : test yazılımcı , analist takım içinde kime ihityaç duyuluyorsa içinde bulunan herkes günlük toplantılara katılım zorunludur. 3-9 kişi 

·         Kendi kenine organize olabilen ,

·         Küçük, 

·         Özerk,

·         Multidisipliner: farklı farklı disiplinler cross funcitonol yapı ile herkesin her işe detek verebilmesi yetkinliği

Time boxing :  işlerin kontrolatında tutmak belirli işler için belirli zaman dilimleri belirleme

Sprint planmlama Toplantısı : sprint içindeki neler yapılacağının kararı veriliyor 8 saat planlama toplantısı

Sprint :2-4 hafta

Daily Scrum : günlük yapılan toplantılar dün ne yaptık bugün ne yapacağız engeller var mı neler yapacağız. Günlük 15 dk

Sprint değerlendirme Sprint Rewiew : 4 saat

Retrospective : Takımın bir araya gelerek sprintte neleri iyi nelerin yanlış yapıldığının konuşulduğu değerlendirme toplantısı 4 haftalık bir sprint için 3 saat 

Bireysel tartışma çatışma yok ürünü değerlendirmiyoruz süreç te yapılanlar süreci değerlendirilmesi yapılıyor.

Herkes neleri iyi yapıldığı veya kötü yapıldığının herkes tarafından görüş bildiririlerek yapılması gerekmektedir.

Kullanabilirlik (Usebility ) kullanıcılar tarafındna kullanılabilirlik var mı ? Mobil projelerde

1.       Product Backlog : bir ürün ile ilgili tüm özelliklerin futureların listelendiği liste

Sprint Backlog

·         BurnDown Chart : Sprint içinde tamamlanan işlerin izlendiği chart

·         Çalışan Yazılım (Working Product):

·         Engel listesi  (Independent List):

Bug free : bug olmayan ürün

ROI: Return On Investment : Yaptığınız yatrımın geri dönüşü nü gösteren bir veridir. Bir yatırımın size na kadar getiri sağladığını yeni verimliliğin bu yatırımın sürdürülmesi gerekip gerkemkediğini gösterir

ROI :  (Yatırımdan Gelen Kazanç – yatırım Maliyeti ) / Yatırım Masrafı

THE ROADMAP TO VALUE

1.       VISION : ürün bundan sonraki süreç de nereye gideceğini öngören bir motto oluşturulması Vizyon bu ürün neden oluşturulmak isteniyor

2.       PRODUCT_ ROADMAP

3.       RELEASE PLANING

4.       SPRINT PLANNING

5.       DAILY SCRUM

6.       SPRINT REVIEW

7.       SPRINT RETROSPECTIVE

Ürün Yol Haritası

Epic : Birbiriyle alakalı kullanıcı hikayeleri grubudur.

Mobil bankacılık ekranında kullanıcı ekranı giriş ile ilgili bağlantıları diğer story leri bir profil altında toplanması.

Proje yönetim metetodolojisinde iletişim projenin %70 içeriyor fakat iletişimden kast edilen proje yöneticisinin iletişi için ayırdığı zaman.  Takım içi iletişimin üst düzeyde olması durumundan ziyade iletişim tek kişi üzerinden yürütüldüğü için iletişimde aksaklıklar olmaktadır.

Agile ile iletişimi yatay yönde artırarak ekip içi iletişimin artırılması ve verimliliğin artırılması hedeflenmektedir.

Define Of Done (DoD) : Bitti kriter tanımı

Analiz, Kodlama, Test, Döküman, Yayın

Takımlar arasındaki senkronizasyonun sağlanması ortak bir dil ile bitti tanımın ortaya konulması.

Bir ürünün bir tek Dod olur birden fazla bitti tanımı olmaz

Dod değiştirilebilir esenetilebilir veya zorlaştıralabilir.

Birde nfazla takımın çalıştığı bir proje de dod tanımında güncelleme istendiğinde diğer tüm takımların da dahil olduğu dod tanımı değişikliği bilgilendirilmesi gerekir. DOD bir güncelleme gerekirse sprin içinde veya tünm takımlara bilgi verilmesi gerekiyor

User Story Product owner tarfından oluşturuluyor

Ben kimim ne istiyorum karşılığında ne istiyorum.

User Story altında tasklar var

T1,

T2,

T3

Taskları devoloper team belirliyor

Story Map

Hikayeleri haritalama

Hangi hikaye hangi hikaye ile ilşkili kaç hikayeye dah gerek var öncelikli belirleme sıralamda başuvrabileceğimiz bir yöntem.

Sürüm Release Sprint içersinde yapılan ürünün ortaya çıkarılması

Sprint 

Product Backlog : Product Backlog Itemler

Itemler size ları vardır

Bunlar da Story point ler ile belirlenir.

Tahminleme Yöntemleri

Third party var mı

Complex lik varmı 

Yeni bir iş mi?

Planing Poker 

User story den tasklara bölmeli ve taskın mak 8 saat aşamaycak şekilde planlanması

X