Scrum ve Redmine ile yazılım projesi yönetimi
-
Upload
gokhan-boranalp -
Category
Education
-
view
3.527 -
download
0
description
Transcript of Scrum ve Redmine ile yazılım projesi yönetimi
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