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