<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yazılım Kalite Maliyetlerinin Kontrol Altında Tutulması Yoluyla Proje Geliştirme Maliyetlerinin Düşürülmesi: Literatüre bir bakış</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Burcu Yalçıner</string-name>
          <email>burcuyalciner@cs.hacettepe.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nebi Yılmaz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kıvanç Dinçer</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Yazılım Mühendisliği Araştırma Grubu, Bilgisayar Mühendisliği Bölümü Hacettepe Üniversitesi</institution>
          ,
          <addr-line>Ankara</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>738</fpage>
      <lpage>748</lpage>
      <abstract>
        <p>In order to survive in their competitive sector, software companies must complete software products on time and within budget and those products should satisfy the customers' quality expectations. One of the most effective methods to achieve this result is collecting necessary metrics during development and process these metrics to compute and control the quality costs. Based on some previous studies, the cost of quality ranges usually between 30-50% of the total development costs. The cost related to achieving quality are usually divided into two categories: prevention costs and appraisal costs. For this reason,</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>a good balance between the costs of achieving quality (conformance costs) and
the costs due to lack of quality (non-conformance costs) should be achieved. In
this paper, we investigate the most cited five papers that address practical
application of software quality models using an informal survey method. The results
of reviewed papers are synthesized using the thematic analysis technique. We
present the benefits of such models and discuss the applicability of these results
to enthusiastic software organizations. We also share some systematic
approaches to help the implementation by the software companies in Turkey.
1</p>
    </sec>
    <sec id="sec-2">
      <title>Giriş</title>
      <p>
        Yazılım projelerinde toplam bütçenin belirlendiği planlama aşamasında yazılım
geliştirme maliyetleri, bakım maliyetleri, destek maliyetleri vb. maliyetler hesaplanırken,
toplam bütçenin %50’lik kısmını teşkil ettiği rapor edilen [
        <xref ref-type="bibr" rid="ref2">1</xref>
        ] yazılım kalite güvence
faaliyetlerinin maliyetleri sıklıkla göz ardı edilmektedir. Bu faaliyetler etkin şekilde
uygulandığında toplam proje giderlerinde önemli oranda tasarruf sağlanır [
        <xref ref-type="bibr" rid="ref1 ref3 ref4">2, 3</xref>
        ].
      </p>
      <p>
        Bu alanda yapılan akademik gözden geçirme çalışmalarından (review article)
bazılarında [
        <xref ref-type="bibr" rid="ref4">3</xref>
        ] çoğu yazılım firmasındaki kalite yönetim programlarında herhangi bir
yazılım kalite maliyet hesaplama modelinin kullanılmadığından bahsedilmektedir.
Yazarların sektörel tecrübelerine ve Türkiye’deki pratiklere ilişkin yakın zamanda
yapılmış olan bazı çalışmalara göre [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">5, 6, 7</xref>
        ] Türkiye’deki yazılım firmalarının yazılım
kalite maliyetlerinin nasıl hesaplandığını öğrenmeleri ve maliyetleri kontrol
etmelerinin getireceği faydaları anlamaları için rehberliğe ihtiyaç duydukları anlaşılmaktadır.
      </p>
      <p>Bu çalışmanın amacı, yazılım kalite maliyetinin hesaplanması alanında endüstriyle
işbirliği içerisinde yapılan vaka çalışmalarını inceleyerek pratikte kullanılan yazılım
kalite maliyetini hesaplama modellerinin neler olduğunu belirlemek ve önerilen farklı
yöntemlerin toplam proje maliyeti üzerindeki etkisini anlayarak, Türk yazılım
firmalarına bu kapsamda yapabilecekleri uygulamalar konusunda yol göstermektir.</p>
      <p>
        Söz konusu çalışma bir sistematik literatür taraması (systematic literature review,
SLR) veya sistematik literatür haritalama (systematic mapping, SM) çalışması
değildir. Keşifçi (exploratory) literatür tarama (survey) tekniği kullanılarak bu alanda
yapılan çalışmalardan en çok atıf alan beş tanesinin tematik analiz metodu [
        <xref ref-type="bibr" rid="ref9">8</xref>
        ] kullanılarak
analiz edilmesinden ibarettir.
      </p>
      <p>Bildirinin bundan sonraki bölümleri şu şekilde düzenlenmiştir. Bölüm 2’de kalite
maliyeti ile ilgili genel bilgiler verilmiştir. Bölüm 3’de araştırma amaçları (soruları)
ve yöntemlerinden bahsedilmiştir. Bölüm 4 belirlediğimiz araştırma soruları
kapsamında literatürdeki çalışmalardan edinilen bulguların özetini ve analizini
içermektedir. Ayrıca yazılım kalite maliyeti hesaplama modellerinin yazılım firmalarına
uygulanabilirliği tartışılmıştır. Bölüm 5’te çalışmanın sonuçları ve gelecekte bu çalışmanın
devamı niteliğinde yapılabilecekler anlatılmıştır.</p>
    </sec>
    <sec id="sec-3">
      <title>Kalite maliyeti hakkında genel bilgi</title>
      <p>
        Kalite maliyeti, 1951 yılında J.M. Juran tarafından kullanıcı, müşteri ve diğer sistem
