Scrum Uygulamalarında İşlevsel Büyüklük Tabanlı - CEUR

Transkript

Scrum Uygulamalarında İşlevsel Büyüklük Tabanlı - CEUR
Scrum UygulamalarÕnda øúlevsel Büyüklük TabanlÕ
øúgücü Kestirimi ile Hikaye PuanÕ TabanlÕ øúgücü
Kestiriminin KarúÕlaútÕrÕlmasÕ
Erdir Ungan1, Numan Çizmeli2, Onur Demirörs2
1 Bilgi
Grubu DanÕúmanlÕk Ltd. Ankara, Türkiye
[email protected]
2 Orta Do÷u Teknik Üniversitesi, Enformatik Enstitüsü, Ankara, Türkiye
[email protected], [email protected]
Öz. Bu çalÕúmada, Scrum uygulamalarÕnda iúgücü kestirimi
için kullanÕlan iki yöntem, kestirim sonuçlarÕnÕn
baúarÕsÕ
açÕsÕndan
karúÕlaútÕrÕlmÕútÕr.
Scrum
yönteminin kendi iúgücü kestirim yaklaúÕmÕ olan Hikaye
PuanÕ ile COSMIC iúlevsel büyüklük ölçümü kullanÕlarak
oluúturulan kestirim yöntemleri, bir vaka çalÕúmasÕ ile
karúÕlaútÕrÕlmÕútÕr.
ÇalÕúmada
farklÕ
regresyon
yöntemleri ve yapay sinir a÷Õ yöntemi kullanÕlmÕú, her
iki girdi için de bu yöntemlerle kestirim modelleri
oluúturulmuú ve kestirim çalÕúmalarÕnda yaygÕn olarak
kullanÕlan
baúarÕ
kriterleri
üzerinden
de÷erlendirilmiúlerdir.
De÷erlendirme
sonucunda,
COSMIC ölçümü kullanan kestirim modellerinin, Hikaye
PuanÕna kÕyasla daha baúarÕlÕ kestirim sonuçlarÕ
verebilece÷i tespit edilmiútir.
Anahtar Kelimeler: COSMIC, øúlevsel Büyüklük Ölçümü, SCRUM, øúgücü
Kestirimi
1
Giriú
YazÕlÕm projelerinde iúgücü kestirimi, proje planlama etkinliklerinin en önemli basamaklarÕndan birini oluúturur. Kestirimler, proje takvimi, bütçe planlama, maliyet de÷erlendirmesi, risk analizi, kaynak planlamasÕ ve kaynak yönetimi etkinliklerine girdi
olarak kullanÕlmaktadÕr. Bu nedenle, baúarÕlÕ proje yönetimi için, baúarÕlÕ kestirim yapabilmek büyük önem taúÕmaktadÕr.
Birçok çalÕúmada, baúarÕsÕz yazÕlÕm projelerinin ço÷unun, hatalÕ kestirimler sonucu
baúarÕsÕz oldu÷u tespit edilmiútir.
145
YakÕn geçmiúte, yazÕlÕm projeleri için birçok iúgücü kestirim yöntemi geliútirilmiútir. Bu yöntemlerin ço÷u, birçok faaliyet alanÕnÕ kapsayacak, genel geçer yöntemlerdir.
Bu genel geçer yöntemlerin dÕúÕnda, yazÕlÕm geliútiren kurumlar, kendi verilerine ve
etkinlik alanlarÕna dayanan, özgün kestirim yöntemleri de geliútirmiútir.
YazÕlÕm projelerinde iúgücü kestirim yöntemleri, genel olarak üç ana grupta de÷erlendirilebilir.
 Uzman Görüúü: Bu yöntemler belli bir uygulama alanÕnda yazÕlÕm geliútirme konusunda deneyim sahibi uzmanlarÕn, geçmiú deneyimlerine dayanarak kestirim yapmalarÕna dayanan yöntemlerdir.
 KurallÕ (formel) Kestirim Yöntemleri: Bu yöntemler, nicel verilere ve bu verileri
kullanan matematiksel modellere ve formüllere dayanan yöntemlerdir.
 Bileúik Kestirim Yöntemleri: Bu yöntemler, yukarÕda bahsedilen iki türün yaklaúÕmlarÕnÕ birleútiren yöntemlerdir. Öznel de÷erlendirmeler ve matematiksel modellerin
