scrum ve redmine ile yazılım projesi yönetimi
DESCRIPTION
Özgür Web Günleri 2011, Scrum ve Redmine ile yazılım projesi yönetimiTRANSCRIPT
SCRUM İle Yazılım Projesi Yönetimi
ve Redmine
15 Ekim 2011 Özgür Web GünleriYeditepe Üniversitesihttp://www.ozgurwebgunleri.org.tr/2011/Gokhan [email protected]
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
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
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
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
SCRUM
● Babaları Takeuchi ve Nonaka, 1986
● Jeff Sutherland, Ken Schwaber, 1993, Easel Corp.
● Agile Manifesto, 2001
● CMMI, Capability Maturity Model Integration
● Lean Development
● Kanban
XP
CMMI
Genel Bakış
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
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
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.
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.
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.
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
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.
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.
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
Redmine
● Redmine bir proje yönetim sistemidir.
● Redmine backlogs plugin SCRUM için geliştirilmiştir.
Redmine
Sprint Taskboard
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!
Sorular
KaynakçaEkitaplar
● 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/
● İletişim