paydaşları tarafından istenilen özelliklerin ve davranışların sağlanması için gerekli
kalite süreçlerinin maliyetlerinin hesaplanma tekniği olarak tanımlanmıştır [
        <xref ref-type="bibr" rid="ref2">1</xref>
        ]. Kalite
maliyeti, hem servis hem de üretim endüstrisinde kaliteyi sağlamak için yapılması
gereken çalışmaların maliyetlerini kontrol etmek, kalite maliyetlerini düşürmek için
yapılabilecekleri tanımlamak ve bu çalışmaların sağladığı gelir karlılığını göstermek
amacıyla kullanılmaktadır [
        <xref ref-type="bibr" rid="ref1 ref3">2</xref>
        ]. Kalite maliyeti, kalitenin yokluğundan dolayı meydana
gelen maliyetler ve kalitenin sağlanması için gerekli maliyetler olmak üzere iki grupta
toplanabilir [
        <xref ref-type="bibr" rid="ref1 ref10 ref3">2, 9</xref>
        ]. Kalitenin yokluğundan dolayı meydana gelen maliyetler iç
başarısızlık ve dış başarısızlık maliyetleri, kalitenin sağlanması için gerekli maliyetler ise
önleme maliyetleri ve değerlendirme maliyetleridir. Tablo 1’de kalite maliyet
kategorileri gösterilmektedir.
      </p>
      <sec id="sec-3-1">
        <title>Tablo 1. Kalite maliyet kategorileri [2, 9]</title>
        <p>Kategori
İç Başarısızlık
Dış Başarısızlık
Önleme
Değerlendirme</p>
        <p>Tanım
Yazılım piyasaya
sürülmeden önce
hataları bulup düzeltmek
için yapılanlar
Yazılım piyasaya
sürüldükten sonra
hataları bulup
düzeltmek için yapılanlar
Yazılım kalitesini
sağlamak amacıyla
yapılanlar
Yazılımın istenilen
kalite düzeyine erişip
erişmediğini kontrol
etmek için yapılanlar</p>
        <p>Tipik yazılım maliyetleri
Bozukluk yönetimi, bozuklukları düzelttikten sonra
tekrar yapılan testler ve aktiviteler (tekrar kodlama
yapmak, tekrar doküman hazırlamak, tekrar denetleme
yapmak…), vb.</p>
        <p>Teknik destek, yazılımdaki hataları iyileştirici
güncellemeler ve onarımlar, kullanıcıdan gelen bozukluk
bildirileri, üründeki hataların satışlarda sebep olduğu
düşüş, şirket profilinin sarsılması, hataların müşterilerin
özel verilerine verdiği zarar sonucu ödenecek
tazminatlar, vb.</p>
        <p>Gerekli kalite standartlarının belirlenmesi ve müşteri
kabul testleri, süreç iyileştirme, yazılım kalite güvence
yönetimi, iç ve dış denetlemeler, metriklerin toplanması
ve analizi, çalışanların eğitimi, vb.</p>
        <p>Yazılımın kalite denetlemeleri, testler, kalite güvence
prosedürlerinin ve standartlarının denetlenmesi, vb.</p>
        <p>
          Kalitenin yokluğundan meydana gelen maliyetler ile kaliteyi sağlamak için gerekli
maliyetler arasında ters ilişki bulunmaktadır. Kaliteyi sağlamak için yapılan
yatırımları arttırdığımızda kalitenin yokluğundan meydana gelen maliyetler azalır. Şekil
1’deki geleneksel kalite maliyet modeli bu ilişkiyi göstermektedir [
          <xref ref-type="bibr" rid="ref10">9</xref>
          ]. Şekil 1’de de
görüldüğü gibi yazılımda meydana gelebilecek hataları önlemek ve değerlendirmek
için gerekli yazılım kalite aktiviteleri ne kadar çok uygulanırsa, hata önleme ve
değerlendirme maliyetleri artar, ancak buna bağlı olarak yazılımda meydana gelebilecek
hata sayısı düşer ve bu da yazılım başarısızlık maliyetlerinin büyük oranda azalmasını
sağlar. Bu durum, Şekil 2’de revize edilmiş kalite maliyet modelinde gösterildiği gibi
toplam kalite maliyetinin azalmasını sağlar [
          <xref ref-type="bibr" rid="ref10">9</xref>
          ].
Şekil 1. Geleneksel Kalite Maliyet Modeli [
          <xref ref-type="bibr" rid="ref1 ref10 ref3">2, 9</xref>
          ]
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Araştırma amaç ve yöntemi</title>
      <p>Türkiye’de yazılım sektöründe faaliyet gösteren firmaların yazılım kalite maliyetlerini
