Agile ve Scrum Nedir? Çevik Yazılım Geliştirme Rehberi
Klasik yazılım geliştirmede önce aylarca analiz, sonra aylarca geliştirme, en sonunda test. Proje bitene kadar müşterinin istekleri çoktan değişmiştir. Agile bu döngüyü kıran devrimci yaklaşımdır.
Agile (Çevik) Nedir?
Agile, yazılım geliştirmede kısa iterasyonlar, sürekli geri bildirim ve değişime açıklık prensiplerini benimseyen bir felsefedir.
Agile Manifesto (2001)
| Değerli | Daha Değerli | |---------|-------------| | Süreçler ve araçlar | Bireyler ve etkileşimler | | Kapsamlı dokümantasyon | Çalışan yazılım | | Sözleşme pazarlığı | Müşteri iş birliği | | Planı takip etme | Değişime yanıt verme |
Scrum Nedir?
Scrum, Agile felsefesinin en popüler framework'üdür. Sabit uzunlukta iterasyonlar (sprint) kullanarak değer üretmeyi hedefler.
Scrum Rolleri
| Rol | Sorumluluk | |-----|-----------| | Product Owner | Ne yapılacağını belirler, backlog'u yönetir | | Scrum Master | Süreci kolaylaştırır, engelleri kaldırır | | Development Team | İşi yapar, self-organizing |
Scrum Etkinlikleri
Sprint Planning
Sprint başında yapılır. Sprint hedefiniz belirlenir, backlog'dan işler seçilir.
Daily Standup (15 dk)
Her gün, ayakta, kısa toplantı:
- Dün ne yaptım?
- Bugün ne yapacağım?
- Önümde engel var mı?
Sprint Review
Sprint sonunda tamamlanan işler stakeholder'lara gösterilir. Demo zamanı.
Sprint Retrospective
Sprint sonunda ekip içi değerlendirme:
- Ne iyi gitti?
- Ne kötü gitti?
- Nasıl iyileştirebiliriz?
Scrum Yapıtaşları
Product Backlog (tüm istekler)
↓ Sprint Planning
Sprint Backlog (bu sprint'teki işler)
↓ Sprint (2-4 hafta)
Done (tamamlanan işler)
↓ Sprint Review + Retro
Sonraki Sprint
Kanban
Scrum'dan farklı olarak sabit sprint süresi yoktur. İş süreci sürekli akış halindedir:
Todo → In Progress → Review → Done
(5) (3) (2) (∞)
WIP Limit
Scrum vs Kanban
| Özellik | Scrum | Kanban | |---------|-------|--------| | İterasyon | Sabit sprint (2-4 hafta) | Sürekli akış | | Roller | PO, SM, Dev Team | Belirli roller yok | | Planlama | Sprint planlaması | Gerektiğinde | | Değişiklik | Sprint içinde değişmez | Her an eklenebilir | | Metrik | Velocity | Lead time, cycle time | | Uygunluk | Ürün geliştirme | Operasyon, destek |
User Story Yazma
Bir [kullanıcı rolü] olarak,
[hedef/ihtiyaç] istiyorum,
böylece [fayda/değer] elde edeyim.
Kabul kriterleri:
- [ ] Giriş formu e-posta ve şifre alanı içermeli
- [ ] Hatalı giriş denemesinde anlamlı hata mesajı gösterilmeli
- [ ] 3 başarısız denemeden sonra hesap kilitlenmeli
Estimation (Tahminleme)
Story Points
T-shirt sizes veya Fibonacci dizisi ile tahmini karmaşıklık:
1 — Çok basit (CSS düzeltmesi)
2 — Basit (tek fonksiyon)
3 — Orta (yeni component)
5 — Karmaşık (yeni sayfa + API)
8 — Çok karmaşık (yeni modül)
13 — Epik (parçalanmalı)
Sonuç
Agile bir araç değil, bir düşünce biçimidir. Scrum veya Kanban sadece framework'tür — önemli olan ekibin sürekli iyileşme ve değer üretme kültürünü benimsemesidir.
Yazılım proje yönetimi ve kariyer gelişimi hakkında LabLudus platformunda daha fazla bilgi edinin.