beraber kullanÕmÕnÕ içerir.
KurallÕ kestirim yönetmelerinde farklÕ istatiksel yöntemler kullanÕlabilir. En yaygÕn
kullanÕlan yöntemler, çoklu regresyon analizi, sÕnÕflandÕrma ve karar a÷acÕ, yapay sinir
a÷larÕ, Bayes istatisti÷i, genetik programlama, do÷rusal programlama ve bulanÕk mantÕk modelleri olarak özetlenebilir.
Bu yöntemler, gerekli iúgücünü hesaplarken, geliútirilecek yazÕlÕmÕn büyüklü÷ünü
ya tek ya da ana girdi olarak de÷erlendirir. Görece daha eski yöntemler, büyüklük olarak, kod satÕr sayÕsÕnÕ (SLOC) kullanÕr. Ancak, yeni yöntemlerde Fonksiyon Puan Analizi (FPA), IFPUG ve COSMIC gibi iúlevsel büyüklük yöntemleri tercih edilmeye baúlanmÕútÕr.
øúlevsel büyüklük ölçüm yöntemleri, kod satÕr sayÕsÕ tabanlÕ büyüklük ölçümlerine
göre, proje yaúam döngüsünün ilk aúamalarÕnda kullanÕlabilmeleri, geliútirme teknolojilerinden ve programlama dilinden ba÷ÕmsÕz olmalarÕ gibi üstünlüklere sahiptir.
1.1
COSMIC øúlevsel Büyüklük Ölçüm Yöntemi
Bu çalÕúmada, COSMIC iúlevsel büyüklük ölçüm yöntemi kullanÕlmÕútÕr. COSMIC
son yÕllarda gerek akademide gerekse sektörde giderek daha yaygÕn olarak kullanÕlan
ve en çok kabul gören iúlevsel büyüklük ölçüm yöntemlerinden biridir. Bu yöntem; bir
ölçüm stratejisi, eúleútirme ve ölçüm aúamalarÕnÕ içeren bir standart ölçüm modeli tanÕmlar.
YazÕlÕm, Fonksiyonel Süreç (Functional Process) adÕ verilen iúlevsellik seviyelerine
ayrÕlÕr ve bu seviyede ölçülür. Bu tanÕm, iúlevsellik için standartlaútÕrÕlmÕú bir soyutlama seviyesine iúaret eder. Her bir Fonksiyonel Süreç, Veri Hareketleri (Data Movement) ve Veri øúlemeler (Data Manipulation) içerir. COSMIC yönteminde, Veri Hareketleri; Giriú (Entry – E), ÇÕkÕú (eXit X), Okuma (Read – R) ve Yazma (Write – W)
olmak üzere dört tiptir. Bu veri hareketleri, yöntemin temel iúlevsel bileúenlerini oluútururlar (Base Functional Process – BFC).
COSMIC yöntemi, iú uygulama yazÕlÕmlarÕnÕn da, gerçek zamanlÕ yazÕlÕmlarÕn da
büyüklü÷ünü ölçmek için kullanÕlabilir. Yöntem, aynÕ zamanda, bir ISO standardÕ ola-
146
rak kabul edilmiú, “ISO/IEC 19761: Software Engineering – COSMIC-FFP – A functional size measurement method” adÕyla yayÕnlanmÕútÕr. COSMIC hakkÕnda detaylÕ
bilgi için yöntem kÕlavuzundan yararlanÕlabilir [2]
1.2
Çevik yazÕlÕm geliútirme yöntemleri
Günümüzde, çevik yazÕlÕm geliútirme yöntemleri geliútiriciler arasÕnda giderek daha
çok destek bulmakta ve sektörde faaliyet gösteren kurumlar tarafÕndan tercih edilmektedir. Çevik yöntemler, genelde, yöntem tanÕmlarÕnda, direkt olarak uzman görüúüne
dayalÕ kestirimler tanÕmlamakta veya bu tip kestirimlerin kullanÕlmasÕnÕ tavsiye etmektedir.
SCRUM yöntemi, ülkemizde ve dünyada en yaygÕn olarak kullanÕlan çevik yöntemlerden biridir. Bu yöntem temelde, yinelemeli bir yaúam döngüsü tanÕmlamakta ve büyük iú kalemlerinin, küçük ve yönetilebilir iúlere bölünmesi ve önceliklendirilmesi ile
ilgili yöntemler içermektedir. SCRUM, uyarlanabilir, de÷iútirilebilir bir iúleyiú tarzÕ
önerir. Bunun için, yinelemeli bir yaúam döngüsü ile evrimsel geliútirme ve teslimat
prensiplerini öne çÕkarÕr. OlasÕ de÷iúikliklere hÕzlÕ tepki vermeyi öncelikli kabul eder.
SCRUM’da, iúgücü kestiriminin, Planlama Pokeri adÕ verilen bir yöntemle yapÕlmasÕ önerilir. Bu yöntem, Wideband Delphi yöntemini temel alan, oylamaya dayalÕ bir
kestirim yöntemidir. Her bir iú için gerekli iúgücü, (genellikle) Fibonacci sayÕlarÕ kullanÕlarak tahmin edilir. YazÕlÕm ekibinin üyeleri, her bir iú için, poker kurallarÕnÕ kullanarak kendi tahminlerini belirtir ve sonunda topluca bir karara varÕlÕr. Kestirim birimi
olarak Hikaye PuanÕ (Story Point) kullanÕlÕr. Bu birim, bir büyüklük ölçüm biriminden
çok, direkt olarak iúgücü miktarÕnÕ gösteren bir birimdir.
SCRUM yöntemi ve etkinlikleri hakkÕnda detaylÕ bilgi için www.scrum.org adresine
baúvurulabilir. SCRUM’Õn detaylarÕ bu bildirinin kapsamÕ dÕúÕndadÕr.
1.3
ÇalÕúma
Bu çalÕúmada, SCRUM yönteminde tanÕmlana kestirim yöntemi ve kestirim birimi
olan Hikaye PuanÕ yöntemi (Story Points) ile COSMIC iúlevsel büyüklük yöntemi kullanÕlarak oluúturulan kestirim modelleri ile gerçekleútirilen kestirimlerin baúarÕsÕ, bir
durum çalÕúmasÕ ile karúÕlaútÕrÕlmÕútÕr.
ÇalÕúma, Türkiye’de faaliyet gösteren ve SCRUM yöntemini uygulayan, büyük ölçekli bir yazÕlÕm firmasÕnda gerçekleútirilmiútir. ÇalÕúma kapsamÕnda 12 yazÕlÕm projesi incelenmiútir. Bu projelerin, COSMIC büyüklükleri ölçülmüú, alan uzmanlarÕ ile
gerçek proje geliútiricilerinden Hikaye PuanÕ de÷erlendirilmeleri alÕnmÕú ve kurum ölçüm veri tabanlarÕndan, gerçekleúen proje iúgücü verileri toplanmÕútÕr. Sonraki adÕmda
COSMIC büyüklük verileri üzerinden farklÕ istatiksel yöntemler kullanÕlarak farklÕ kestirim modelleri geliútirilmiútir. Daha sonra da bu modellerin kestirim baúarÕlarÕ ile alan
uzmanlarÕ ve geliútiricilerin yaptÕ÷Õ Hikaye PuanÕ de÷erlendirmelerinin do÷rulu÷u karúÕlaútÕrÕlmÕútÕr.
147
2
Literatürdeki ÇalÕúmalar
Literatürde yazÕlÕm iúgücü kestirim modelleri ile ilgili birçok çalÕúma bulunmaktadÕr.
Bu modellerin ço÷u, regresyon ve yapay sinir a÷Õ yöntemlerini temel alÕr. Bu bölümde
en çok kabul gören modellerin bazÕlarÕ özetlenmiútir.
Maxwell, Wassenhove ve Dutta, Avrupa Uzay AjansÕ’na (European Space Agency –
ESA) ait 108 proje üzerinde yaptÕklarÕ çalÕúmada [3] ESA için bir kestirim modeli geliútirmiúlerdir. Daha sonra, birden çok kuruma ait verilere dayanarak oluúturulacak bir
modelin, bir kurumun kestirim ihtiyaçlarÕ için kullanÕlÕp kullanÕlamayaca÷ÕnÕ araútÕrmÕúlardÕr. ÇalÕúmada, her bir proje için önemli olan üretkenlik faktörlerini tespit etmiúler ve modelleri geliútirirken bu faktörleri kullanmÕúlardÕr.
ÇalÕúma sonunda, en do÷ru kestirimleri üreten modelin yazÕlÕm büyüklü÷ünü temel
alan model oldu÷unu tespit etmiúlerdir. Bunun dÕúÕnda, ESA verilerine göre, üretkenli÷i
etkileyen ana faktörleri; uygulama kategorisi, programlama dili, talep edilen yazÕlÕm
güvenilirlik seviyesi, bellek alanÕ kÕsÕtlarÕ ve modern programlama pratiklerinin ve
araçlarÕnÕn kullanÕmÕ olarak belirlemiúlerdir.
Moløkken ve Jorgensen, yazÕlÕm iúgücü kestirim hatalarÕnÕn sebepleri üzerine bir
çalÕúma yapmÕútÕr [4]. ÇalÕúmada, kestirimden sorumlu çeúitli görevlerdeki çalÕúanlarla
görüúmüú, 68 projeye ait kestirim raporlarÕnÕ incelemiúlerdir. HatalarÕn sebeplerini bulmak amacÕyla, 68 projenin özellikleri ile kestirim hatalarÕ arasÕndaki iliúkiyi istatiksel
analizler kullanarak incelemiúlerdir. ÇalÕúma sonunda, kestirimlerdeki hatalarÕn büyük
oranda; kestirimi yapanlarÕn görevlerinden kaynaklanan bakÕú açÕlarÕndan, kurumlarÕn
veri toplama yöntemlerinden ve uyguladÕklarÕ analiz yöntemlerinden kaynaklandÕ÷Õ sonucuna varmÕúlardÕr.
Magne Jørgensen, Ulf Indahl ve Dag Sjøberg Sir Francis Galton tarafÕndan 1800lerin
sonunda gerçekleútirilen Ortalamaya Gerileme (Regression Toward the Mean – RTM)
adlÕ çalÕúmanÕn sonuçlarÕndan faydalanan bir çalÕúma gerçekleútirmiútir [5]. ÇalÕúmada
benzetim ile kestirim yaklaúÕmÕnÕ izlemiúlerdir. Benzetim için seçilen projeler çok yüksek veya çok düúük üretkenlik de÷erlerine sahipse, Ortalamaya Gerileme’nin bu de÷erleri ortalama de÷erlere çekmesi beklenir. ÇalÕúmada, Ortalama Gerileme yaklaúÕmÕnÕ
de÷iúik veri kümeleri üzerinde uygulayarak de÷erlendirmiúler ve bu yaklaúÕmÕn kestirimlerin baúarÕsÕnÕ arttÕrdÕ÷ÕnÕ tespit etmiúlerdir.
Oliveira, çalÕúmasÕnda kestirim modelleri için vektörel regresyon, radyal taban fonksiyonlu yapay sinir a÷larÕ ve do÷rusal regresyon yöntemlerini uygulamÕútÕr [6]. Modelleri geliútirirken NASA’ya ait yazÕlÕm proje verilerini kullanmÕútÕr. ÇalÕúmanÕn sonucunda, vektörel regresyon tabanlÕ modellerin, radyal taban fonksiyonlu yapay sinir a÷larÕna kÕyasla çok daha baúarÕlÕ oldu÷unu tespit etmiútir.
Jorgensen 2004’teki çalÕúmasÕnda [7], uzman görüúüne dayalÕ kestirimlerde, yukarÕdan aúa÷Õ ve aúa÷Õdan yukarÕ yaklaúÕmlarÕ karúÕlaútÕrmÕú, hangi yaklaúÕmÕn hangi durumda uygulanmasÕ gerekti÷ini araútÕrmÕútÕr. YukarÕdan aúa÷Õ yaklaúÕmda, proje için
gerekli toplam iúgücü, projenin tümüne dair özelliklere dayalÕ olarak hesaplanÕp, proje
etkinliklerine da÷ÕtÕlÕr. Aúa÷Õdan yukarÕ yaklaúÕmda ise, proje etkinlikleri ayrÕ ayrÕ de÷erlendirilir, her bir etkinlik için ayrÕ kestirim yapÕlÕp bunlar toplanarak toplam proje
iúgücü hesaplanÕr. Jorgensen, bu çalÕúmasÕnda, yukarÕdan aúa÷Õ yaklaúÕmlarÕn baúarÕlÕ
148
olabilmesi için, benzer projelerle ilgili deneyime ve verilere sahip olmanÕn gerekli oldu÷unu belirtmiútir. KurumlarÕn, daha önce gerçekleútirdikleri projelere benzemeyen,
yeni tip bir proje için kestirim yaparken, aúa÷Õdan yukarÕ kestirim yaklaúÕmÕ kullanmalarÕ gerekti÷ini belirtmiútir.
Seçkin TunalÕlar, çalÕúmasÕnda [8], kurumlarÕn kestirim etkinliklerini yönetmesi ve
yürütmesi için bir kestirim süreci tanÕmlamÕútÕr (EFES). TunalÕlar, kurum genelinde
ortak bir ölçüm yöntemi kullanÕlmasÕ, bu konuda ortak bir anlayÕú oluúturulmasÕnÕn
önemine dikkat çekmektedir. Geliútirdi÷i süreç, literatürde yer alan en iyi uygulamalar,
sorunlar, çözümler ve önceki çalÕúmalara ait deneysel verilere dayanmaktadÕr. ÇalÕúmada, ölçüm yöntemlerinde ve sonuçlarÕnda farklÕlÕklar olmasÕnÕn, kurum genelinde
kullanÕlacak bir kestirim yönteminin oluúturulmasÕnÕ engelleyece÷i belirtilmiútir. ÇalÕúmada, veri toplama, büyüklük ölçümü, veri analizi, kalibrasyon ve iúgücü kestirim
süreçleri; süreç tanÕmlarÕ, kontrol listeleri, úablonlar ve di÷er süreç varlÕklarÕ ile birlikte
tanÕmlanmÕútÕr. TunalÕlar ayrÕca, iúlevsel benzerlik ve temel iúlevsel bileúenlerin ayrÕ
ayrÕ girdi olarak kullanÕmÕ gibi konularÕ da de÷erlendirmiú, kestirim modelinde iúlevsel
benzerli÷in de de÷erlendirilmesinin, farklÕ geliútirme takÕmlarÕ arasÕnda de÷iúiklik gösterebilecek üretkenlik de÷erlerinin, daha tutarlÕ olarak hesaplanmasÕnÕ sa÷ladÕ÷ÕnÕ tespit
etmiútir.
Bu bölümde özetlenen çalÕúmalar daha ziyade, gereksinimlerin tanÕmlandÕ÷Õ, proje
sÕnÕrlarÕnÕn belirli oldu÷u, alÕúÕlagelmiú yazÕlÕm geliútirme yaúam döngülerini esas almakta, bu amaçla geliútirilmiú kestirim modellerini incelemektedir. Bu bildiriye konu
olan çalÕúmada ise, çevik/scrum yöntem izlenen projeler için COSMIC ölçüm tabanlÕ
bir kestirim geliútirilip geliútirilemeyece÷i incelenmiú ve olasÕ yöntemler çevik yazÕlÕm
geliútirmede kullanÕlan planlama pokeri ve hikaye puanÕ yöntemleriyle kestirim baúarÕsÕ
açÕsÕndan kÕyaslanmÕútÕr.
ÇalÕúmada, COSMIC büyüklük ölçümleri ile gerçek iúgücü verileri arasÕndaki iliúki
incelenmiútir. Daha sonra, bu büyüklük verilerini kullanan bazÕ matematiksel modeller
oluúturulmuú, bu modeller ile elde edilen kestirimler ile hikaye puanÕ kestirimleri isabetlilik açÕsÕndan karúÕlaútÕrÕlmÕútÕr.
3
Vaka ÇalÕúmasÕ
ÇalÕúma kapsamÕnda, Türkiye’nin en büyük devlet bankalarÕndan biri için yazÕlÕm geliútiren büyük ölçekli bir yazÕlÕm kurumunda bir vaka çalÕúmasÕ gerçekleútirilmiútir.
Kurumda 500 yazÕlÕm geliútirici bulunmaktadÕr ve kurum genelinde Scrum yöntemi
uygulanmaktadÕr.
Kurumda, kestirimler iki seviyeli bir planlama pokeri ile gerçekleútirilmektedir. ølk
aúamada, bütün geliútirme ekiplerinden birer temsilci ile oluúturulan bir üst kurulda
kestirimler yapÕlmakta, daha sonra geliútirme ekibi içinde ikinci bir kestirim toplantÕsÕ
gerçekleútirilmektedir. Bu uygulamanÕn, kestirimlerde kullanÕlan hikaye puanÕ büyüklüklerinin, ekipler arasÕnda, normalize edilmesini sa÷ladÕ÷Õ belirtilmiútir. Bu durum,
ekiplerin performansÕ de÷erlendirilirken de tutarlÕ bir ölçüt kullanÕlmasÕnÕ sa÷lamaktadÕr.
149
3.1
Vaka ÇalÕúmasÕnÕn TasarÕmÕ
Vaka çalÕúmasÕnÕn gerçekleútirilece÷i kurum seçilirken, Scrum yönetiminin tüm kurumda kullanÕyor olmasÕ, kurumda Scrum yöntemi ile en az 10 proje gerçekleútirilmiú
olmasÕ ve bu projeler için gerekli ölçüm ve verilerin ulaúÕlabilir olmasÕ úartÕ aranmÕútÕr.
Vaka çalÕúmasÕnda kullanÕlacak projelerde aúa÷Õdaki verilerin varlÕ÷Õ aranmÕútÕr:

