kontrol etmenin getireceği faydaları anlamaları ve maliyetlerin nasıl hesaplandığını
öğrenmeleri için bir rehberlik niteliği taşıyan bu çalışmanın yapılması gerekli
görülmüştür. Bu çalışmanın amacı, yazılım kalite maliyetinin hesaplanması alanında
yapılan çalışmaların inceleyerek yazılım kalite maliyet hesaplama modellerini anlamak,
bu modellerin kullanıldığı sektörel vaka çalışmalarını incelemek, yazılım kalite
maliyet hesaplarının/kontrolünün başarısızlık maliyetlerinin azalmasına nasıl bir etkisi
olduğunu anlamak ve bu modellerin yazılım sektöründeki kullanılabilirliğini ve
uygulanabilirliğini göstermektir.</p>
      <p>
        Bu kapsamda, yazılım kalite maliyeti modelleriyle ilgili yapılan birincil
çalışmalardan en çok atıf alan beş tanesi literatür taraması (survey) yöntemi ile incelenmiş ve
tematik analiz [
        <xref ref-type="bibr" rid="ref9">8</xref>
        ] yöntemi ile analiz edilmiştir.
      </p>
      <p>Makalemizde yukarıda belirttiğimiz amaçlar doğrultusunda üç araştırma sorusu
(ArSor, “Research Questions”) oluşturulmuştur:
• Araştırma Sorusu 1: Literatürde kalite maliyetlerini hesaplamak için hangi
modeller önerilmiştir?
• Araştırma Sorusu 2: Yazılım alanında yapılan kalite maliyet modellerinin
sektörel vaka çalışmaları nelerdir? Bu çalışmaların raporladığı olumlu sonuçlar nelerdir?
• Araştırma Sorusu 3: Başlangıç seviyesindeki yazılım firmalarında yazılım kalite
maliyet hesaplama modelleri nasıl uygulanabilir?</p>
    </sec>
    <sec id="sec-5">
      <title>Sonuçlar ve analiz</title>
      <sec id="sec-5-1">
        <title>Araştırma Sorusu 1: Modeller</title>
        <p>
          Yazılım kalite maliyet hesaplama alanında yapılan tarama çalışmalarından elde edilen
sonuçlara göre yazılım kalite maliyet modelleri dört genel gruba ayrılabilir [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ]:
• Önleme-Değerlendirme-Başarısızlık (Prevention-Appraisal-Failure, P-A-F) ya da
        </p>
        <p>Crosby’nin yazılım kalite maliyet modelleri,
• Fırsat /soyut maliyet (opportunity or intengible cost) modelleri,
• Süreç maliyet modelleri (process cost models),
• Aktivite tabanlı maliyet (activity-based costing) modelleridir.</p>
        <p>
          Çoğu kalite maliyet modeli P-A-F modeline bağlı olarak uygulanmaktadır. P-A-F
kalite maliyet modeline göre yazılım geliştirme sürecinde önleme ve denetleme
aktivitelerine yapılan yatırımlar başarısızlık maliyetlerini düşürecek, hatta dahası önleme
aktivitelerine yapılan maliyetler denetleme aktivitelerine yapılan maliyetleri de
düşürecektir [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ].
        </p>
        <p>Crosby’nin kalite maliyet modeli P-A-F modeline benzer bir modeldir. Crosby’ye
göre kalite maliyeti, kaliteyi sağlamak için gerekli maliyetler (conformance costs) ve
kalitenin yokluğundan dolayı ortaya çıkan başarısızlık maliyetleri (non-conformance
costs) olmak üzere iki gruba ayrılarak aşağıdaki gibi formüle edilebilir:
Ckalite= Ckaliteyi_sağlama + Ckalitesizlik
(1)</p>
        <p>
          Crosby’nin kalite maliyet modeli ve P-A-F kalite modelinin terminolojisi
birbirinden farklı olup bu iki model birbirinin alternatifi olarak kullanılabilir [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ].
        </p>
        <p>Soyut maliyet modeline göre kalite maliyeti, kaliteyi sağlamak için gerekli
maliyetler, kalitenin yokluğundan dolayı ortaya çıkan başarısızlık maliyetleri ve fırsat
maliyetlerinin toplamı olup aşağıdaki gibi formüle edilebilir:</p>
        <p>Ckalite= Ckaliteyi_sağlama + Ckalitesizlik + Cfırsat
(2)</p>
        <p>Fırsat maliyeti, kaynakların etkin bir şekilde kullanılmaması, ürünün
teslimatındaki gecikmeler gibi sebeplerden ötürü kazançta meydana gelen düşüşler ya da müşteri
kayıpları olarak tanımlanabilir.</p>
        <p>Süreç maliyet modeli, ürün ya da servis yerine süreç üzerine odaklanan bir kalite
maliyet modelidir. Bu modelde kalite maliyeti, ürünleri ya da servisleri üretme
aşamasındaki belirli bir sürecin gerekli standartları ilk anda sağladığı maliyetler
(conformance costs) ve o sürecin başarısızlık maliyetlerinin (non-conformance costs)
toplamıdır.</p>
        <p>
          Aktivite-tabanlı model, aslında bir kalite maliyet modeli olmayıp ürünler
