
Bilgi teknolojilerindeki hızlı değişiklikler yazılım geliştirme yaşam döngüsünü destekleyecek yeni metod, kavram ve araçları da beraberinde getirmektedir. Nitekim büyük ve başarılı BT kurumlarında daha etkin bir yazılım geliştirme sürecine sahip olmak, daha üretken ve daha kaliteli çözümler ortaya koymak adına farklı çalışmalar yürütülmektedir. Bu çalışmalardan bazıları, daha iyi planlama yapabilmek ve daha iyi karar verebilmek konusundadır.
Bilgi teknolojileri yazılım geliştirme çalışmalarının çoğunda yeni kavramlar ve denenmemiş teknolojiler kullanılmakta ve bu çalışmalar diğer sektörlerde olduğu gibi proje olarak ele alınmaktadır. Artan ve gelişen BT maliyetleri ve süreçlerin kritikliği dikkate alındığında, bu projelerin planlanması ve bu planlara uyabilme yeteneği önemlidir. Edward Demming’in PDCA (Plan, Do, Check, Act) döngüsünün de ilk halkası olan planlama safhası tüm süreç iyileştirme ve üretim bandı iyileştirme metodolojilerinde önemle vurgulanmıştır.
Planlamanın maliyetli olduğu gerçeğini inkar etmeden, doğru ve etkin planlanmamış çalışmaların daha fazla maliyet yaratacağı aşikardır. Ayrıca hızla değişen teknolojiler ve finansal ortam nedeniyle yanlış zaman planları yapılabilmekte, yanlış zaman planları projelerin başarısız olması, diğer rakiplerin gerisinde kalma ve trend’leri kaçırma risklerine sebebiyet vererek büyük kazanç kayıplarına neden olabilir. Amaç, hızla gelişen bilgi teknolojileri ortamında mevcut teknolojilerin peşinden gitmek yerine yeni teknolojileri belirlemek ise planlama süreci çok daha önem taşımaktadır.
Planlama yetkinliği ve olgunluğu sürekli çalışan ve etkin süreçlere bağlıdır. Süreçlerin tekrarlanabilir ve yaygın olması kurumların başarısına katkı sağlayacak kilit unsurlar olmasına rağmen tek başına yeterli olmamakta, planlama başarısında kullanılan araçlar ve metodlar da büyük önem taşımaktadır. Başarılı BT kurumları planlamanın başarısı için farklı araçlar kullanmaktadırlar, bu araçların amaçlarından bazıları bilgi ihtiyacını daha iyi belirlemek, daha iyi tahminleme yapmak ve daha iyi kaynak yönetimi ve iş ayrışımı yapabilmektir. Bu nedenle kullanılan proje yönetimi araçları haricinde bu araçlara girdi sağlayacak metodlar ve bilgiler de söz konusudur.
"Good estimation is based on the understanding and use of a range of tools and techniques and the expert judgment as to which combinations are most appropriate in each situation. -F. Wellman", 1992 IEEE Computer Society’nin yayınladığı Software Engineering Body Of Knowledge (SWEBOK) dokümanında vurgulandığı gereksinimlerini dikkate alarak, planlamanın en önemli halkalarından biri olan tahminlemenin düzgün ve dakik yapılması ve tahminleme çalışmalarında kurumda gerçekleşmiş önceki projelerin tarihsel bilgilerini dikkate alarak istatistiki sonuçlar ortaya çıkarmak için farklı metodlar ve araçlar ortaya çıkmıştır bunlardan bazıları aşağıda özetlenmektedir.
Uzman Değerlendirmesi
Ölçüme dayanan diğer tahminleme metodlarından farklı olarak, Expert Judgment metodu experlerin bilgi ve yeteneğine güvenerek tahminlemeleri ortaya çıkarmayı amaçlamaktadır.
Kullanılmakta olan bazı Expert Judgement metodları aşağıdaki gibidir
Expert judgment’ın daha az maliyetli olmasına karşın pratikte bazı eksiklikleri ortaya çıkmaktadır. Bu eksiklikler;
Benchmark Verilerinin Kullanılması
Using Benchmark Data metodunda, eski projelerde geliştirilen işin boyutuna göre ne kadar zaman harcandığına bakılarak yeni projeler için efor tahmini yapılmaktadır. “Lines Of Code Benchmark Data” ve “Function Points Benchmark Data” yaklaşımları en çok kullanılan iki benchmark metodudur. Bu çalışmalarda, kuruma özel eski proje bilgileri (Historical Company-Data) yoksa başka bir kurum datası (Cross-Company) Benchmark datası kullanılabilmektedir. Başka kurum datasına örnek olarak ISBSG, NASA ve PROMISE dataları verilebilir.
Benzetme Tabanlı Tahminleme
Analogy Based Estimation metodunda, önceki projelerin ölçümlerine bakarak yeni projede ne kadar efor harcanacağı tahmin edilmektedir.
Proxy Based Estimation (PROBE)
Proxy Based Estimation (PROBE) metodunda, çalışma farklı gruplara (proxylere) ayrıştırılmakta ve tarihsel olarak bu proxyler için önceki projelerde ne kadar efor harcandığına bakılarak; yeni projelerde benzer proxyler için ne kadar zaman harcanacağı tahmin edilmektedir. Service Oriented Architecture (SOA)’da incelenebilecek proxylere örnek olarak, servisler, modüller, komponentlar, vb. verilebilir.
Örnek bazı proxyler:
Algoritma Tabanlı Modeller
Algoritma Tabanlı Modeller, manuel modeller ve araç tabanlı (tool based) modeller olarak ikiye ayrılmaktadır. Manuel modeller, farklı büyüklük (size) hesaplamalarından ortaya çıkan sonuçları efor ile ilişkilendirecek bir formül bulma esasına dayanmaktadır.
Algoritma tabanlı hesaplamaları gerçekleştirirken kullanılan araç tabanlı modellerden önde gelenlerine aşağıdaki gibidir:
Özelleştirilmiş Modeller
Custom modellerde; kurumun yapısına uygun tahminleme modelleri oluşturulmaktadır. Bu modellerin amacı, kurumun veri yapısını dikkate alarak birden fazla metodu birleştirmek ve en yüksek tahminleme başarı oranına ulaşmaktır.
IBTech’de daha doğru ve başarılı tahminlemeler yapabilmek ve daha dakik proje planları ortaya çıkarmak adına, Boğaziçi Üniversitesi Yazılım Mühendisliği Araştırma laboratuarı (SoftLab) ile birlikte 7 aylık bir Ar-Ge projesi gerçekleştirilen bu projenin amacı, IBTech’ e özel, yapay zeka tabanlı bir tahminleme modeli ortaya çıkarmaktır. Projelere çalışmaları sırasında, yapay zeka algoritmaları kullanılarak, kendinden öğrenen ve eski proje verilerini dikkate alarak kendinde iyileştirme yapacak bir tahminleme model oluşturmak; böylece tahminleme sürecini sürekli ve daha etkin kılmak amaçlanmıştır.
Proje Boğaziçi Üniversitesi SoftLab’dan Dr. Ayşe Başar Bener önderliğinde Master öğrencisi olan Ekrem Kocagüneli ve Doktora öğrencisi olan Ayşe Tosun’un; IBTech’ den ise Yazılım Geliştirme, Proje Yönetimi ve SAR (Security, Audit, Risk) ekiplerinin katılımı yürütülmüştür. IBTech Effort Estimation projesi çerçevesinde, IBTech’de yürütülen projelerin eforunu etkileyecek etkenler (feature) ilgili tüm experlerin ve akademik danışmanlarımızın görüşleri alınarak ortaya çıkarılmış ve tarihsel konfigürasyon bilgileri istatistiki bir analizden geçtikten sonra birleştirilmiştir.
Bir sonraki aşamada, Proxyler farklı birimlerin mütabakatı sonrasında belirlenmiştir. Konfigurasyon yönetimi sistemi ve proje portföy yönetimi araçlarından gerekli bilgileri alabilmek amacıyla bazı değişiklik ve geliştirmelerin yapılması gerekmiş, subjektif olan bilgiler için anketler yapılarak farklı birimlerin tecrübelerine başvurulmuştur. Farklı sistemlerden alınarak Measurement Repository’ye konulan tüm veriler istatistiki analizlerden geçtikten sonra üzerinde yapay zeka modeli kurulmaya başlanmıştır. Yapay zeka algoritmalarının farklı kombinasyonlarının denendiği süreçte, veri kalitesini yükseltmeye yönelik çalışmalar da yapılmıştır. Ortaya çıkan model, açık kodlu WEKA aracı üzerinde denenmiş ve yüksek tahminleme başarısı elde edilmiştir. Modelin ortaya çıkması ve optimizasyonu sonucunda modelin yayınlaştırmasına yönelik, SoftLab tarafından 3 günlük bir Yapay zeka algoritma ve uygulamaları eğitimi ilgili IBTech birimlerine verilmiştir.
Proje kapsamında IBTech’in çalışma kültürü ve yapısına uygun custom bir model ortaya çıkarılmış olup, Akademi sanayi işbirliği anlamında Türkiye’de bir ilk daha IBTech tarafından gerçekleştirilmiştir. Yapay zeka modeli IBTech geliştirme ekibi tarafından kodlanmıştır.