Projenin türü (Yeni geliútirme, bakÕm, iyileútirme, yeniden geliútirme)
Yeni bir iú alanÕ mÕ?
Yeni bir teknoloji kullanÕlmÕú mÕ?
YazÕlÕm ekibinin deneyim seviyesi.
Ekibin üye sayÕsÕ.
Yineleme (sprint) sayÕsÕ.
Gereksinim tanÕmlama için harcanan iúgücü.
YazÕlÕm geliútirme için harcanan iúgücü.
Test için harcanan iúgücü
Hikaye PuanÕ
øú listesindeki kullanÕcÕ hikayeleri (Backlog User Stories)
KullanÕcÕ hikayelerinde referans verilen belgeler
KullanÕlan araçlar (Geliútirme ortamÕ – IDE, Konfigürasyon yönetim aracÕ, yazÕlÕm
mühendisli÷i araçlarÕ – CASE)
Programlama dili
Veri tabanÕ yönetim sistemi
Mimari (ba÷ÕmsÕz uygulama, sunucu/østemci, P2P vb.)
Uygulama platformu (.Net, Java vb.)
Bu veriler, projelerin iúlevsel büyüklüklerini hesaplamak, aykÕrÕ projeleri belirlemek ve
iúgücü modellerini geliútirmek için gereklidir.
Seçilen projelerin büyüklükleri COSMIC yöntemi ile ölçülürken, iú listesinde yer alan
kullanÕcÕ hikayeleri ve bu hikayelerde bahsedilen, referans verilen di÷er belgelerin kullanÕlmasÕ kararlaútÕrÕlmÕútÕr. Bu ölçüm sonuçlarÕ oluúturulacak kestirim modellerine temel teúkil edecektir.
Modelleri oluúturmadan önce, aykÕrÕ projeleri bulmak ve do÷ru sonuçlarÕ kullanmak
amacÕyla, ölçüm sonuçlarÕ için bir do÷rulama aúamasÕ planlanmÕútÕr. Do÷rulama için
ilk olarak CUBIT adlÕ COSMIC ölçüm aracÕnÕn otomatik do÷rulama iúlevi kullanÕlmÕútÕr. Bu do÷rulamadan sonra, ölçüm sonuçlarÕ, bir COSMIC ölçüm uzmanÕnca de÷erlendirilmiú ve do÷rulanmÕútÕr.
Do÷rulamadan sonra, veriler, iúgücü/büyüklük oranÕ, kullanÕlan araçlar, geliútirme
ekibinin deneyim seviyeleri, kullanÕlan platformlar, yeni teknoloji kullanÕlmasÕ açÕlarÕndan de÷erlendirilmiú, aykÕrÕ projeler tespit edilmiútir. Bu aúamalardan sonra, model
oluúturmak için temiz bir veri kümesi elde edilece÷i varsayÕlmÕútÕr.
Analiz aúamasÕnda, büyüklük verilerinden yola çÕkarak iúgücünü kestirmek için,
farklÕ türlerde regresyon analizleri ile yapay sinir a÷Õ yöntemi kullanÕlmÕútÕr. COSMIC
iúlevsel büyüklük, hikaye puanÕ ve iúgücü verileri üzerinde basit regresyon, çoklu reg-
150
resyon, güçlü regresyon, polinom regresyon, üstel regresyon, logaritmik regresyon yöntemleri uygulanmÕútÕr. BunlarÕn yanÕnda COSMIC büyüklük verileri ile bir yapay sinir
a÷Õ kurulmuú ve bu model gerçek iúgücü verileri ile e÷itilmiútir.
Eldeki veriler için, yukarÕda sÕralanan yöntemler ile kestirim modelleri oluúturulduktan sonra, modellerin kestirim baúarÕlarÕ modellerin MMRE ve PRED de÷erleri hesaplanarak de÷erlendirilmiútir.
3.2
Veriler ve Analiz
12 yazÕlÕm projesi örneklem kümesi için aday olarak seçilmiútir. Tablo 1’de bu projeler
ve uygulama türleri gösterilmiútir. Verilerin gizlili÷ini korumak amacÕyla, projelere kÕsaltma isimler verilmiútir.
Kurum 2011’den beri Scrum yöntemi ile yazÕlÕm geliútirmektedir. Bu, çalÕúmanÕn
yapÕldÕ÷Õ tarihte üç senelik bir süreye karúÕlÕk gelmektedir. Kurumda çevik yöntemler
için özel olarak tasarlanmÕú bir ölçüm toplama aracÕ kullanÕlmaktadÕr. ÇalÕúmada kullanÕlan proje verilerinin ço÷u bu araç üzerinden edinilmiútir.
Tablo 1. Örneklem øçin Aday Projeler
#
Proje
Uygulama Türü
1
BN
EMC Documentum Uygulama Entegrasyonu
2
MEV
C# Windows UygulamasÕ
3
WP
C# ASP.NET Web Sitesi
4
KK
C# Windows UygulamasÕ
5
HCZ
C# Windows UygulamasÕ
6
IH
C# Windows UygulamasÕ
7
IP
C# ASP.NET Web Sitesi
8
IAM
C# Windows UygulamasÕ
9
MT
C# Windows UygulamasÕ
10
NF
C# ASP.NET Web Sitesi
11
HY
SharePoint Portal
12
SGP
SharePoint Portal
C#
Windows
Veri Toplama.
Tablo 1’deki tüm projeler için, aúa÷Õdaki veriler toplanmÕútÕr:
 Temel Proje Özellikleri: øsim, BaúlangÕç Tarihi, Bitiú Tarihi, Tür, KullanÕlan Araçlar.
 KullanÕlan Teknoloji: Programlama Dili, Veri TabanÕ Yönetim Sistemi, Mimari,