arasındaki kalite maliyetlerini tanımlamak, ölçmek ve bütçe tahsis etmek amacıyla kullanılan
alternatif bir yaklaşımdır [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ].
4.2
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>Araştırma Sorusu 2: Vaka Çalışmaları</title>
        <p>
          Kalite maliyet modellerinin üretim, elektronik yazılım, bilgi teknolojileri vb. birçok
endüstri alanındaki kullanımları ve bunların sağladıkları kazançlar farklı kaynaklarda
bulunabilir (örneğin [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ]). Bu bildiride yazılım maliyetinin hesaplanması alanında
endüstri ile işbirliği içerisinde yapılan ve en çok atıf alan beş tane vaka çalışması
incelenmiş ve sonuçları sentezlenmiştir:
• Bu vaka çalışmalarından ilki Knox’un çalışmasıdır. Knox, yazılım kalite maliyeti
konusunda literatürdeki verilerin/bulguların çok sınırlı olması sebebiyle, yazılım
kalite maliyetinin hesaplandığı revize edilmiş yazılım kalite maliyet modelini
(Şekil 2) Yazılım Mühendisliği Enstitüsünün Kapasite Olgunluk Modeli (Capability
Maturity Model, CMM) etrafında genişleterek beş CMM düzeyine uygulamış ve
Şekil 3’de gösterilen teorik yazılım kalite maliyet modelini [
          <xref ref-type="bibr" rid="ref11">10</xref>
          ] elde etmiştir.
        </p>
        <p>
          Şekil 3: Knox’un teorik yazılım kalite maliyeti modeli [
          <xref ref-type="bibr" rid="ref1 ref3">2</xref>
          ]
        </p>
        <p>
          Knox yaptığı inceleme sonucu, CMM 1 düzeyindeki organizasyonların toplam
kalite maliyetinin yazılım geliştirme maliyetinin %60’ını oluşturduğunu, bu
maliyetlerin ise kalitenin yokluğundan meydana gelen iç başarısızlık ve dış başarısızlık
maliyetleri olduğunu ortaya koymuştur. Knox, üretim sektöründeki kalite maliyet
modeli üzerindeki deneyimlerinden yararlanarak CMM 5 düzeyindeki
organizasyonların yazılım kalite maliyetlerini yaklaşık olarak %67 oranında azaltabilecekleri
varsayımında bulunmuştur. Bu model, CMM 3 düzeyindeki organizasyonlar için
yazılım kalite maliyetinin, toplam yazılım geliştirme maliyetinin yaklaşık olarak
yarısı kadar olacağını ve kaliteyi sağlamak için gerekli maliyetlerin başarısızlık
maliyetlerine oranının 0,5 olacağını önermektedir [
          <xref ref-type="bibr" rid="ref1 ref3">2</xref>
          ].
• Daha sonra 1988 yılında RES firması bünyesindeki projelerde yazılım kalite
maliyetlerinin hesaplamasını sağlamak amacıyla bir süreç iyileştirme programı
başlatmıştır [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ]. Bu programı 15 proje üzerinde uygulamış ve 3 yıl içerisinde CMM 1
düzeyinden CMM 3 düzeyine ulaşmıştır. Bu uygulamanın sonuçlarının Knox’un
teorik yazılım kalite maliyeti modelinin (Şekil 3) varsayımlarına uygun olduğu
gözlemlenmiştir. RES firmasının, kalite hesaplama modellerini kullandıkları
zaman elde ettikleri kazançlar şu şekildedir: (1) Firma CMM 1 düzeyinde iken kalite
maliyetleri, yazılım geliştirme maliyetlerinin %55-%67’si oranında hesaplanmış,
firma CMM 3 düzeyine ulaştığında ise bu oran yaklaşık %40 civarına düşmüş ve
kaliteyi sağlamak için gerekli maliyetlerin başarısızlık maliyetlerine oranı 1,5
olarak ölçülmüştür, (2) Yazılım kalite maliyetleri 8 yıl içerisinde %65’den %15’e
düşmüştür, (3) Tekrar yapılan işlerin (rework) maliyeti %40’dan %6’ya düşmüştür,
(4) Yazılım üretkenliği %170 oranında artmıştır.
        </p>
        <p>Şekil 4’de RES’in 15 proje için uyguladığı süreç iyileştirme programının yazılım
kalite maliyetleri üzerindeki etkisi grafiksel olarak gösterilmektedir.</p>
        <p>
          Şekil 4. RES’in Yazılım Kalite Maliyeti ile ilgili verileri [
          <xref ref-type="bibr" rid="ref1 ref10 ref3">2, 9</xref>
          ]
