Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının

Report
Scrum Yazılım Geliştirme Yönteminin
Uygulamaya Alınmasının
Organizasyonel Etkileri
• Osman Karaahmetoğlu
• 25.09.2013
Scrum
• Scrum çevik bir yazılım geliştirme yaklaşımıdır.
• Yazılım süreci doğrudan başlar, ihtiyaç yazılım
sürecinde ayrıntılandırılır.
• Yazılımcı ile müşteri arasında yoğun bir iletişim vardır.
• Uygulama geliştirme, ideal olarak iki haftalık sprint’
lerde gerçeklenir.
• Scrum bir takım çalışmasıdır, takım üyelerinin bireysel
başarılarından ziyade takımın başarısı önemlidir.
• Scrum takımları kendi kendine organize olur ve her
sprint sonunda bir ürün geliştirmeyi amaçlar.
• Scrum yaklaşımında, ürün müşteri isteklerine göre
çevik bir şekilde değiştirilebilir.
Çevik (Agile) Manifesto
İnsan İlişkileri ve
İletişim
Süreç ve Araçlar
Çalışan Uygulama
Ayrıntılı
Dokümantasyon
Müşteri İletişimi
Sözleşme
Değişikleri
Karşılayabilme
Plana göre ilerleme
www.agilemanifesto.org
Sprint
• Scrum yaklaşımında yazılım sprint olarak
isimlendirilen döngüler süresince gerçekleştirilir.
• Bu döngülerin süresi çıkarılacak ürünün
büyüklüğüne bağlı olarak değişir.
• Edinilen tecrübeler 2 veya 3 haftanın ideal olacağını
göstermektedir.
Takım
• Scrum yaklaşımında az sayıda üyeden oluşan takımlar, çok
sayıda üyeden oluşan takımlara göre daha verimlidir.
• Yapılan çalışmalar ideal takım üyesi sayısının en az 5, en fazla
9 olması gerektiğini göstermektedir.
• 10-12 kişiden fazla sayıda üyesi olan takımlarda bağlılık, güven
ve takım kültürünü oluşturmak zor ve uzun zaman almaktadır.
• Scrum yaklaşımda üründen sorumlu olan ürün yöneticisi, takımı
yönlendiren scrum yöneticisi ve takım üyeleri olmak üzere üç
farklı yetenek seviyesinde takım üyesi gerekir.
Ürün Yöneticisi
• Müşteri ile ilişkileri sağlamakla görevlidir.
•
Üretilecek ürünün gereksinimlerini ve iş kurallarını takıma
sağlamakla yükümlüdür.
•
İş önceliklerini belirler.
•
Ürün kabulünü yapar ve yaygınlaştırma tarihlerini belirler.
• Yazılım süreci esnasında yazılım geliştiricinin gereksinimler
ve iş kuralları ile ilgili takıldığı noktalarda sorunları
çözebilecek düzeyde bilgiye, yetersiz kaldığı noktalarda ise
müşteri tarafından gerekli bilgilerin edinilmesini sağlayacak
koordinasyonu yapabilecek iletişim becerilerine sahip olması
gerekir.
Scrum Yöneticisi
• Takımın lideridir.
• Takımın sözcüsüdür; müşteri, ürün yöneticisi ve üst
yönetim ile iletişimi sağlar.
• Ürün geliştirme süreçlerinde, takımın ilerlemesini
engelleyen sorunların çözümünü sağlar.
• Takım üyesi olarak, yazılım geliştirme süreçlerinde de
görev alır.
Scrum Süreci
Günlük
Scrum
Toplantısı
Ürün
Kataloğu
Sprint
Kataloğu
24 Saat
2-3 Hafta
Ürün
Çıktısı
Scrum Uygulama Geliştirme Süreci
•
Ürün yöneticisi müşteri taleplerine göre ürün kataloglarını
oluşturur.
•
Takım sprint toplantısında ürün kataloğunda belirtilen önceliklere
göre iş planlarını yapar ve sprint kataloğu oluşur.
•
•
Takım üretime başlar.
•
Sprint retrospective toplantısında, takım sprint’teki iyi ve kötü
yönlerini değerlendirir ve ilerisi için dersler çıkarır.
•
Sprint kapatılır.
Sprint sonunda, yapılan çalışmalar ile ilgili değerlendirme
toplantısı yapılır.
Ürün Kataloğu
• Gereksinimler
Ürün Kataloğu
•
Gereksinimin içeriğini anlatan kısa
bir kullanıcı hikâyesi (user story)
•
Öncelik Bilgisi (Planlama
açısından önemli)
Örnek Ürün Kataloğu
Gereksinim
Kullanıcı Hikayesi
Öncelik
Maliyet
Tahmini
Hasta Kabul İşlemi
Hasta için dosya oluşturulur.
1
3
Hastanın dosya bilgilerine ulaşılır ve hastaneye gelişiyle
ilgili kayıt oluşturulur. 15 gün süre ile hastanın işlemleri
bu numara ile takip edilir.
1
5
Hasta için muayene sonunda gerekli görülen tetkik
istemleri yapılır.
2
3
...
…
3
8
...
…
4
8
Visit Kaydı
Tetkik İsteği
Sprint Planlama Toplantısı
•
Ürün yöneticisi takımdan beklenen gereksinimleri içeren ürün
kataloğu sunumunu yapar.
•
Takım iş planlarını yapar.
•
•
•
Takım gereksinimlerin iş adımlarını belirler.
İş adımlarının sürelerini oylama yoluyla belirler (Planning Poker).
Kararlar oybirliği ile alınır.
•
Takım öncelik ve kapasite parametrelerine göre sprint’te yapacağı
işleri belirler (Sprint kataloğu).
•
Takımın sprint’te yapacağı işlere göre burndown eğrisi oluşur.
!!! Burndown eğrisi başarım ölçümü açısından önemlidir.
Sprint Burndown Eğrisi
1.000
Saat
800
600
400
200
0
Sprint Kataloğu
İş Adımı
Kullanıcı Arayüzü Kodlama
Orta Katman Kodlama
Orta Katman Testi
Yardım Dosyası Yazılması
Sınıf Yazılımı
Hata Günlüğü Ekleme
Paz Salı Çar Per Cuma
8
4
8
16
12
10
4
8
16
16
11
8
8
8
8
8
8
4
12
8
İş Adımı
Paz Salı Çar
Kullanıcı Arayüzünün Kodlanması
Orta Katmanın Kodlanması
Orta Katmanın Testi
Yardım Dosyalarının Yazılması
Per Cuma
8
4
8
16
12
10
7
8
16
16
11
12
50
Saat
40
30
20
10
0
Paz
Salı
Çar
Per
Cuma
8
Günlük Scrum Toplantısı
•
Takım
•
•
•
•
Scrum yöneticisi önderliğinde,
Her sabah,
Ayaküstü,
Kısa süreli
bir değerlendirme toplantısı yapar.
•
Tüm takım üyeleri
•
•
•
Dün ne yaptınız?
Bugün ne yapacaksınız?
Bir sorun var mı yok mu?
sorularını cevaplar.
•
Takımın ilerlemesini engelleyen sorunlar için
aksaklık (impediment) tanımı yapılır.
Sprint Değerlendirme
• Takımın sprint’te yaptığı işlerin
sunumu ve değerlendirmesi
yapılır.
• Tüm takım katılmalıdır, takım
üyesi olmayanlarda katılabilir.
Sprint Retrospective
• 15-30 dakikalık kısa bir toplantıdır.
• Takım kendi özeleştirisini tarafsız olarak yapar.
• Sprint’teki iyi yönler pekiştirmek üzere vurgulanır.
• Hataların nedenleri ve çözümleri üzerine derin analizler
yapılır.
• Takım hatalarından ders alır.
• Takım elinde olmayan nedenlerden dolayı oluşan
aksaklıkların bildirimini yapar.
Scrum Üstü Scrum
(Scrum Of Scrums)
Takım Bazında Başarım Ölçümü
•
Scrum yaklaşımında amaç, takımın ürettiği toplam fayda
olduğu için başarım ölçümü de takım bazında yapılmalıdır.
•
Sprint üretim hedeflerine ulaşılması ve sprint süresince
takımın üretim faaliyetlerini geliştirmede izledikleri
yöntemlerin etkinliği,
• takım üyelerinin birbirleriyle iletişimi,
• minimum iş tekrarı,
• takım çalışması sonucu oluşan sinerji ile üretimin
katlanması,
•
kendine güvenen ve kaliteli üretim yapan takım ortamının
oluşturulması açısından,
•
takım bazında başarım ölçülmelidir.
Başarı Kriteri
• Müşteri açısından;
•
Sprint, vaat edilen ürün, belirlenen kalite kriterlerinde
tamamlanmışsa başarılıdır.
• Organizasyon açısından işin içine farklı parametreler
dahil olmaktadır.
•
Takım sprint hedefine ulaşmış olabilir fakat sprint’te
hedeflenen üretim takımın kapasitesinin altında olabilir
veya
•
üretim maliyeti kabul edilebilir sınırların üzerinde olmuş
olabilir.
Başarı Faktörleri
• Sprint hızı, takımın sprint dahilinde bir günde ürettiği toplam adam/saat
•
•
işi göstermektedir.
Sprint hızındaki sapmalar takım için bir başarı faktörü olarak seçilebilir.
Sprint süresince yapılan üretim sonucunda yapılan üretimin müşteri
taleplerini karşılama oranı
•
Müşterinin ürün üzerindeki yeni talepleri ve bu taleplerin alacağı
adam/saat süreler temel alınarak hesaplanabilir.
• Ürünün kalitesi
•
Üretimin kullanıcı kabul süreçlerinde ve gerçek ortama alınması sonucunda
ürünle ilgili müşteri dönüşlerinin sayısı ve önem derecesine göre
hesaplanabilir.
• Takımın şirket karlılığına etkisi
•
Takımın sprint süreçlerindeki üretim faaliyetlerinin tamamı etkin olabilir
fakat üretilen ürünün şirket gelirlerine etkisi düşük olabilir.
Takımların Belirlenmesi
• Scrum takım çalışmasını temel aldığına göre scrum
yaklaşımını kullanan organizasyonların yapısı da takım
kültürüne uygun olmalıdır.
• Takım üyeleri yapılacak iş konusunda birbirine yakın
düzeyde bilgi ve beceriye sahip olmalıdır.
• Organizasyon bünyesindeki takımlar yerine getirilmesi
gereken işlere göre kurulmalıdır.
• Takım üyelerinin bilgi ve beceri sahip olduğu işler takım
sorumluluğuna verilerek iş bölümlenmesinin yapılması
birbiriyle ilgisi olmayan işlerin aynı takım sorumluğunda
toplanması sonucunu doğurabilir.
İletişim ve Etkin Kapasite Kullanımı
• Takım temelli organizasyon yapısı ve aynı alandaki
uygulama geliştirme faaliyetlerinden sorumlu olunması,
etkin kapasite kullanımı, iletişim ve uzmanlaşmayı
sağlayacaktır.
• Müşteri, yönetim ve takımlar arasında yakın iletişim
yatay organizasyon ile kurulabilir.
• Takımın orta kademe yönetici yerine bölüm müdürüne
bağlı olması,hızlı kararlar alması ve uygulamasını, atak
bir iş geliştirme ve yönetim stratejisi ile iletişimin üst
düzeyde olmasını sağlayacaktır.
Ürün Yöneticisi
•
•
•
•
Scrum yaklaşımında müşteri ile takım arasında doğrudan bir
iletişimin olması başarı açısından kaçınılmazdır.
Organizasyon şemasında ürün yöneticisinin üretici
organizasyonda yer alması ve hatta takımın ürün
yöneticisine bağlı olması takım ile müşteri arasındaki
doğrudan iletişimi kesecektir.
Scrum yöneticisinin hareket alanı daralmakla kalmayacak,
ürün yöneticisinin müşteri üzerinde idari bir otoritesi olmadığı
için takımın üretim için gerek duyduğu iş kurallarını elde
edebilecek müşteri koordinasyonunda sıkıntılar oluşacaktır.
Buna ek olarak scrum yöneticisi ve ürün yöneticisi görev
tanımlarının net olarak yapılmaması iki rolün birbirleriyle
çatışmasına ve takımın verimliliğinin düşmesine neden
olacaktır.
Proje Yönetim Ofisi
•
•
•
•
•
•
Çevik bir yaklaşım olan scrum yönteminde proje
yöneticilerinin yerini çevik proje yöneticileri (agile project
manager) alır.
Birden fazla scrum grubunun faaliyetlerini kapsayan
projelerin scrum üstü yapılarla koordine edilmesi gereklidir.
Bu tip projeler için proje yönetim ofisleri faaliyetlerini
sürdürebilirler.
Scrum yaklaşımda sprint planları dışında belirsizlik vardır.
Sprintler kısa sürelidir ve proje birçok sprintten oluşur.
Belirsizlik nedeniyle portföy ve program yönetimi teknikleri
uygulanamaktadır.
Kaynaklara atanan iş maliyetleri yerine kalan iş maliyeti
üzerinden takım bazlı yönetim yapılabilir fakat kalan iş
maliyetleri de müşteri taleplerine göre değişkendir.
Rotasyon
•
Takım oluşturmak, takım üyelerinin ortak bir hedefe
yönelimini sağlamak, emek isteyen ve sabır gerektiren bir
süreçtir.
•
Takım üyelerini
•
•
içine düştüğü ataletten kurtarmak,
•
•
kurum içi iletişimi artırmak ve
kurum içerisindeki diğer scrum takımlarında yapılan işlerden
ve çalışma biçimlerimden haberdar olmasını sağlamak,
scrum üstü bir takım oluşturmak amacıyla
takımlar arası rotasyon uygulanabilir.
•
Bu rotasyon gerektiğinde scrum yöneticileri için de
yapılabilir.
Scrum Yöneticisi
• Scrum yöneticisi liderlik özelliği taşıyan takım üyelerinden
seçilmelidir.
• Takım üyelerinin bilgi birikimi, beceri ve liderlik vasıflarına
saygı duyduğu takım üyelerinin scrum yöneticisi olması
takım içi çatışmaları en aza indirgeyecektir.
• Scrum yöneticiliği sprint’te yapılan işin niteliğine göre
rotasyona tabi tutulabilir.
• Sprint toplantısı sürecinde takım üyeleri oylayarak scrum
yöneticilerini seçebilirler.
• Bu durum takımın motivasyonu artırmakla birlikte kariyer
açısından takım üyelerinin farkındalığını artırır.
Sonuç
• Scrum yönetimindeki bu kazanımları elde etmek için
şirketlerin uygulama geliştirme birimleri,
•
•
•
scrum yaklaşımına uygun olarak takımlarını belirlemeli,
takım ve takımlar arası işbirliği, iletişim ve sinerjiyi üst
düzeyde tutacak şekilde organize olmalı,
şirket amaçlarını bireysel amaçlarından önde tutarak,
ortak bir hedefe koşullanan takım kültürünün şirket
geneline yayılması ve çalışanlarca benimsenmesi
sağlanmalıdır
• Oluşabilecek sorunları önceden sezinleyen ve
engellemek için gerekli önlemleri alan şeffaf bir yönetim
anlayışının şirket genelinde seçilmesi gerekir.

similar documents