KullanÕlan Standartlar.
 øúgücü Verisi: Gereksinim Oluúturma øúgücü, Geliútirme øúgücü, Test øúgücü.
151




Hikaye PuanÕ.
Hikaye TanÕmlarÕ.
Görev Tipi.
Görevi Gerçekleútiren Ekip Üyesi
YukarÕda belirtildi÷i gibi, matematiksel modeller oluúturulmadan önce, ölçüm sonuçlarÕ, hatalarÕ en aza indirmek amacÕyla, do÷rulanmÕútÕr. Ölçümlerde, araútÕrma grubumuzca geliútirilen CUBIT adlÕ ölçüm aracÕ kullanÕlmÕútÕr. Do÷rulamanÕn ilk aúamasÕ
da, yine araútÕrma grubumuz bünyesinde geliútirilen ve CUBIT üzerinde çalÕúan deneysel bir otomatik do÷rulama eklentisi ile gerçekleútirilmiútir. Do÷rulanan COSMIC ölçüm sonuçlarÕ Tablo 2’de verilmiútir.
Tablo 2. COSMIC Ölçüm SonuçlarÕ
#
Proje
E
X
R
W
Toplam CFP
1
HCZ
45
60
47
25
177
2
MEV
47
81
57
31
216
3
IP
34
34
18
16
102
4
IH
24
34
25
9
92
5
IAM
39
47
43
20
149
6
KK
40
44
29
26
139
7
WP
49
53
38
25
165
8
MT
47
68
52
22
189
9
NF
31
30
17
17
95
10
BN
56
47
32
34
169
11
SGP
108
95
42
78
323
12
HY
110
129
57
106
402
Büyüklük ölçümünden sonra, üretkenlik de÷erlerini hesaplamak amacÕyla, COSMIC
büyüklük verileri ile toplam iúgücü verileri karúÕlaútÕrÕlmÕútÕr. Proje ekiplerinin yapÕsÕ
ve deneyimleri birbirine yakÕn oldu÷undan, aykÕrÕ projeleri belirlemek için bu üretkenlik verileri temel alÕnmÕútÕr.
Tablo 3. Projelerin Üretkenlik De÷erleri
Proje
Büyüklük
(CFP)
Toplam øúgücü
Üretkenlik
Ortalamadan Sapma
1
HCZ
177
364
0,4863
-0,1903
2
MEV
216
519
0,4162
-0,2604
3
IP
102
117
0,8718
0,1952
4
IH
92
196
0,4694
-0,2072
5
IAM
149
332
0,4488
-0,2278
6
KK
139
286
0,4860
-0,1906
#
152
7
WP
165
188
0,8777
0,2011
8
MT
189
373
0,5067
-0,1699
9
NF
95
189
0,5026
-0,1739
10
BN
169
542
0,3118
-0,3648
11
SGP
323
218
1,4817
0,8051
12
HY
402
319
1,2602
0,5836
Ortalama
0,6766
Projelerin üretkenlik de÷erleri Tablo 3’te verilmiútir. Tabloda, SGP ve HY isimli projeler için üretkenlik de÷erlerinin di÷er projelere göre çok daha yüksek oldu÷u görülebilir. Bu projeler, Microsoft SharePoint ile geliútirilmiú projelerdir. Bu çerçeve, az bir
kodlama ve test iúgücü ile yüksek üretkenlik sa÷layan bir yapÕ oldu÷undan bu beklenen
bir sonuçtur. BN isimli proje de di÷erlerinden farklÕ bir teknoloji ile geliútirildi÷i için,
bu üç proje aykÕrÕ olarak kabul edilmiú ve örneklemden çÕkarÕlmÕútÕr.
Kestirim SonuçlarÕnÕn Analizi.
Veriler toplandÕktan sonra, büyüklük ve iúgücü arasÕndaki iliúkiyi kuracak matematiksel modelleri geliútirmek üzere ilk olarak, veriler konsolide edilmiútir. Daha sonra,
COSMIC büyüklük ve iúgücü arasÕnda iliúki kuran matematiksel modeller oluúturulmuútur. Analiz aúamasÕnda ise bu modellerin kestirimlerdeki isabetlili÷i de÷erlendirilmiú, hikaye puanlarÕ ile iúgücü arasÕndaki iliúki kuran modeller ile karúÕlaútÕrÕlmÕútÕr.
Basit ve çoklu do÷rusal regresyon yöntemleri uygulanÕrken, toplam proje iúgücünün
yanÕsÕra, yazÕlÕm yaúam döngüsünün farklÕ aúamalarÕna ait iúgücü verileri de de÷erlendirmeye alÕnmÕútÕr. Çoklu regresyon yöntemi için, COSMIC yönteminin temel iúlevsel
bileúenleri olan giriú (E), çÕkÕú (X), okuma (R) ve yazma (W) veri hareketleri ba÷ÕmsÕz
de÷iúkenler olarak kullanÕlmÕútÕr. Öte yandan, Hikaye PuanlarÕ tek bir de÷iúkenden
oluútu÷u ve birden çok bileúene ayrÕlamadÕ÷Õ için, Hikaye PuanlarÕ için çoklu regresyon
yöntemi kullanÕlamamÕútÕr. Bunlara ek olarak, logaritmik regresyon, üstel regresyon,
güçlü regresyon, ve polinom regresyon gibi e÷ri oturtma yöntemleri uygulanmÕútÕr.
Regresyon yöntemlerine ek olarak, 9 nörondan oluúan bir yapay sinir a÷Õ oluúturulmuútur. Bu modelin girdi parametreleri COSMIC temel iúlevsel bileúenleri, ba÷Õl de÷iúkeni ise toplam proje iúgücü olarak tanÕmlanmÕútÕr.
Toplamda, COSMIC büyüklük için 13, Hikaye PuanÕ için ise 8 iúgücü kestirim modeli oluúturulmuútur. Oluúturulan modellerin girdileri, ba÷Õl de÷iúkenleri ve kullanÕlan
analiz yöntemleri Tablo 4’te verilmiútir.
Tablo 4. øúgücü Kestirim Modellerinin YapÕsÕ
#
Analiz Yöntemi
Girdi Parametreleri
Ba÷Õl De÷iúken
1
Basit Regresyon
Toplam Büyüklük (CFP & SP)
Toplam øúgücü
2
Basit Regresyon
Toplam Büyüklük (CFP & SP)
Analiz øúgücü
153
3
Basit Regresyon
Toplam Büyüklük (CFP & SP)
Kodlama øúgücü
4
Basit Regresyon
Toplam Büyüklük (CFP & SP)
Test øúgücü
5
Çoklu Regresyon
#E, #R, #W, #X (CFP)
Toplam øúgücü
6
Çoklu Regresyon
#E, #R, #W, #X (CFP)
Analiz øúgücü
7
Çoklu Regresyon
#E, #R, #W, #X (CFP)
Kodlama øúgücü
8
Çoklu Regresyon
#E, #R, #W, #X (CFP)
Test øúgücü
9
Logaritmik
Toplam Büyüklük (CFP & SP)
Toplam øúgücü
10
Üstel
Toplam Büyüklük (CFP & SP)
Toplam øúgücü
11
Güçlü
Toplam Büyüklük (CFP & SP)
Toplam øúgücü
12
Polinom
Toplam Büyüklük (CFP & SP)
Toplam øúgücü
YSA
#x, #e, #r, #w (CFP)
(9 Nöron)
Toplam øúgücü
13
Modeller oluúturulduktan sonra, kestirim baúarÕlarÕ de÷erlendirilmiú ve karúÕlaútÕrÕlmÕútÕr. Bunun için, Ba÷Õl Hata (Magnitude of Relative Error – MRE), Ortalama Ba÷Õl Hata
(Mean Magnitude of Relative Error - MMRE) ve PRED (N) de÷erleri kullanÕlmÕútÕr.
MMRE ve PRED (N) bu yazÕlÕm kestirim modellerinin isabetlili÷ini de÷erlendirmek
için yaygÕn olarak kullanÕlan iki kriterdir. Bu de÷erlerin hesaplanmasÕnda kullanÕlan
formüller aúa÷Õda belirtilmiútir.
‫ ܧܴܯ‬ൌ
ȁ‫݈݊݁݅ݎ݅ݏ݁ܭ‬Gç݃òܿò െ ‫݈݁݇݁­ݎ݁ܩ‬ç݁݊Gç݃òܿòȁ
‡”­‡Ž‡ç‡Gç‰ò…ò
்
ȁ‫݈݊݁݅ݎ݅ݏ݁ܭ‬Gç݃òܿòሺ݅ሻ െ ‫݈݁݇݁­ݎ݁ܩ‬ç݁݊Gç݃òܿòሺ݅ሻȁ
ͳͲͲ
‫ ݔ‬෎
‫ ܧܴܯܯ‬ൌ
ܶ
‡”­‡Ž‡ç‡Gç‰ò…òሺ݅ሻ
௜ୀ଴
ܴܲ‫ܦܧ‬ሺܰሻ ൌ
ͳͲͲ
‫ ݔ‬൝ͳǡ
ܶ
‫ܧܴܯ‬ሺ݅ሻ ൏
Ͳ
ܰ
ͳͲͲ
Kestirimle ilgili çalÕúmalarda, PRED hesaplamalarÕnda, N de÷eri genellikle 30 alÕnmaktadÕr. Bir modelin isabetlili÷i, MMRE de÷eri 0’a, PRED (N) de÷eri ise 100’e yaklaútÕkça artar. Düúük MMRE de÷eri, modelin baúarÕlÕ oldu÷una iúaret eder ve 0,25’ten
düúük de÷erlere sahip modeller, uygulanabilir bir kestirim yöntemi olarak kabul edilir.
PRED ise, tahmin edilen de÷erlerin ne kadarÕnÕn gerçek de÷erlere belirtilen komúuluk dahilinde (N) oldu÷unu belirten bir de÷erdir. Bu çalÕúmada PRED (30) de÷eri
%70’in üzerinde olan modeller, kabul edilebilir modeller olarak de÷erlendirilmiútir.
154
Baúka bir deyiúle, tahmin edilen de÷erlerin %70’i, gerçek de÷erlerin %30luk komúulu÷unda ise model baúarÕlÕ kabul edilmiútir.
4
Bulgular
COSMIC büyüklük ölçümü ve Hikaye PuanÕ için MMRE ve PRED (30) de÷erleri Tablo
5’te verilmiútir.
Tablo 5. COSMIC ve Hikaye PuanÕ Temelli Modeller øçin De÷erlendirme SonuçlarÕ
PRED (30) (CFP)
PRED
(30)
(SP)
Yöntem
Parametreler
Ba÷Õl De÷iúken
1
Basit Regresyon
Toplam Büyüklük
Toplam øúgücü
22.48
77.78
20.15
77.78
2
Basit Regresyon
Toplam Büyüklük
Analiz øúgücü
70.95
44.44
61.76
66.67
3
Basit Regresyon
Toplam Büyüklük
Kodlama øúgücü
81.28
44.44
46.28
66.67
4
Basit Regresyon
Toplam Büyüklük
Test øúgücü
27.24
66.67
48.34
44.44
5
Çoklu Regresyon
#x, #e, #r, #w
Toplam øúgücü
6.29
100.00
N/A
N/A
6
Çoklu Regresyon
#x, #e, #r, #w
Analiz øúgücü
28.22
66.67
N/A
N/A
7
Çoklu Regresyon
#x, #e, #r, #w
Kodlama øúgücü
19.12
77.78
N/A
N/A
8
Çoklu Regresyon
#x, #e, #r, #w
Test øúgücü
9.25
100.00
N/A
N/A
9
Logaritmik
Toplam Büyüklük
Toplam øúgücü
23.14
77.78
20.68
88.89
10
Üstel
Toplam Büyüklük
Toplam øúgücü
21.52
77.78
20.94
66.67
11
Güçlü
Toplam Büyüklük
Toplam øúgücü
22.57
77.78
18.01
77.78
12
Polinom
Toplam Büyüklük
Toplam øúgücü
20.60
77.78
18.93
88.89
YSA
#x, #e, #r, #w
(9 nöron)
Toplam øúgücü
7.88
100.00
N/A
N/A
13
MMRE (CFP)
MMRE
(SP)
#
COSMIC büyüklük kullanÕlarak geliútirilen modeller arasÕnda, en iyi MMRE ve PRED
(30) de÷erleri, ba÷Õl de÷iúken olarak toplam iúgücünü alan, çoklu regresyon modelinde
görülmektedir. COSMIC yönteminin temel iúlevsel bileúenlerini girdi olarak alan bu
yöntemin, 6,29 MMRE ve 100 PRED de÷eri ile oldukça isabetli kestirimler üretti÷i ve
pratikte uygulanabilir oldu÷u görülmektedir.
Hikaye PuanÕ kullanÕlarak geliútirilen modeller arasÕnda ise en iyi sonuç, güçlü regresyon ve polinom regresyon yöntemlerinde elde edilmiútir. Güçlü regresyon temelli
model, 18,01 MMRE ve 77,89 PRED (30) de÷erlerine sahipken, polinom regresyon
temelli model 18,93 MMRE ve 88,89 PRED(30) de÷erlerine sahiptir.
COSMIC ve Hikaye PuanÕ kullanÕlarak geliútirilen modelleri, kestirim baúarÕ de÷erlerine göre karúÕlaútÕrdÕ÷ÕmÕzda, basit yöntemler kullanÕlarak oluúturulan modellerde,
Hikaye PuanÕ temelli modellerin COSMIC temelli olanlara kÕyasla biraz daha baúarÕlÕ
155
oldu÷u gözlemlenmektedir. Öte yandan, çoklu regresyon ve yapay sinir a÷larÕ kullanÕlarak oluúturulan modellerin çok daha iyi isabetlilik de÷erlerine sahip oldu÷u görülmektedir. Ancak, bu yöntemler girdilerin birden fazla bileúenden oluúmasÕnÕ gerektirdi÷inden, bu yöntemler sadece COSMIC ölçümleri için kullanÕlabilmiútir.
5
Sonuçlar
Bu çalÕúmada, Scrum yönteminde tanÕmlanan iúgücü kestirim yöntemi olan Hikaye PuanÕ ile COSMIC iúlevsel büyüklük ölçümü kullanÕlarak oluúturulmuú bazÕ iúgücü kestirim modelleri, kestirimlerdeki baúarÕlarÕna göre karúÕlaútÕrÕlmÕútÕr. Bu karúÕlaútÕrma,
büyük ölçekli bir yazÕlÕm firmasÕnda gerçekleútirilen bir vaka çalÕúmasÕ çerçevesinde
gerçekleútirilmiútir.
Tek bir girdi parametresine ba÷lÕ modellerin kestirim isabetlili÷inin genel olarak düúük oldu÷u gözlemlenmiútir. Bu tip yöntemlerde COSMIC ya da Hikaye PuanÕ kullanÕlmasÕ arasÕnda, kestirim baúarÕsÕ açÕsÕndan kayda de÷er bir fark görülmemiú, her iki
büyüklük için de düúük veya sÕnÕrda baúarÕ de÷erleri elde edilmiútir.
Bunun yanÕnda, yazÕlÕmÕn büyüklü÷ünü birden çok boyutta ele alan modellerin, çok
daha yüksek baúarÕ de÷erlerine sahip oldu÷u gözlemlenmiútir. Ancak, Hikaye PuanÕ,
birden çok boyuta ayrÕútÕrÕlamayan, tekil bir ölçüm oldu÷undan, bu tip çoklu giriúe sahip modellerde kullanÕlamamaktadÕr. COSMIC ölçümleri ise, tanÕmÕ gere÷i dört ayrÕ
temel iúlevsel bileúenden oluúmakta ve çoklu girdi kullanan yöntemlere girdi olarak
kullanÕlabilmektedir. Bu nedenle, COSMIC büyüklü÷ünün, iúlevsel bileúenleri ayrÕ ayrÕ
kullanÕldÕ÷Õnda, yazÕlÕm büyüklü÷ünü Hikaye PuanÕndan çok daha iyi temsil etti÷ini
söyleyebilir. Bu durum da, toplamda COSMIC tabanlÕ kestirim modellerini, Hikaye
PuanÕ tabanlÕ modellere göre daha baúarÕlÕ kÕlmaktadÕr.
Öte yandan, Hikaye PuanÕ kolektif uzman görüúüne dayalÕ bir kestirim türüdür ve
COSMIC iúlevsel büyüklük ölçümü ile kÕyaslandÕ÷Õnda, iúgücü kestirimlerini oluúturmak daha az süre ve emek gerektirmektedir. AynÕ zamanda, COSMIC ölçümü ile oluúturulacak bir kestirim modeli, kurumda geçmiú proje verilerinin bulunmasÕna ihtiyaç
duymaktadÕr.
Bu noktada COSMIC tabanlÕ kestirimlerin Hikaye PuanÕ tabanlÕ kestirimlere göre
daha isabetli oldu÷u ancak daha çok emek ve kaynak gerektirdi÷i söylenebilir. Scrum
uygulayan kurumlarÕn, ihtiyaç duyduklarÕ iúgücü kestirim hassasiyeti ile kestirim çalÕúmalarÕna ayÕrmayÕ planladÕklarÕ süre ve eme÷i kÕyaslayarak bu iki yöntemden birini
tercih etmeleri önerilir.
6
KÕsÕtlar
Bu bölümde çalÕúma sonuçlarÕnÕn genelleútirilmesi ile ilgili bazÕ kÕsÕtlar özetlenmiútir.
Vaka çalÕúmasÕnÕn gerçekleútirildi÷i kurumda, KullanÕcÕ Hikayeleri için standart bir
úablon kullanÕlmamaktadÕr. Bunun yanÕsÕra, bu hikayeleri do÷rulanmasÕ ve/veya geçerlenmesi için bir gözden geçirme mekanizmasÕ bulunmamaktadÕr. KullanÕcÕ hikayelerinin yanlÕú anlaúÕlmasÕ ve farklÕ ekiplerin tanÕmladÕ÷Õ hikayeler arasÕndaki soyutlama
seviyesi farklÕlÕklarÕ ölçüm sonuçlarÕnda belli bir miktar tutarsÕzlÕ÷a yol açmÕú olabilir.
156
Kurumda kullanÕlan ve Çevik yöntemler için tasarlanmÕú ölçüm toplama aracÕ, analiz, kodlama ve test gibi aúamalar için ayrÕ tip etkinlikler tanÕmlamamaktadÕr. Gerçekleúen iúgücü hesaplanÕrken, bu ayrÕm yazarlar tarafÕndan geriye dönük olarak yapÕlmÕútÕr. Bu ayrÕmda, iú ve görevlerin tanÕmlarÕ ve atandÕklarÕ rollerden yararlanÕlmÕútÕr. Ancak, çalÕúma kapsamÕnda en baúarÕlÕ kestirim modelleri ba÷Õl de÷iúken olarak toplam
proje iúgücünü alan modeller oldu÷u için, bu durum çalÕúma sonuçlarÕnÕ etkilememiútir.
ÇalÕúmada kullanÕlan veriler, tek bir kurumdan toplanmÕútÕr. Bu durum ve proje sayÕsÕnÕn kÕsÕtlÕ olmasÕ, çalÕúma sonuçlarÕnÕn genele uyarlanmasÕnda göz önünde bulundurulmasÕ gereken bir faktördür.
7
Referanslar
1. ISO/IEC, IS 14143-1: 2007 - - Information Technology - Software Measurement - Functional Size Measurement - Part 1 definition of concepts, International Organization on Standardization, February 2007
2. COSMIC, Measurement Manual, Version 3.0.1, Common Software Measurement International, 2009㸬
3. Katrina Maxwell, Luk Van Wassenhove, Soumitra Dutta, Performance Evaluation of General and Company Specific Models in Software Development Effort Estimation㸬1999㸬
4. Magne Jørgensen, Kjetil Moløkken-Østvold, Reasons for Software Effort Estimation Error:
Impact of Respondent Role, Information Collection Approach, and Data Analysis Method,
2004
5. Magne Jørgensen, Ulf Indahl, Dag Sjøberg, Software effort estimation by analogy and ‘‘regression toward the mean’’, December 2002
6. Adriano L.I. Oliveira, Estimation of software project effort with support vector regression,
December 2005
7. Magne Jørgensen, Top-down and bottom-up expert estimation of software development effort, April 2003
8. Seçkin TunalÕlar, EFES : An effort estimation methodology, September 2011.
9. Comparison Of Functional Size And Story Points For Effort Prediction Effectiveness On
Scrum Projects
10. Boehm, B.W., Horowitz, E., Madachy, R., Reifer, D., Bradford K.C., Steece, B., Brown,
A.W., Chulani, S., Abts, C.: Software Cost Estimation with COCOMO II, Prentice Hall,
New Jersey, (2000). ISBN-10: 0-13-026692-2
11. Steve McConnell. Rapid development: taming wild software schedules. Microsoft Press,
1996. ISBN: 1-55615-900-5
12. K. Kavoussanakis, Terry Sloan,UKHEC Report on Software Estimation,The University of
Edinburgh December 2001
13. Jeff Sutherland; Ken Schwaber (2013). "The Scrum Guide". www. Scrum.org. Retrieved
July 2013
157

Benzer belgeler