• Price Waterhouse firması İ ngiltere’de bulunan CMM 3 düzeyindeki 19 yazılım
firmasının katıldığı bir anket yaparak, yazılım kalite standartlarının maliyetleriyle
bu maliyetlerden elde edilen kazançları analiz etmiştir. Bu çalışmanın sonuçları
kaliteyi sağlamak için gerekli maliyetlerin (önleme ve değerlendirme maliyetleri)
toplam yazılım maliyetinin %23-%34’ünü oluşturduğunu, kalitesizlik
maliyetlerinin (iç ve dış başarısızlık maliyetleri) ise toplam yazılım maliyetlerinin %15’ini
oluşturduğunu göstermektedir. Ancak bu çalışmaya gözden geçirme (rework) ve
birim testi maliyetleri dâhil edilmemiştir [
          <xref ref-type="bibr" rid="ref1 ref3">2</xref>
          ].
• Bombardier Taşımacılık şirketinin yürüttüğü büyük bir demiryolu projesinde,
yazılım kalite maliyetlerinin hesaplandığı bir vaka çalışması yapılmıştır [
          <xref ref-type="bibr" rid="ref10">9</xref>
          ]. Bu
çalışmada, 88,000 adam-saat süren bu projede 1,100 den fazla yazılım parçasını
geliştirmek ve kalitesini sağlamak için görevler belirlenmiş ve bu görevler analiz
edilerek maliyet hesapları yapılmıştır. Yapılan hesaplamalar yazılım kalite maliyetinin
toplam proje maliyetinin %33’ünü oluşturduğunu, bu maliyetin %2’sinin önleme
maliyetleri, %21’nin değerlendirme maliyetleri ve %10’unun başarısızlık
maliyetleri olduğunu göstermektedir .
• RBCS yazılım test, eğitim ve danışmanlık şirketi yazılımın test edilmesi için
yapılan yatırımın geri dönüşünü analiz etmek amacıyla ortak olarak çalıştıkları bir
şirketle işbirliği içerisinde bir vaka çalışması yayınlamıştır [
          <xref ref-type="bibr" rid="ref2">1</xref>
          ]. Bu vaka çalışmasının
sonucu olarak, sistem test edilmediği zaman elde edilen yazılım kalite maliyetinin,
sistem test edildiğinde elde edilen yazılım kalite maliyetinin hemen hemen 2 katı
olduğu belirtilmiştir. Bu sonuçlara göre yazılımı teslim etmeden önce hataların test
edilerek bulunup onarılmasının yazılım kalite maliyetlerini büyük oranda
azalttığını ve yazılım testi için yapılan yatırımdan %850 oranında bir geri dönüş elde
edildiğini kaydetmişlerdir. Bu vaka çalışması da, yazılım kalite faaliyeti olarak yazılım
testinin yapılarak hataların önceden bulup onarılarak hata önceleme maliyetlerine
ayrılacak bütçenin, yazılım değerlendirme ve başarısızlık maliyetlerini büyük
oranda azalttığını göstermektedir.
        </p>
        <p>
          Bu çalışmalardan elde edilen sonuçlara göre, kalite sistemleri CMM 3 seviyesinde
olan yazılım organizasyonlarının toplam yazılım kalite maliyetleri toplam proje
bütçesinin %40-%55’ini oluşturmalı ve kaliteyi sağlamak için gerekli maliyetlerin
başarısızlık maliyetlerine oranı 1,5 ile 2 arasında olmalıdır [
          <xref ref-type="bibr" rid="ref5">4</xref>
          ].
4.3
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>Araştırma Sorusu 3: Uygulamalar</title>
        <p>
          Akademik alanda kalite maliyet modellerine ilgi ne kadar yoğun olursa olsun
endüstriyel alanda bu modeller yaygın olarak kullanılmamaktadır. Küçük firmalar, kalite
için yeterli bütçe ayıramamakta ve kalite maliyetlerini gözlemlemek için herhangi bir
girişimde bulunmamaktadırlar. Büyük firmalar ise kalitenin en önemli öncelikleri
olduğunu iddia etmelerine rağmen, çok sınırlı sayıda firma kalite iyileştirme
programlarının sonuçlarını incelemekte ve kaliteye yeterli bütçeyi ayırmaktadırlar. Kalite
özellikle son zamanlarda firmalar arasındaki en önemli rekabet aracı olmasına
rağmen, yöneticiler tarafından kalite için ayrılacak bütçenin firmaya sağlayacağı faydalar
yeterince anlaşılmamaktadır [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ]. Bu sebeple, bu bölümde özellikle yazılım
firmalarında yönetimin kalite faaliyetlerine yönelik yatırım kararlarını desteklemek için yazılım
kalite maliyet modellerinden hangisini kullanarak işe başlamalarının daha uygun
olacağı ve bunları nasıl kullanacakları anlatılacaktır.
        </p>
        <p>
          Birçok (büyük) firmanın kalite maliyet modeli olarak P-A-F kalite modelini tercih
ettiği ve bu modeli uygulamaları sonucu ciddi geri kazanımlar elde ettikleri
gözlenmiştir [
          <xref ref-type="bibr" rid="ref4">3</xref>
          ]. Yapılan vaka çalışmaları ve büyük şirketlerin uygulama sonuçları göz
