1. SCRUM
İle Yazılım Projesi Yönetimi
ve Redmine
15 Ekim 2011
Özgür Web Günleri
Yeditepe Üniversitesi
http://www.ozgurwebgunleri.org.tr/2011/
Gokhan Boranalp
gokhan@zetaops.com
2. Yol yordam
● Yazılım projesinde hayat döngüsü
● SCRUM, XP ve CMMI
● Redmine proje yönetim yazılımı
● Püf noktaları
● Sorular
3. Yazılım projesinde hayat döngüsü
● Zaman çok az
● Bütçe daima kısıtlı
● Kaynaklar belirsiz
● Belgeleme zayıf
● Bilgi akışı sorunlu
● Programcılar kofti
● Yöneticiler cahil
● Patron hodbin
● Hakem daima bıyıklı
● Zaman iyi planlanmış
● Bütçe ihtiyaca göre
● Kaynaklar belirli
● Belgeleme güçlü
● Bilgi akışı doğrudan
● Programcılar canavar
● Yöneticiler hedefe
odaklı
● Patron akil
● Zemin futbola müsait
4. Yazılım projesinde hayat döngüsü
● En başta, sorunları doğru tespit etmek
● Hatanın, daima var olacağını düşünerek, hatayı azaltacak
sistemler kurmak
● Proje büyüklüğünü doğru anlamak
● Zayıf ve güçlü noktaları doğru tespit etmek
● Daima iletişim kanallarını açık tutmak
ÖNCE KENDİNİ EĞİT
5. SCRUM
● Geliştirme sürecini hızlandırmak
● Bireysel ve kurumsal amaçları yan yana getirmek
● Performansa dayalı bir kültür yaratmak
● Hisse sahiplerinin değer üretmesine destek olmak
● Her seviyede, kalıcı ve istikrarlı bir iletişim performansına
erişmek
● Bireysel gelişimi ve yaşam kalitesini ilerletmek
6. SCRUM
● Babaları Takeuchi ve Nonaka, 1986
● Jeff Sutherland, Ken Schwaber, 1993, Easel Corp.
● Agile Manifesto, 2001
● CMMI, Capability Maturity Model Integration
● Lean Development
● Kanban
10. SCRUM
● Roller
– Product Owner, ScrumMaster, Team.
● Toplantılar
– Sprint Planlama, Sprint Gözden Geçirme
ve Günlük Scrum Toplantıları
● Yapılar
– Product Backlog, Sprint Backlog ve
Burndown Chart
11. SCRUM
● Ürün Sahibi - Product Owner
– Ürünün özelliklerini belirlemek,
– Ürünün çıkma tarihini belirlemek
– Ürünün karlılığından sorumlu olmak. ROI.
– Piyasa koşullarına göre özellikler arasında
sıralama yapmak.
– İhtiyaca göre, her 30 günde bir özellikleri ve
sıralamayı tekrar ayarlamak
– İşin sonucunu kabul ya da reddetmek
12. SCRUM
● SCRUM Master - Çilekeş
– Ekibin işlevsel ve üretici olduğuna emin
olmak
– Tüm rollerle yakın işbirliği yapmak
– Engelleri kaldırmak!
– Ekibi harici müdahalelerden korumak
– Sürecin takip edildiğine emin olmak.
Toplantılar zamanlamak v.b.
13. SCRUM
● Team - Yazılım Ekibi
– Yedi ve daha fazla üyesi vardır
– Sprint hedeflerini seçer ve işin sonuçlarını
tanımlar
– Proje yönergeleri dahilinde sprint hedefine
erişmek için gerekeni yapma hakkı vardır.
– Kendisini ve yapacağı işleri kendi kendine
organize eder
– Çalışma sonuçlarının demosunu Ürün
Sahibi'ne yapar.
14. SCRUM
● Sprint Planlama Toplantısı
– Müşteriyle yazılımcıları en başında yan
yana getirir
– Reel maliyetlerin tespitine olanak sağlar
– Müşterinin ne yapmak istediğini, hedeflerini
yazılım ekibi doğru anlamış olur
– Yapılacak işlerin sıralaması doğru yapılır
– Bu işlerin tamamı 'Product Backlog' a
yazılır.
15. SCRUM
● Sprint Planlama Toplantısı
– Ekip yapılacak işin zaman tahminini yapar
– Belirlenen sprint zamanı aşılamaz
– Backlog'daki toplam işler 2 gün ila 16
saatlik daha küçük işlere bölünür
– Bu toplantılar 4 saati geçemezler
– Ekip işin zamanında bitmeyeceğine karar
verirse, eksiltme veya sıralamayı tekrar
gözden geçirme talebinde bulunabilir
16. SCRUM
● Yan faydalar
– Başta sistem mimarı ve analistlere daha
çok iş düşer. Ekipteki junior programcılar,
bu süreçte nasıl planlama yapıldığını ve
sistem mimarisini öğrenme şansına sahip
olurlar
– Müşteri ile yazılım ekibi arasındaki bağlantı
kopmaz.
– Müşteri ne zaman, ne özellikte bir ürüne
sahip olacağını bilir.
17. SCRUM
● Sprint Gözden Geçirme Toplantısı
– En fazla 4 saat olabilir
– Ürün Sahibi ve ortaklar ilk yarısına katılır
– Backlog'daki işlerin hangilerinin yapıldığı
denetlenir.
– Sonraki sprint işleri sıralanır
– Zamanın yarısında, Scrum Master, ekip
üyeleriyle birlikte geriye dönük
değerlendirme (Sprint Retrospective)
yapar.
18. SCRUM
● Günlük Scrum Toplantılar - Daily Scrum Meeting
– Dün ne yaptım?
– Bugün ne yapacağım?
– Bana engel olan şeyler nelerdi?
Scrum Master;
●Biten, başlayan işleri takip eder. Buna
göre Burndown Chart'lar güncellenir
●Bağımlı işleri, engelleri tespit eder
●Daima ekibin kişisel sorunlarını dikkate alır
19. Redmine
● Redmine bir proje yönetim sistemidir.
● Redmine backlogs plugin SCRUM için geliştirilmiştir.
22. Püf Noktaları
● Ekip elemanları değişebilir. Yapıyı buna göre kurun.
● Daima en önce test ve continuous integration (CI) alt
yapısını kurmaya bakın. Buildbot, Hudson, Teamcity v.b.
● Ekip üyelerini seçmeye zaman ayırın. Test edilmemiş
coder'la 'asla' çalışmayın.
● Proje yönetiminin, aslında kriz yönetimi olduğunu
unutmayın. Sakin olmaya çalışın.
● Ürün yöneticisiyle açık ve net ilişki kurun. Sorunları
kendinize saklamayın.
● Redmine üzerinde, kullanmaya başlamadan mutlaka
pratik yapın.
● Kesinlikle her gün spor yapın!
24. Kaynakça
Ekitaplar
● The Scrum Papers: Nuts, Bolts, and Origins of an Agile Process, Jeff Sutherland, Ph.D. Ken
Schwaber,
● Lean Software Development: An Agile Toolkit, Mary Poppendieck, Tom Poppendieck
● Yöneticiler için Dogru Sorular CMMI, Orhan Kalaycı
Baglantılar
● http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration
● http://www.nitelik.net/
● http://www.extremeprogramming.org/rules.html
● http://agilemanifesto.org/
● http://www.redmine.org/
● http://www.redminebacklogs.net/