Tüm Projelere Oranı 5. ULUSAL YAZILIM MÜHENDİSLİĞİ SEMPOZYUMU - UYMS'11 Bir Süreç İyileştirme Programında Yazılım Kalite Maliyeti Kullanımı Ünal AKSU 1 N.Alpay KARAGÖZ 2 INNOVA Bilişim Çözümleri A.Ş., Ankara 1 e-posta: aksuunal@gmail.com 2 e-posta: alpay@acm.org Özet Hızla karmaşıklaşarak gelişen ve rekabet koşullarının sürekli değiştiği yazılım geliştirme sektöründe başarılı olmak için sadece en iyi mühendisleri işe almak veya en iyi yazılım geliştirme araçlarını kullanmalarını sağlamak yeterli olmamaktadır. Booch un da vurguladığı gibi, iyi süreçleri uygulayan iyi insanlar, süreç uygulamayan iyi insanlara göre her zaman daha yüksek performans göstereceklerdir [11]. Kurumlar geliştirdikleri yazılımların kalitesini ve ekiplerinin üretkenliğini arttırmak, bakım ve onarım maliyetlerini düşürmek, değişikliklere daha hızlı tepki verebilmek amacıyla süreç iyileştirme programları uygularlar. Süreç iyileştirme programları bir sertifika uyumluluğu (ISO 15504, CMMI, vb.), değişen iş hedeflerine uyum sağlamak, kurumun mevcut durumunu anlamak gibi motiflerle başlatılabilir. Uygulama yöntemleri ve alınan riskler bakımından hareket halindeki bir aracın tekerleklerini sırayla değiştirmeye benzetilebilecek süreç iyileştirme programları belirli bir plan dahilinde ve tanımlı yöntemler izlenerek uygulanmazsa başarısız olacaktır. Bu bildiride, bir kurumda yürütülen süreç iyileştirme programının yazılım kalite maliyeti kavramları ile desteklenerek nasıl yönlendirildiği anlatılmaktadır. Yapılan çalışmayla süreç iyileştirme öncelikleri değiştirilmiş ve iyileşme maliyeti gerekçeli olarak gösterilebilmiştir. 1. Giriş 1.1. Yazılım Projelerinde Başarısızlık Yazılım Projesi; öncesinde tanımlanan özellik, işlev ve gereksinimlerin daha azını karşılarsa, başlangıçta planlanan bütçesini aşarsa, tahminlenen bitirilme süresinden daha uzun sürerse, ya da tamamlanmadan iptal edilirse başarısız olmuş demektir. Yukarıda belirtilen ilk üç maddenin gerçekleşmesi göreceli başarısızlık, son maddenin gerçekleşmesi ise mutlak başarısızlık olarak adlandırılır. Doğasında karmaşıklık, belirsizlik ve farklı olanı ortaya çıkarma, yeniyi üretme bulunan yazılım projesi gerçek anlamda sosyal ve ekonomik açıdan oluşturduğu fayda ve yarattığı net değer ile ölçüldüğünde başarı elle tutulur anlam ifade edecektir [1], [9], [10]. 1.2. CHAOS Raporu The Standish Group, Massachusetts ABD kaynaklı bir araştırma şirketi, 1993 yılından beri yazılım ve bilgi teknolojileri (BT) alanında meydana gelen başarısızlıkları inceleme çalışmasını sürdürmektedir. Çalışma, yazılım proje başarısızlıklarının kapsamını, temel etkenlerini ve başa çıkma yollarını belirlemeyi amaçlamaktadır. Her ölçekte ABD firmasında gerçekleştirilen yazılım projesi arasında 2009 yılında yapılan araştırmaya göre her 3 projeden sadece 1 tanesi başarılı olmaktadır. 2009 yılında yayımlanan CHAOS Chronicles raporunda yer alan bazı sayısal değerler aşağıdaki gibidir: Yazılım projelerinin sadece %32 si zamanında, planlanan bütçe ve tanımlı özellikleri içerecek şekilde tamamlanmıştır. Bütçesini ya da planlanan zamanı aşan projelerin oranı %44 tür. Projelerin %24 ü iptal edilmiştir. 1994-2009 yılları arasında gerçekleştirilen araştırma sonuçlarına göre yazılım projelerindeki başarısızlık oranlarının dağılımı aşağıdadır: 60% 50% 40% 30% 20% 10% 0% 1994 1996 1998 2000 2002 2004 2006 2009 Başarılı 16% 27% 26% 28% 34% 29% 35% 32% Göreceli Başarısız Proje Başarı Oranları 53% 33% 46% 49% 51% 53% 46% 44% Başarısız 31% 40% 28% 23% 15% 18% 19% 24% Şekil 1: Yıllara göre proje başarı oranları [7] CHAOS araştırmaları, BT projelerinde iyiye gidişin var olduğunu göstermektedir (Şekil-1). 2. Kalite Maliyeti 1950 li yıllarda Joseph M. Juran tarafından geliştirilen, kalite maliyetlerini ölçme yöntemidir. Kaliteli bir ürün ya da servis üretmenin bedeli olmamakla birlikte kaliteli bir ürün ya da servis üretememenin bir maliyeti vardır. Kalite maliyeti ölçme yöntemi üretim endüstrisinde yaygın olarak kullanılmaktadır. Yazılım endüstrisinde 245
ise yazılım kalite maliyeti olarak uyarlanmış ve kullanılmaktadır. Kalite maliyeti temel olarak iki maliyet toplamından oluşmaktadır. Bunlar; kalitenin belirlenmesi için harcanan kalite belirleme maliyeti, diğeri ise düşük seviyedeki kalitenin iyileştirilmesi için harcanan maliyettir. Her iki temel maliyet Şekil-2 de gösterildiği gibi kendi içinde ikiye ayrılmaktadır [8], [9], [10]. Şekil 3: Yazılım kalite maliyetleri ekonomik modeli.[9] Şekil 2: Kalite maliyeti kategorileri Önleme Maliyetleri: Ürün ya da servislerin müşteri gereksinimlerine uygunsuzluğunu önlemek için sürecin başında yapılan ön çalışmalar ve tasarlanmış tüm aktivitelerin giderleridir. Kalite maliyeti ve kalite faydası arasında da benzer bir orantı bulunmaktadır. Kalite maliyetinin ideal bir noktadan sonra artması kalitenin faydasının azalmaya başladığını göstermektedir. Şekil 4 te kalite maliyeti ve kalite faydası arasındaki ilişki gösterilmiştir. Değerlendirme Maliyetleri: Hedeflenen kalitenin gerçekleştirilmesini sağlamak amacıyla, kalite özelliklerinin ölçüm ve kontrolleriyle ilgili giderlerdir. Tasarım aşamasında belirlenen kaliteye uygunluk derecesini garantiye alma amacı için ürün öncesi girdilerin kontrolü, test edilmesi, yeniden gözden geçirme ve değerleme çalışmaları için yapılan giderleri kapsamaktadır. İç Hata Maliyetleri: Tasarlanan kalite standartlarına ulaşmak, müşteri gereksinim ve ihtiyaçlarını karşılamak için geliştirme sırasında ortaya çıkan hata, problem ve bunların düzeltilmesinin maliyetidir. Dış Hata Maliyetleri: Ürün ya da servis müşteriye sunulduktan sonra müşteri tarafından tespit edilen hata, problem ve bunların düzeltilmesinin maliyetidir. 2.1. Kalite Maliyetinin Ekonomik Modeli Kalitesizlik maliyeti ve kalitenin sağlanmasına yönelik maliyet arasında ters orantı bulunmaktadır. Kalitenin sağlanmasına yönelik yatırım arttıkça kalitesizlik maliyeti azalmaktadır. Bu orantıyı açıklayan model Şekil 3 te görülmektedir. Şekilde görüldüğü üzere değerlendirme ve önleme maliyetleri artmaya devam ederken, hata maliyetleri ideal noktaya erişene kadar düşüş gösterecektir. İdeal noktanın ötesine geçildikten sonra, değerlendirme maliyetlerindeki artış ile hata maliyetleri arasındaki denge bozulmaktadır. Şekil 4: Kalitenin eksilen faydası [1] 2.2. Yazılım Kalite Maliyeti Kullanımı Yazılım kalite maliyeti yaklaşımının odağında para olduğu için kuruluş yöneticilerinin ilgisini tereddütsüz bir şekilde üzerine çekmektedir. Çünkü üst yönetim, ölçümlerin kar ya da satış değeri oranlarıyla sunulmasından etkilenecektir. İşin ilk yapıldığında doğru yapılması elde edilecek net fayda ve değeri belirleyeceği için üst yönetim fayda ve değere odaklanarak gereken ilgi ve desteği sunacaktır. Net fayda ve değer olarak ifade edilemeyen maliyet aslında kötü değiliz, yapılması mümkün değil ya da her şeyi değiştirmemiz gerekecek şeklinde olumsuz etkiler oluşturacak ve değişime karşı direnç oluşmasına sebep olacaktır. Ölçüm sonuçlarını yönetime fırsatlar bütünü olarak sunabilmesi kalite maliyeti yaklaşımının gücünü ifade etmektedir. Ayrıca, kalite bulanık bir ifade gibi algılansa da maliyet hiçbir zaman önemsiz ve bulanık değildir [2], [3], [6], [10]. Yazılım süreç iyileştirme programında etkin ve verimli iyileştirme aktivitelerini belirleyebilmek için ilk adım kuruluşun yazılım süreçlerinin o anki durumunun analiz edilmesi ve ölçülmesidir. Böyle bir programda ölçülemeyeni yönetmek mümkün olmayacaktır. Bu 246
analiz ve ölçümü gerçekleştirmek için ölçümlerin toplanması ve yazılım kalite maliyetinin hesaplanması gerekmektedir. Çalışmamızda, yazılım kalite maliyetine ilişkin toplanan ölçüm koleksiyonu ve nasıl toplanacağı 4. Bölümde anlatılmaktadır. 3. Süreç İyileştirme Yaklaşımları Süreç iyileştirmelerin yapılacağı ortama ve duruma göre farklı yaklaşımlar izlenebilir. Deming tarafından önerilen PUKÖ (Planla-Uygula-Kontrol Et-Önlem Al) döngüsü, ISO15504 Değerlendirmeleri, SEI tarafından önerilen IDEAL (Initiate-Diagnose-Establish-Act- Learn) uygulanabilecek yöntemlerdir. Bu yöntemlerin yanında Süreç İyileştirme Önerileri(SİÖ) ile gelen ve yüksek öncelikli iyileştirmeler de dikkate alınmalıdır. Bir şeylerin yanlış gitmesi, daha verimli bir çözüm yolunun tespit edilmesi, kullanılmayan süreç varlıklarının bulunması, veri analizi sonucunda ortaya çıkan öneriler, yeni araçların sisteme entegre edilmesi ve akla gelebilecek diğer tüm konularda iyileştirme önerileri ortaya çıkabilir. 3.1. PUKÖ 1. Planla: Problemi tanımla, Problemi analiz et 2. Uygula: Çözüm geliştir, Çözümü uygula, Veri topla, Başarı kıstaslarını tanımla 3. Kontrol Et: Veri analizi yap, Sonuçları değerlendir, Önlem için karar al, Değişikliğin etkisini analiz et 4. Önlem Al: İstenilen sonuca ulaşılmadıysa döngüyü tekrar çalıştır, başarıya ulaşıldıysa çözümü sistematik hale getir ve kuruma yaygınlaştır, kurumsal uygulamayı izlemeye al 3.2. ISO 15504 Değerlendirmeleri 1. Kurumun ihtiyaçlarını ve iş hedeflerini incele 2. Süreç iyileştirme çalışmasını başlat 3. Mevcut Durum Değerlendirmesini gerçekleştir 4. İyileştirme Planını Oluştur 5. İyileştirme adımlarını gerçekleştir 6. İyileştirme planını izle, ilerlemeyi takip et 7. İyileştirme kazanımlarını devam ettirmek için yaygınlaştır, izle 8. Performansı izle 3.3. IDEAL SEI tarafından geliştirilen bu model CMMi çalışmalarının başlatılmasını ve yürütülmesini destekleyici bir rehber niteliğinde hazırlanmıştır. (görevleri, sorumluları, takvimi, teslimat kalemlerini, kaynakları, ölçümleri, riskleri içeren) bir süreç iyileştirme planı oluştur Uygula (Act): Plan adımlarını gerçekleştir, pilot uygulamalarda dene, yaygınlaştır Öğren (Learn): Öğrenilen dersleri topla, sonuçları hedeflerle karşılaştır, süreç iyileştirme yaklaşımının verimini ölçümlere göre değerlendir 4. Yazılım Kalite Maliyeti Uygulaması 4.1. Uygulama Yöntemi Bölüm 3 te anlatılan süreç iyileştirme yaklaşımları ihtiyaca göre değerlendirilmekte ve kullanılmaktadır. Yazılım kalite maliyeti uygulaması bu yaklaşımların planlanması ve önceliklendirilmesi için temel oluşturmuştur. 4.2. Uygulama Kapsamı Yazılım kalite maliyetini hesaplamak üzere farklı özellikte ve boyutta projelerin birleşiminden oluşan portal projesi seçilmiştir. Proje büyüklüğü ekran sayısı, veritabanı tablo sayısı, rapor sayısı, gereksinim sayısı ve kod satır sayısı cinsinden hesaplanmış olup, harcanan efor adam-ay cinsinden ifade edilmiştir. Proje boyutuna ilişkin ölçümler Tablo 1 de verilmiştir. Tablo 1: Proje boyutu ölçüm değer ekran sayısı 721 veritabanı tablo sayısı 228 rapor sayısı 64 gereksinim sayısı 669 kod satır sayısı 96.000 Yazılım kalite maliyeti hesaplanması kapsamında Hagan ın tanımlamış olduğu ölçümler [5] temel alınmıştır. Ancak; proje için yeterli veriye ulaşılamayan bazı ölçümler Knox un modeli [4] referans alınarak hesaplanmıştır. Proje kapanış raporunda yer alan toplam efor değeri ve yazılım yaşam döngüsü adımlarına göre ayrılmış efor değerleri, bu hesaplama işlemlerini hızlandırmıştır. Önleme maliyeti kategorisinde hesaplanan ölçümler Tablo 2 de gösterilmiştir. Başlat (Initiate): İş hedefleriyle uyumlu süreç iyileştirme hedeflerini, kapsamını, sponsorunu ve ilgili ekibi belirle Teşhis Et (Diagnose): İyileştirilecek süreci referans modele (CMMi veya ISO15504) göre değerlendir Yerleştir (Establish): Hedefleri ve bir önceki adımdaki değerlendirme sonuçlarını karşılayan ayrıntılı 247
Tablo 2: Önleme maliyetleri ölçüm grubu ölçüm değer işgücü birimi gereksinim müşteri/kullanıcı kalite ihtiyaçları için market araştırması - ürün kalite risk analizi 0 müşteri gözden geçirmesi için prototipleme - kullanıcı gereksinimleri gözden geçirmeleri/kontrolleri - proje proje kalite planlama - proje süreç geçerleme - geliştirme ortamı ve araç kalite denetleme - kalite için ortam ve araç oluşturma - geliştirici kalite eğitimi 10 adam-gün formal denetleme/eşli gözden geçirme 40 adam-saat tekrar kullanım kütüphanesi eğitim 3 adam-gün değişiklik yönetimi yönetim 5,1 adam-ay yazılım kalite-güvence yazılım süreci ve standartları tanımlama ve yayımlama 3,6 adam-ay ölçme: veri bakımı, analizi, ve raporlama 6 adam-gün yazılım kalite-güvence programı planlama 60 adam-gün yazılım kalite-güvence performans raporlama 10 adam-gün yazılım kalite-güvence eğitimi 60 adam-gün süreç iyileştirme 60 adam-gün yazılım kalite-güvence süreç uyumluluğu denetimleri ISO 9001 ISO 15504 diğer 12 6 2 adam-gün Toplam 22,62 adam-ay Değerlendirme maliyetleri ölçüm gruplarına göre hesaplanırken daha önceden sınıflara ayrılmamış efor değerleri proje yöneticisi ile konuşularak tahminlenmiştir. Proje toplam eforunun %10 luk kısmını değerlendirme maliyeti eforları oluşturmaktadır. Oranın bu derece düşük olmasındaki en büyük etken müşteri isteklerinin sürekli değişkenlik göstermesi ve müşteri iç süreçlerinin sürekli güncellenmesidir. Müşteri standartlara uyum kapsamında süreçlerini sürekli güncellerken müşteri süreçlerine bağlı geliştirilen bu projede dolayısıyla harcanan eforun büyük kısmı değişiklik ve bu değişikliklerinin geliştirilmesine kaymaktadır. Bunlardan yola çıkarak hesaplanan değerlendirme maliyeti kategorisindeki ölçümler Tablo 3 te gösterilmiştir. Tablo 3: Değerlendirme maliyetleri ölçüm grubu ölçüm değer işgücü birimi tedarik edilen hata - ürün testi tespit etme maliyeti proje - değerlendirme dış değerlendirme ler alan performans denemeleri süreç olgunluk değerlend irme 3 adam-gün Toplam 14,732 adam-ay İç hata maliyetleri bu projede efor cinsinden tutulmamaktadır. Projenin yaşam döngüsünde - 248
karşılaşılan hata, problem, kusur, başarısızlık ve değişiklik istek sayıları sınıflandırılarak tutulmuştur. Fakat her bir madde için harcanan efor kestirilememektedir. Çözüm olarak iç hata maliyetleri Knox un modeli referans alınarak hesaplanmıştır. Organizasyon yazılım geliştirme süreçleri bazında ISO 15504 (SPICE) Seviye 2 sertifikasına sahiptir. Bu doğrultuda Knox un modeli referans alınırken organizasyonun CMMi Seviye 2 olduğu varsayılmıştır. Bu yaklaşımlar kullanılarak hesaplanan iç hata maliyeti Tablo 4 te gösterilmiştir. Dış hata maliyetleri, iç hata maliyetlerinde olduğu üzere bu proje için doğrudan hesaplanmamıştır. Organizasyonun personel çalışma-zaman girişleri için kullanılan uygulama kayıtları incelenerek dış hata maliyetleri hesaplanmıştır. Dış hata maliyetleri hesaplanırken ürünün müşteriye tesliminden yani garanti kapsamının başladığı andan hesabın yapıldığı güne kadar olan müşterinin ürünü kullanması sırasında karşılaştığı problemler ve değişiklik isteklerini karşılayabilmek için harcanan eforlar toplanmıştır. Toplam sonucu elde edilen dış hata maliyetleri Tablo 4 te gösterilmiştir. maliyet türü Tablo 4: Hata maliyetleri değer (adam-ay) iç hata 32,285 dış hata 18,18 Toplam 50,465 Kalite maliyeti kategorilerinde hesaplanan ölçümler Tablo 5 te gösterilmiştir. Tablo 5: Yazılım kalite maliyetleri maliyet türü değer (adam-ay) önleme 22,62 değerlendirme 14,732 iç hata 32,285 dış hata 18,18 Toplam 87,817 Toplam yazılım kalite maliyeti kaliteyi sağlama maliyetleri ve kalitesizlik maliyetlerinin toplamından oluşmaktadır. Toplam yazılım kalite maliyetinin proje eforuna oranı ise toplam yazılım kalite maliyeti oranıdır. Bu proje için harcanan efor proje kapanış raporunda 129,14 adam-ay olarak hesaplanmıştır. Proje eforuna dış hata maliyetleri eklenerek toplam efor hesaplanmaktadır. Toplam Yazılım Kalite Maliyeti Oranı = 59,61 Bu proje için toplam yazılım kalite maliyeti oranı % 59,61 olarak hesaplanmıştır. Yazılım kalite maliyetlerinin hesaplanması süreç iyileştirme programının ilk adımı olmakla birlikte sonraki adımlarda uygulanacak önceliklendirmelere ve alınacak kararlara temel oluşturmaktadır. Süreç iyileştirme programının başarısını etkileyecek bu ölçümlerin toplam yazılım kalite maliyetine oranı grafik üzerinde Şekil 5 te gösterilmiştir. Yazılım Kalite Maliyeti Oranları %20 %37 %26 %17 Şekil 5: Yazılım kalite maliyetlerinin projenin toplam yazılım kalite maliyetine oranları 4.3. Süreç Değerlendirme Uygulaması Önleme Değerlendirme İç Hata Dış Hata Süreç iyileştirme programı yazılım kalite maliyetlerinin hesaplanması, hesaplama sonuçları kullanılarak hedef süreç ya da süreçlerin belirlenmesi, hedef süreç ya da süreçlerdeki zayıflık ve iyileştirme ihtiyaçlarının ortaya çıkarılması, önceliklendirilmesi ve bu önceliklendirme doğrultusunda yapılan iyileştirme çalışmalarından oluşmaktadır. Organizasyonda seçilen proje için hesaplanan yazılım kalite maliyeti incelendiğinde iç ve dış hata maliyetlerinin kalite maliyetlerinin büyük kısmını oluşturduğu Şekil 5 te görülmektedir. Bu maliyetlerin yüksek çıkmasından yola çıkarak organizasyonda iyileştirilecek süreç belirlenmiştir. Dış hata maliyetlerinin yüksek olması ürünün istenen düzeyde test edilemediğini ve test edilen kısımların yeninden incelenmesi gerektiğini göstermektedir. İç hata maliyetleri ise sürekli değişen gereksinim ve yeni gelen istekler doğrultusunda testlerin karmaşıklaşarak uzamasına, sayısının artmasına ve yönetim için daha fazla efora ihtiyaç duyulması nedeniyle yüksek çıkmıştır. Bu bağlamda iyileştirilmek üzere Yazılım Test süreci seçilmiştir. Süreç değerlendirme çalışması referans bir model kullanılarak sürecin güçlü ve zayıf yönlerinin tespit edilmesi ve iyileştirme önerilerinin ortaya çıkarılmasını kapsamaktadır. Organizasyondaki bu çalışma ISO 15504 modeli referans alınarak gerçekleştirilmiştir. Değerlendirme çerçevesinde organizasyonun süreç 249
varlıkları kütüphanesinde yer alan daha önceden tanımlanmış Yazılım Test süreci incelenerek süreç değerlendirme için veri toplanmaya başlanmıştır. Yazılı belge olarak saklanmamış aktivitelere ilişkin test süreci paydaşları ile ortak çalışma yürütülerek gereken verinin toplanması sağlanmıştır. Sürece ilişkin toplanan bu verinin doğrulanması ise her bir süreç özelliği için kontrol listeleri kullanılarak yapılmıştır. Tüm bu sonuçlar doğrultusunda hazırlanan değerlendirme geçici raporu test süreci paydaşları ile paylaşılmış geri dönüş ve yorumlar kullanılarak da toplanan verinin ve yapılan değerlendirmenin doğrulanması sağlanmıştır. Değerlendirme sırasında her bir süreç boyutundaki süreç özelliklerini ve süreç özelliklerinin temel pratiklerini incelemek üzere göstergeler kullanılmıştır. Bunlar; pratikler, kaynaklar, iş ürünleri ve etkilenilen süreçlere ilişkin göstergelerdir. Tablo 6 da gösterildiği üzere, ISO 15504 modelinde yer alan 5 olgunluk seviyesinden 4 tanesi için süreç boyutunda değerlendirme yapılmıştır. Tablo 6: ISO 15504 Süreç boyutunda olgunluk seviyelerindeki süreç özellikleri süreç boyutu no süreç özelliği olgunluk seviyesi Seviye 1 1.1 Süreç Performans Niteliği Seviye 2 2.1 Yönetim Özellik Performansı Seviye 2 2.2 İş Ürünü Yönetim Niteliği Seviye 3 3.1 Süreç Tanım Niteliği Seviye 3 3.2 Süreç Yerleştirme Niteliği Seviye 4 4.1 Ölçüm Niteliği Seviye 4 4.2 Süreç Kontrol Niteliği Seviye 5 5.1 Süreç Yenilik Niteliği Seviye 5 5.2 Süreç İyileştirme Niteliği Süreç özelliklerine göre değerlendirme sonuçları ve her bir süreç özelliğinin gerçekleştirim oranı Şekil 6 da gösterilmiştir. 100% 80% 60% 40% 20% 0% 1.1 2.1 2.2 3.1 3.2 4.1 4.2 TAM KAPSAMLI KISMİ HİÇ ISO 15504 Süreç Özellikleri Şekil 6: Süreç özelliklerine göre değerlendirme sonuçları ISO 15504 süreç değerlendirme boyutunda seviye hesaplaması seviyede yer alan özelliklerin gerçekleştirim oranları dikkate alınarak yapılmaktadır. ISO 15504 te süreç özellikleri tam, kapsamlı, kısmı ve hiç olmak üzere 4 ölçekle belirlenmektedir. Tablo 7: ISO 15504 Süreç özellik ölçekleri özellik kısaltma gerçekleştirim ölçeği oranı % tam F 86-100 kapsamlı L 51-85 kısmi P 16-50 hiç N 0-15 ISO 15504 te bir sürecin süreç boyutunda olgunluk seviyesini sağlaması kontrol edilen seviyeden önceki seviyelerdeki süreç özelliklerini tam olarak gerçekleştiriyor olması ile mümkündür. Tablo 8 de ISO 15504 te yer alan seviye sağlama koşulları gösterilmiştir. Tablo 8: ISO 15504 Olgunluk seviyesini süreç özellikleri gerçekleştirim oranlarına göre sağlama koşulları süreç özelliği olgunluk seviyesi 1 2 3 4 5 1.1 L-F F F F F 2.1 L-F F F F 2.2 L-F F F F 3.1 L-F F F 3.2 L-F F F 4.1 L-F F 4.2 L-F F 5.1 L-F 5.2 L-F Şekil 6 da yer alan süreç özelliklerine göre değerlendirme sonuçları ve Yazılım Test sürecinin organizasyondaki uygulanma niteliği dikkate alınarak ISO 15504 süreç yeterlilik boyutunda Seviye 3 olduğu sonucuna ulaşılmıştır. 4.4. Süreç İyileştirme Uygulaması Süreç değerlendirme adımında hedef sürecin zayıflıkları ve iyileştirme ihtiyacı duyulan bölümleri süreç özellikleri bazında ortaya çıkarılmıştır. Değerlendirme sonucuna göre tam başarım ile gerçekleştirilemeyen süreç özellikleri dikkate alınarak süreç iyileştirme için öneriler ve bu önerilerin önceliklendirilmesi çalışması yapılmıştır. İyileştirme önerilerinden ilki birim testlerin yapılmasıdır. Yapılan süreç değerlendirmesi sırasında proje için birim testlerin yetersiz düzeyde yapıldığı ve bu aktivitelerin planlı bir şekilde gerçekleştirilmediği bulgusuna ulaşılmıştır. Gerçekleştirilen birim testlerin az bir bölümü yüksek öncelikli gereksinimleri test etmektedir. Birim testler hata, kusur ve değişiklik isteklerinin azaltılmasına önemli etkiye sahiptir. Birim testler problemlere farklı açılardan bakabilmeyi sağlamaktadır. Hata yapıldığı anda yakalandığı için test maliyetlerini düşürmektedir. Ayrıca birim testler test 250
türleri içinde en az maliyetli yöntemlerdendir. Ürünün birimler bazında test edilmiş olmasını ve hataların hızlıca keşfedilmesini, kolayca çözümlenmesini sağlayacaktır. Yazılım test sürecinin performansının ölçülmesi, ölçüm sonuçlarının analiz ve kontrol edilmesi diğer bir iyileştirme önerisidir. Ölçülemeyeni yönetmek ve iyileştirmek mümkün olmayacaktır. Nereden başlanacağı bilinmeden ve nasıl ilerleneceği kestirilemeden iyileştirme çalışmaları istenen sonuçları vermeyecek ve kalite maliyeti kalite faydasının üzerine çıkacaktır. Değerlendirme çalışması sırasında sürece yönelik bazı performans ölçütlerinin tanımlandığı ve bu performans ölçütlerinin hangi veri kullanılarak nasıl toplanacağının belirlendiği görülmüştür. Fakat ölçüme ilişkin veri bulunmamıştır. Sürecin izlenebilirliği ve maksimum kalite faydası sunacak şekilde gerçekleştirimi için öncelikle sürecin performansı hesaplanabilmelidir. Ölçümlerin toplanması ve organizasyonun ölçüm kütüphanesinde saklanması sağlanmalıdır. Geçmişe yönelik verinin olması geleceğe yönelik fikir ve kararların oluşmasını kolaylaştıracak, doğru kestirimler yapma imkanı sunacaktır. Süreç performansı gösterge paneline aktarıldığında üst yönetimin dikkatini çekecek ve süreç iyileştirme için desteği artıracaktır. [8] Houston, Dan ve Keats, J.Bert, Cost of Software Quality: A Means of Promoting Software Process, Quality Engineering, 1998 [9] Krasner, Herb, Using The Cost of Quality Approach for Software, 1998. [10] Crosby, Philip B., Quality is Free, Mc-Graw Hill, 1979. [11] Booch, Grady, Object Solutions: Managing the Object Oriented Project, Addison-Wesley, 1995 5. Sonuçlar Yazılım Kalite Maliyeti yaklaşımı bir kurumda yürütülmekte olan Süreç İyileştirme Programını destekleyici ve yönlendirici bir unsur olarak başarıyla kullanılmıştır. Bu uygulamayla; yapılan çalışmaların ekonomik gerekçesi, ortaya çıkan faydanın değeri, süreç iyileştirme faaliyetlerinin önceliklendirilmesi için bir temel oluşturulmuştur. 6. Teşekkür Alper DENİZERİ, Ersoy KÖKTAŞ, Tacettin HALATÇI, Erhan İRTÜRK ve Güven ÖZEN e çalışmaya verdikleri katkılarından dolayı teşekkür ederiz. 7. Kaynakça [1] Erdoğmuş, Hakan, Yazılım Geliştirme Mitolojisi: Efsaneler ve Gerçekler, Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu, 2010. [2] Sekhri, Deepak ve Moths, Arne, Cost of Quality to Justify and Measure Software Process Improvement Software and Systems Quality Conferences, Düsseldorf, 2007. [3] Miller, Dr.Philip.L, An SEI Porcess Improvement Path to Software Quality, Carnegie Mellon University, 2007. [4] Knox, T.Stephen, Modeling the software quality, http://portal.acm.org/citation.cfm?id=182562, 1993. [5] Hagan, JT, Principles of Quality Costs, 1986. [6] Weinberg, Gerald M., Quality Software Management: Systems Thinking, Dorset House Publishing, 1991. [7] The Standish Group International, Inc., CHAOS Report, 2009. 251