önüne alınarak, Türkiye’deki yazılım firmalarının da başlangıçta P-A-F kalite maliyet
modelini uygulamaları, hem daha anlaşılır olması hem de sağladığı kazançlar
sebebiyle tercih edilmelidir.
        </p>
        <p>Kalite maliyet modeli belirlendikten sonra proje kapsamında yazılım ürününün
sağlaması beklenen kalite özelliklerinin gerçekleştirilebilmesi için gerekli yazılım
kalite güvence faaliyetleri belirlenmeli, yazılım kalite süreçleri tanımlanmalı ve
firmalar bunları kendi şirketleri bünyesinde uygulamalıdır.</p>
        <p>Sınırlı bir bütçeye sahip olan yazılım firmaları, yazılım ürününün beklenen kaliteyi
sağlaması için gerekli kalite güvence faaliyetlerinden hangilerine öncelik vererek
yatırım yapmaları gerektiğini nasıl anlayabilirler? Bunu anlamak için öncelikle
yazılım ürününün beklenilen kaliteyi sağlaması için gerekli bütün yazılım kalite güvence
faaliyetleri, bu faaliyetleri başlatmak ve sürdürmek amacıyla yapılan yatırımlar
hesaplanmalıdır. Bu faaliyetleri başlatmak ve sürdürmek amacıyla yapılacak muhtemel
yatırımlar Tablo 3’de gösterilmiştir.</p>
        <sec id="sec-5-3-1">
          <title>Tablo 2. Yazılım kalite güvence faaliyetlerinin maliyetleri</title>
          <p>Yazılım Kalite Maliyetleri
(SQI-initial investments)
Yazılım Bakım Maliyetleri
(SQM-ongoing investments)</p>
          <p>Kalite güvence faaliyetlerini
başlatmak amacıyla yapılan
yatırımlar
Yazılımın kalitesinin
devamlılığını sağlamak amacıyla yapılan
yatırımlar</p>
          <p>Kalite eğitimleri, kullanılacak
araçlar, materyaller vb.</p>
          <p>Daha sonra yapılacak toplantılar,
araçların yeni versiyon
güncellemeleri, eğitimler vb.</p>
          <p>Yazılım kalite güvence faaliyetleri için yapılan harcamalar yıllık bir gelirle
sonuçlanmalıdır. Bu gelir, projenin satışında oluşan artış sonucu elde edilen kar ve yazılım
kalite iyileştirme faaliyetleri sonucu elde edilen maliyet tasarruflarını içeren yazılım
kalite gelirleridir (Software Quality Revenues, SQR).</p>
          <p>
            Yazılım firmaları belirledikleri kalite güvence faaliyetlerinin her biri için gerekli
kalite maliyet metriklerini belirlemelidirler. Bu metrikler Tablo 3’de gösterilmektedir.
Daha sonra Denklem 3 ve Denklem 4 kullanılarak kalite güvence faaliyetlerinin
karlılık indeksleri belirlenmelidir. Bu kalite güvence faaliyetlerinden, SQPI değeri 1’den
büyük olanlar arasından firma bütçesi dâhilinde SQPI değeri en büyük olanları
seçerek uygulamalıdırlar [
            <xref ref-type="bibr" rid="ref5">4</xref>
            ].
          </p>
          <p>Metrik
SQPI
ROSQ
NPVCF
NPVIC
NPVBRC
SQI</p>
        </sec>
        <sec id="sec-5-3-2">
          <title>Tablo 3. Yazılım Kalite Maliyet Hesaplama Metrikleri</title>
          <p>Tanımı
Yazılım kalite karlılık indeksi (Software quality probability index): Yazılım kalite
gelirleri ile giderleri arasındaki farkın yazılım kalite giderlerine oranı
Yazılım Kalite Güvence Faaliyetlerinin Gelirleri (Return on Software Quality):
Yazılım kalitesi için yapılan harcamalar ve gelirler arasındaki nakit akışı değerinin
(the net present value of the SW quality cash flows, NPVCF) yazılım kalite güvence
faaliyetleri için yapılan yazılım kalite maliyetleri ve yazılım bakım maliyetlerine
(the net present value of investment costs, NPVIC) oranı
Nakit akışının net mevcut değeri (Net present value of cash flows): Yazılım kalitesi
için yapılan harcamalar ve gelirler arasındaki nakit akışı
Yatırım maliyetlerinin net mevcut değeri (Net present value of investment costs):
Yazılım kalite güvence faaliyetleri için yapılan yazılım kalite maliyetleri ve yazılım
bakım maliyetleri
Yazılım Kalite Gelirleri ve giderleri arasındaki fark (Net present value between
return and cost)</p>
          <p>Yazılım Kalite Yatırımları (Software Quality Investments)
ROSQ = NPVCF/ NPVIC</p>
          <p>(Yazılım kalite güvence faaliyetlerinin gelirleri) (3)
