29
Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri Osman Karaahmetoğlu 25.09.2013

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

  • Upload
    lita

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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

Alınmasının Organizasyonel Etkileri

•Osman Karaahmetoğlu•25.09.2013

Page 2: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

•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.

Scrum

Page 3: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Çevik (Agile) Manifesto

Süreç ve Araçlarİnsan İlişkileri ve İletişim

Plana göre ilerleme

Değişikleri Karşılayabilme

www.agilemanifesto.org

Ayrıntılı DokümantasyonÇalışan Uygulama

SözleşmeMüşteri İletişimi

Page 4: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 5: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 6: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Ü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.

Page 7: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 8: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Scrum Süreci

Ürün Kataloğu

Sprint Kataloğu

Günlük Scrum

Toplantısı

Ürün Çıktısı24 Saat

2-3 Hafta

Page 9: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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 sonunda, yapılan çalışmalar ile ilgili değerlendirme

toplantısı yapılır.• 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.

Page 10: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Ürün Kataloğu

• Gereksinimler

• Gereksinimin içeriğini anlatan kısa bir kullanıcı hikâyesi (user story)

• Öncelik Bilgisi (Planlama açısından önemli)

Ürün Kataloğu

Page 11: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Örnek Ürün Kataloğu

Gereksinim Kullanıcı Hikayesi Öncelik Maliyet Tahmini

Hasta Kabul İşlemi Hasta için dosya oluşturulur. 1 3Visit Kaydı

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

Tetkik İsteği Hasta için muayene sonunda gerekli görülen tetkik istemleri yapılır. 2 3

... … 3 8

... … 4 8

Page 12: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 13: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Sprint Burndown Eğrisi

0

200

400

600

800

1.000

Saat

Page 14: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Sprint Kataloğu

İş AdımıKullanıcı Arayüzü KodlamaOrta Katman KodlamaOrta Katman TestiYardım Dosyası YazılmasıSınıf Yazılımı

Paz8

168

128

Salı4

1216

8

Çar Per

411

84

Cuma

8

8Hata Günlüğü Ekleme

81016

88

Page 15: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Saat

40302010

0 Paz Salı Çar Per Cuma

İş AdımıKullanıcı Arayüzünün KodlanmasıOrta Katmanın Kodlanması

Orta Katmanın Testi

Yardım Dosyalarının Yazılması

Paz8

16

8

12

Salı Çar Per Cuma4

12

16

7

11

8

10

16 8

50

Page 16: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 17: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 18: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 19: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Scrum Üstü Scrum (Scrum Of Scrums)

Page 20: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 21: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 22: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 23: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 24: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

İ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.

Page 25: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

Ü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.

Page 26: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 27: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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çerisindeki diğer scrum takımlarında yapılan

işlerden ve çalışma biçimlerimden haberdar olmasını sağlamak, • kurum içi iletişimi artırmak ve • 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.

Page 28: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.

Page 29: Scrum Yazılım Geliştirme Yönteminin Uygulamaya Alınmasının Organizasyonel Etkileri

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.