SQPI=NPVBRC/SQI
(Yazılım kalite karlılık indeksi) (4)</p>
          <p>
            Hangi yazılım kalite güvence faaliyetlerini projeye uygulayacaklarını belirledikten
sonra, firmalardaki test mühendisleri ve kalite mühendisleri bir arada çalışarak ve
benzer projelerin ilgili dokümanlarını inceleyerek yazılımın kaliteyi sağlaması için
gerekli diğer maliyetleri ve kalitenin yokluğundan dolayı meydana gelebilecek
başarısızlık maliyetlerini hesaplarlar. Yazılım kalite maliyetlerini Tablo 1’de gösterilen
ilgili yazılım kategorilerine göre ayırarak Denklem 5’i kullanıp yazılım kalite
maliyetini hesaplayabilirler [
            <xref ref-type="bibr" rid="ref2 ref4">1, 3</xref>
            ].
          </p>
          <p>Ckalite = Ckaliteyisağlama + Ckalitesizlik
Ckalite = Cönleme + Cdenetleme + Cbaşarısızlık
(5)</p>
          <p>Yazılım kalite maliyeti, yazılımın kalitesini sağlamak için yapılacak önleme ve
denetleme faaliyetleri ile yazılımda hata çıkması durumunda o hataların düzeltilmesi
sırasında yapılan faaliyetler ve hatalar düzeltildikten sonra tekrar yapılan kodlama,
gözden geçirme, test vb. gibi faaliyetler için harcanacak iş gücü ve zaman esas
alınarak adam/ay hesabı üzerinden yapılır.</p>
          <p>Yazılım kalitesine belirli bir bütçe ayırmanın amacı yazılım ürününü teslim
etmeden önce yazılımdaki bozuklukların oranını optimum düzeyde azaltarak başarısızlık
maliyetlerini mümkün olduğu kadar en aza indirmektir. Bu sebeple, şirketler yazılım
ürününe ayıracakları bütçeyi tahmin edebilme kabiliyetlerini arttırmalıdırlar. Bunu
yapmanın yollarından biri eğer proje uzun soluklu bir proje ise projenin gerçek
geçmiş bozukluk ve işgücü verilerini kullanmak, diğeri ise benzer projelerdeki bozukluk
ve işgücü verilerini kullanmaktır.</p>
          <p>Yazılım proje yöneticileri daha önceki projelerden elde ettikleri tahmini
başarısızlık maliyetleri ve yazılım kalite maliyetleri arasındaki ters ilişkiyi Şekil 2’de
gösterilen Revize Kalite Maliyet Modeli aracılığıyla yakaladıkları zaman yazılım kalite
güvence faaliyetlerine yapacakları yatırım kararlarının faydalarını göreceklerdir.</p>
          <p>Özetle, yazılım kalite maliyetlerinin artması başarısızlık maliyetlerini çok büyük
bir oranda azaltmaktadır. Yazılımın beklenen kalite düzeyini sağlaması adına yapılan
bu yüksek yatırımlar, değerlendirme maliyetleri ile neredeyse bütçenin %80’ini içeren
başarısızlık maliyetlerinin büyük bir oranda azalmasını sağlamaktadır. Bu sebeple,
yazılım için ayrılan bütçenin aşılmasına sebep olan başarısızlık maliyetlerini optimum
seviyede azaltmak için yazılımın kalite gereksinimlerini sağlayacak yazılım kalite
güvence maliyetlerine yapılan yatırımlar arttırılmalıdır. Sonuç olarak, yazılım proje
yöneticileri kalite faaliyetlerine yapacakları yatırım kararlarını bu yazılım kalite
maliyet hesaplama modelleri ile destekleyebilirler.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Sonuç ve gelecek çalışmalar</title>
      <p>Türkiye’deki küçük ya da büyük ölçekli olmasından bağımsız olarak yazılım
firmalarının çoğu ya kaliteye yeterince önem vermemekte ya da kalite maliyetinin nasıl
hesaplanacağını bilmemektedir. Bu sebeple, kalite maliyet hesabının nasıl yapılacağı ve
hangi kalite maliyet modellerini kullanmaları gerektiği ile ilgili bir çalışmaya ihtiyaç
duyulmuştur. Bu sebeple, kalite maliyeti alanında bir literatür tarama (survey)
çalışması yapılmıştır.</p>
      <p>
        Kalite maliyet modelini kullanan firmaların rapor ettikleri kazançlar incelendiğinde
yazılım kalite maliyetlerinin ve harcanan iş gücünün zaman içerisinde hemen hemen
%50 oranında bir düşüş sağladığı gözlemlenmiştir [
        <xref ref-type="bibr" rid="ref1 ref3 ref4">2, 3</xref>
        ]. Bu da yazılım kalite
maliyetlerinin toplam bütçede sağladığı düşüş ve gelir karlılığını göstermektedir. Kalite
maliyeti hesabı görüldüğü gibi zor ve pahalı bir işlem olmayıp aksine şirkete büyük
bir kar ve fayda sağlayan bir işlemdir. Bu sebeple, yazılım proje yöneticileri proje
maliyeti hesaplarında yazılım kalite maliyetlerini de katmalıdırlar.
      </p>
      <p>İncelenen vaka çalışmalarından ve gözlemlenen gözden geçirme çalışmasından
elde edilen bulgulara göre, P-A-F kalite maliyet modelini kullanmaları hem kolay
olması hem de sağladığı faydalar açısından uygundur. Şirketler başlangıç düzeyinde bu
modeli kendi projelerine ve kalite gereksinimlerine göre uyarlayıp kullanabilirler.</p>
      <p>Bu çalışmanın devamında literatürde bu alanda yapılmış tüm birincil çalışmaları
inceleyerek bir sistematik literatür araştırma (systematic literature review, SLR)
çalışması ve endüstri partnerlerimizle beraber ortak yürütebileceğimiz bir veya birkaç
vaka çalışması yapmayı planlamaktayız.</p>
    </sec>
    <sec id="sec-7">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>Şekil 2</article-title>
          .
          <source>Revize Kalite Maliyet Modeli [2</source>
          ,
          <issue>9</issue>
          ]
          <fpage>3</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          1. RBCS | resources |articles, URL http://rbcs-us.com/resources/articles/ basic-library
          <article-title>-articles-testing-roi-what-it-managers-should-know/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          2. Houston, D. and
          <string-name>
            <given-names>J. Bert</given-names>
            <surname>Keats</surname>
          </string-name>
          .
          <article-title>"Cost of software quality: a means of promoting software process improvement</article-title>
          .
          <source>" Quality Engineering</source>
          <volume>10</volume>
          (
          <issue>3</issue>
          ):
          <fpage>563</fpage>
          -
          <lpage>573</lpage>
          . (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          3.
          <string-name>
            <surname>Schiffauerova</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Thomson</surname>
          </string-name>
          .
          <article-title>"."</article-title>
          <source>International Journal of Quality &amp; Reliability Management</source>
          <volume>23</volume>
          (
          <issue>6</issue>
          ):
          <fpage>647</fpage>
          -
          <lpage>669</lpage>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          4.
          <string-name>
            <surname>Slaughter</surname>
            ,
            <given-names>S. A.</given-names>
          </string-name>
          , et al. (
          <year>1998</year>
          ).
          <article-title>"Evaluating the cost of software quality."</article-title>
          <source>Communications of the ACM</source>
          <volume>41</volume>
          (
          <issue>8</issue>
          ):
          <fpage>67</fpage>
          -
          <lpage>73</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          5.
          <string-name>
            <surname>Garousi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , et al.
          <article-title>"A survey of software engineering practices in Turkey."</article-title>
          <source>Journal of Systems and Software</source>
          <volume>108</volume>
          :
          <fpage>148</fpage>
          -
          <lpage>177</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          6.
          <string-name>
            <surname>Garousi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ahmet</surname>
            <given-names>Coşkunçay</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Can</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.B.</given-names>
            ,
            <surname>Demirörs</surname>
          </string-name>
          ,
          <string-name>
            <surname>O.</surname>
          </string-name>
          <article-title>Türkiye'deki Yazılım Test Uygulamaları Anketi</article-title>
          .
          <source>Proceedings of the 7th Turkish National Software Engineering Symposium (UYMS2013)</source>
          .
          <source>İzmir</source>
          (
          <year>2013</year>
          ) http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1072</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dinçer</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garousi</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <article-title>Yazılım Projelerinde Başarısızlık: Kritik Başarı Faktörlerine Dayalı bir Vaka Çalışması</article-title>
          .
          <source>Proceedings of the 9th Turkish National Software Engineering Symposium (UYMS</source>
          <year>2015</year>
          ), s.
          <fpage>59</fpage>
          -
          <lpage>71</lpage>
          .
          <string-name>
            <surname>İzmir</surname>
          </string-name>
          (
          <year>2015</year>
          ) http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1483</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          8.
          <string-name>
            <surname>Cruzes</surname>
            , D. S. and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Dybå</surname>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>Synthesizing evidence in software engineering research</article-title>
          .
          <source>Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement</source>
          , ACM.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          9.
          <string-name>
            <surname>Laporte</surname>
          </string-name>
          , C. Y., et al. (
          <year>2012</year>
          ).
          <article-title>"</article-title>
          <source>Measuring the Cost of Software Quality of a Large Software Project at Bombardier Transportation: A Case Study." Software Qual. Manage</source>
          <volume>14</volume>
          (
          <issue>3</issue>
          ):
          <fpage>14</fpage>
          -
          <lpage>31</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          10.
          <string-name>
            <surname>Knox</surname>
            ,
            <given-names>S. T.</given-names>
          </string-name>
          (
          <year>1993</year>
          ).
          <article-title>"Modeling the cost of software quality."</article-title>
          <source>Digital Technical Journal</source>
          <volume>5</volume>
          :
          <fpage>9</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>