=Paper= {{Paper |id=Vol-1483/6_Bildiri |storemode=property |title=Yazılım Projelerinde Başarısızlık: Kritik Başarı Faktörlerine Dayalı bir Vaka Çalışması |pdfUrl=https://ceur-ws.org/Vol-1483/6_Bildiri.pdf |volume=Vol-1483 |dblpUrl=https://dblp.org/rec/conf/uyms/DincerG15 }} ==Yazılım Projelerinde Başarısızlık: Kritik Başarı Faktörlerine Dayalı bir Vaka Çalışması== https://ceur-ws.org/Vol-1483/6_Bildiri.pdf
Yazılım Projelerinde Başarısızlık: Kritik Başarı
   Faktörlerine Dayalı bir Vaka Çalışması

                    Kıvanç DİNÇER, Vahid GAROUSI

              Yazılım Mühendisliği Araştırma Grubu (HUSE)
  Bilgisayar Mühendisliği Bölümü, Hacettepe Üniversitesi, Ankara, Türkiye

   {kivanc.dincer, vahid.garousi}@hacettepe.edu.tr



Özet: Tüm dünyada olduğu gibi ülkemizde de çok sayıda yazılım projesi ya
öngörülen bütçe ve süre sınırları aşılarak veya kullanıcı beklentileri tam olarak
karşılanmadan tamamlanabilmekte ya da tamamen başarısız bir şekilde
sonlanmaktadır. Bu konuyu daha sistematik bir şekilde analiz etmek için,
literatürde Kritik Başarı Faktörleri (KBF) adında bir tanım ortaya çıkmıştır. Bu
bildiride, bir kamu kurumu tarafından ihaleyle küçük bir yazılım şirketine
verilen ve sonuçta başarısız bir şekilde neticelenen bir otomasyon projesi vaka
çalışması olarak ele alınmakta, projenin başarısız olmasının kök nedenleri
tanımlı KBF’lere dayalı olarak analiz edilerek önemli noktalar
vurgulanmaktadır. Buradaki amacımız bu analizin sonuçlarını ve
tecrübelerimizi diğer yazılım mühendisleri ile paylaşarak, başka projelerin de
benzer sebeplerle başarısız olmasının önüne geçilmesini sağlamaktır.


Anahtar kelimeler: Yazılım mühendisliği; proje yönetimi; yazılım projelerinde
kritik başarı faktörleri; vaka çalışması / analizi


Abstract: A large number of software projects in Turkey, just like anywhere
else in the world, are completed by exceeding the specified budget and time
constraints and/or only partially meeting the user expectations (i.e., challenged),
or fails completely. A notion called Critical Success Factors (CSF) has emerged
in the literature to address the causes of project failures systematically. In this
paper, we present is a web-based software automation project of a public insti-
tution, which was undertaken by a small software house through a public ten-
der. We analyze the root causes of the failure in this software project based on
CSF's. We share our experience and the results of our analysis with other soft-
ware engineers through this paper, and we believe that this will help other soft-
ware engineers in preventing failures in other projects due to similar reasons.

Keywords: Software engineering; project management; critical success factors
in software projects; case study




                                         59
1      Giriş

Yazılım projelerinin başarılı bir şekilde tamamlanmaları tüm proje paydaşları için
kritik önem taşır. Maalesef dünyada olduğu gibi ülkemizde de çok sayıda yazılım
projesi geç, öngörülen bütçeyi aşarak ve/veya kullanıcının beklentilerini tam olarak
sağlamadan tamamlanmakta (challenged projects;) ya da tamamlanmadan iptal
edilmekte veya teslim edildiği halde kullanılamamaktadır (failed projects) [1, 2].
   1985’ten beri periyodik olarak yazılım projelerine ilişkin kapsamlı analiz raporları
yayınlayan Standish Group’un 2001 CHAOS raporuna [1] göre, projelerin sadece
%28’i başarılıydı yani istenen özellikler ve işlevlerle birlikte zamanında ve bütçesini
aşmadan teslim edildi. Projelerin %23’ü başarısız oldu yani ya tamamlanamadan iptal
edildi veya teslim edilmesine rağmen hiç kullanılmadı. %49’u ise zorlandı yani,
öngörülen zamandan geç, planlanan bütçesinin üstünde ve/veya gerekli özellik ve
işlevlerin daha azıyla teslim edilebildi. Yine CHAOS araştırmalarına göre [2] 2012’de
bu durum çok az iyileşmiştir: yazılım projelerinin sadece %39’u başarılı iken, %18’i
başarısız olmuş ve %43’ü ise zorlanarak tamamlanabilmiştir.
   Türkiye’de 2011 itibariyle yaklaşık 1,600 yazılım geliştirme firması bulunmaktadır
[3]. Türkiye yazılım sektöründe kısa sürede yüksek bir kapasiteye ulaşmış olsa da [4-
7], yazılım projelerinde dünyanın diğer yerlerindeki gibi tipik sıkıntılar ve
başarısızlıklar görülmekte, projeler genelde zorlanarak bitirilebilmektedir. Yazarların
tecrübelerine göre, özellikle kamu kurumları profesyonel destek almadan yaptıkları
özelleştirilmiş yazılım (custom software) hizmet alımlarında büyük sıkıntı
yaşamaktadırlar. Bu sıkıntılar teknik şartnamenin hazırlanmasın aşamasında
başlamakta, projenin icra edilmesi sırasında devam etmekte, projenin kabul veya ret
edilip kapanışına kadar sürmektedir.
   Bu çalışmada, küçük bir yazılım firması tarafından üstlenilen bir kurumsal
otomasyon yazılımının hikâyesi ele alınmıştır. Süreci ve sonuçları sistematik ve
objektif bir şekilde analiz etmek için literatürde önerilen ‘kritik başarı faktörleri’ [8-
11] adlı çalışma esas alınmıştır. Amacımız bu tecrübemizi ve analizimizin sonuçlarını
diğer yazılım mühendisleri ile paylaşarak, benzer semptomları gösteren, yani
başarısızlığa doğru giden, projelerin önceden tespit edilebilmesine yardımcı olmaktır.
   Bu bildirinin devamı şu şekilde yapılandırılmıştır. İkinci bölümde ilgili çalışmalar
sunulmuştur. Üçüncü bölüm araştırma yönteminin detaylarını ve tasarımı
içermektedir. Dördüncü bölümde vaka çalışmasının analiz ve sonuçları, beşinci
bölümde ise bulguların özeti ve geçerliliğe tehditler sunulmaktadır.


2      İlgili Çalışmalar

Literatürde, yazılım projelerinin başarı ve başarısızlığı konuları birçok araştırmanın
konusu olmuştur. Bu konuda analizleri daha sistematik kılmak için, Kritik Başarı
Faktörleri (KBF) (Critical Success Factors) adlı bir tanım ortaya atılmıştır [8-11].
   Reel [8], yazılım projelerinin başarı olması için önemli noktalar ve KBF’ler
önermiştir ve çalışmasında vurguladığı iki husus özellikle önem arz etmektedir:


                                             60
      “Proje başarısızlıklarının 10 işaretinden en az 7’si, tasarımın bir parçası dahi
       geliştirilmeden veya bir satır dahi kod yazılmadan önce belirlenebilir.”
      “Bir kalite sorununun var olduğunu anladığınız zaman, muhtemelen o sorunu
       düzeltmek için artık çok geç kalınmıştır.”

         Organizasyon faktörler                              Proje faktörleri

      Üst-düzey yönetim desteği                     Teknolojik belirsizlik
      Organizasyon kültürü                          Yazılım geliştire metodolojinin tipi
      Proje planlama düzeyi                         Proje karmaşıklığı
      Liderlik özellikleri (stilleri)               Aciliyet
      Vizyon ve misyon                              Proje boyutu
      Proje izleme ve kontrol                       Teknik değişikliklerin boyutu
      Değişim yönetimi becerileri                   Proje kritikliği
                                              +                                                          Proje başarısı
             Takım faktörleri                                                                Süreç
                                                                     -                           Bütçe
      Proje ekibinin taahhüdü                                                                   Zaman
      İç proje iletişim                                                                         Kapsam
      Proje ekibine destek/güven
      Proje ekibinin kompozisyonu        +                                                  Ürün
      Proje ekibinin proje konusunda                                                            Genel kalite
       uzmanlığı                                                                                 Fonksiyonel uygunluğu
      Proje ekibinin genel uzmanlığı                                                            Güvenilirlik
      Proje ekibinin yazılım geliştire                                                          Performans verimliliği
       metodolojileri ile deneyimi                                                               Işlerliğini (Operability)
                                              +                                                  Güvenlik
            Müşteri faktörleri                                                                   Uygunluk
                                                                                                 Bakilabilirlik (Maintainability)
      Müşterinin sürekli ilgilenmesi                                                            Aktarılabilirlik (Transferability)
      Müşterinin desteği                                                                        Kullanıcı memnuniyeti
      Müşteri eğitim ve öğretim                                                                 Takım memnuniyeti
      Müşteri deneyimi                                                                          Üst yönetim memnuniyeti


   Şekil. 1. Yazılım geliştirme projeleri için kritik başarı faktörleri tabanlı bir olasılık uyum
                          modeli (contingency fit model). Kaynak: [9]

    Ahimbisibwe ve arkadaşları [9] literatürde bulunan 148 makaleyi sistematik bir
şekilde analiz ederek, yazılım geliştirme projeleri için toplam 37 KBF tespit edip,
Şekil 1’de gösterildiği gibi bunları 3+1 sınıfa                 ayırmışlardır: Müşteri
Organizasyonuyla ilişkili faktörler, Geliştirici Ekiple ilişkili faktörler, Kullanıcıyla
ilişkili faktörler. Sonradan Proje Özellikleriyle ilişkili faktörleri de bunlara
eklemişlerdir. Ayrıca KBF’ler ile proje başarısını eşleştirmek için bir olasılık uyum
modeli (contingency fit model) önermişlerdir.
    Akkermans ve van Helden [10] yazılım projelerinde kısır ve besleyen döngülere
(vicious and virtuous cycles) odaklanmışlar ve örnek olarak bir Kurumsal Kaynak
Planlama (Enterprise resource planning, ERP) Sistemi’nin üzerinde KBF’lere dayalı
bir vaka çalışması raporlamışlardır. Bir çalışma da, Chow ve Cao’nun çevik yazılım
geliştirme modeline (agile methods) özel olarak bir takım KBF’ler önerdikleri ve
onları bir vaka çalışması çerçevesinde değerlendirdikleri çalışmadır [11].




                                                              61
3          Araştırma Yöntemi ve Tasarımı

3.1        Çalışma Kapsamındaki Proje ve Yüklenici Firma Özellikleri
Çalışma kapsamındaki proje, bir kamu kurumu tarafından1 ihale yoluyla bir yazılım
firmasına verilen kurumsal otomasyona yönelik bir yeni sistem geliştirme (green-
field) projesidir. Hedeflenen sistem, kurumun sayıları binlere varan iç paydaşlarının
kullanımına yönelik web-tabanlı bir yazılımdır.
    Müşteri kurum, yeni sisteme geçişle ilgili üst yönetim süre baskısı yaptığından
dolayı projenin azami 6 ayda tamamlanmasını ve bütçe kısıtlarından dolayı da projede
asgari 3 kişilik bir ekibin çalışmasını öngörmüştü. İstekli firmaların daha önce benzer
bir kurumun eşdeğer bir otomasyon projesini tamamlamış olması şartını getirerek süre
ve işgücü konusundaki risklerini gidermeye çalışmıştır. Kurum iki sene kadar önce
ihaleye çıkmış, proje en düşük teklifi veren bu bir yazılım firmasına verilmiştir.
    Projenin üç safhası vardı: (1) Firmanın elinde mevcut hazır sistemin kurulması ve
kuruma adaptasyonu, (2) Kurumun farklı veritabanlarında ve Excel/Access ortamında
tutulan verilerinin yeni sistemin veritabanına aktarımı, ve (3) Sistemin müşteri
kurumun tüm gereksinimlerini karşılayacak şekilde genişletilmesi. Bunlar aynı
zamanda yüklenici firma için hak ediş aşamalarıydılar.
     Toplam süresi 6 ay olan bu projede birinci safhanın ilk ay içinde, ikinci safhanın 2
ay içinde ve üçüncü safhanın ise son 3-4 ayda icra edilmesi öngörülmüştü. Yüklenici
birinci aşamayı zamanında tamamladı ve birinci hak edişi aldı. Ama veri aktarımında
takıldı ve bu safha 6 ayın geri kalanı boyunca sürdü. Firmanın talebi üzerine firmaya
6 ay ek süre verildi. Bu süre de yazılım altyapısının (framework) tekmili, veri aktarma
çalışmaları ve biraz da arayüz tasarımları ile geçti. Firma üçüncü bir 6 ay süre istedi
ama müşteri kurum bu sefer sadece 3 ay ek süre verip kabule girdi.
    Kabul muayene komisyonu 5 tecrübeli kişiden oluşuyordu, birisi yazılım
mühendisliği ve proje yönetimi pratikleri konusunda tecrübeli bir profesyonel, diğer
dördü ise ikisi yazılımcı temelli olmak üzere alan uzmanıydı. Gereken hallerde kabul
muayenesine ilgili birimlerden diğer alan uzmanları da davet edildi.
    Kabul muayenesi için ilk aşamada bir değerlendirme tablosu (Tablo 1) yapıldı.
Kabul muayene raporunda, yapılacak değerlendirmeler dört bölüme ayrıldı:
     Fonksiyonel maddelerin değerlendirilmesi
     Fonksiyonel olmayan (non-functional) maddelerin değerlendirilmesi
     Dokümantasyon / plan ve geliştirme aşamalarının değerlendirilmesi
     GUI özelliklerinin değerlendirilmesi




1
    Gizlilik sebeplerinden dolayı, yazarların bu bildiride proje hakkında teşhis edilebilir detaylar vermeleri
    mümkün değildir.

                                                        62
           Tablo 1. Kabul-muayenesinde kullanılan değerlendirme tablosu örneği
 Md.   Ref .   Madde Başlığı    Sınanacak Hususlar /       Kabul    Tespit Edilen Eksikler /
 No    No                       Örnek Sınama               Puanı    Hatalar
                                Soruları                   (1..5)
 9.1           Veri Sözlüğü –                                       Firmaya teslim edilen ve
               Kodlu Alanlar                                        EK-2’de işaretlenen
         4.1   Veri Sözlüğü     Kodlu Alanlar ile ilgili            dosyalardaki içeriğin
        14.4   Kısaltmalar      veri dosyaları firmaya        1     yazılımda kodlu alanların
               Tablosu          teslim edilmiştir.                  tasarımında kullanılmadığı
        16.1   Veri Gruplama    Bunların aktarımı                   anlaşılmıştır.
               Çalışmaları      kontrol edilecektir.


   Her bir teknik şartname maddesi için, maddenin Komisyon tarafından
değerlendirilip değerlendirilmeyeceği (idari içerikli maddeler değerlendirilmemiştir),
değerlendirilecekse sınamanın nasıl yapılabileceğine ilişkin notlar önceden hazırlandı.
Puanlamada şu kriterler kullanıldı: 1 (tam başarısız), 2 (oldukça başarısız), 3 (kabul
edilebilir ama majör düzeltmeler lazım), 4 (kabul ama minör düzeltmeler lazım), 5
(tam kabul). Bu şekilde Komisyon üyeleri kendi değerlendirmelerini sayısal bir değer
üzerinden sunabildiler. Komisyon raporunda her bir madde için son puan
belirlenirken, üyelerin verdiği puanların ortalamaları alındı ya da konuşularak birlikte
konsolide edildi.
   Kabul muayenesi sırasında alan uzmanlarının ve potansiyel kullanıcıların
Yüklenici’ye sorduğu veya var olup olmadığını kontrol ettiği birçok hususun sistemde
mevcut olmadığı anlaşıldı. Sonuçta Yüklenici kabul muayenesini geçemedi, harcanan
süre planlananın 2.5 katına (planlanan: 6 ay, uzatmalarla birlikte gerçekleşen süre: 15
ay) ulaşmasına rağmen, şartname maddelerinin üçte birinin hiç, üçte birinin ise büyük
ölçüde karşılanmadığı tespit edildi. Müşteri Kurum maalesef projeyi bu şekilde
sonlandırmak zorunda kaldı ve firmaya ödenen hakkedişin faiziyle geri alınması için
hukuki işlem başlatıldı.
   Bir vaka çalışması olarak, bu makalenin devamı sistematik bir yöntem kullanarak
bu projenin başarısızlık sebeplerini bulmayı hedeflemektedir.


3.2    Araştırma Yöntemi
Araştırma yöntemi olarak deneysel (empirical) yazılım mühendisliği yöntemlerinden
olan keşif ve açıklayıcı vaka çalışması (exploratory and explanatory case study) [12]
uygulanmıştır. Yazarlarımız bu konuda uluslararası birikime sahiptir. Bu tür vaka
çalışmalarında amaç bir durum ya da bir sorun için çoğunlukla nedensel ilişki
şeklinde açıklama aramak ve yeni araştırmalar için fikir ve hipotezler üretmektir [12].
   Araştırmamızın amacı Ahimbisibwe ve arkadaşlarının [9] Kritik Başarı Faktörleri
(KBF) sınıflandırmasını kullanarak, çalışma kapsamındaki projenin başarısızlık
sebeplerini sistematik şekilde bulmaktır. Bu hedef kapsamında, iki araştırma sorusu
ortaya konulmuştur:
 Soru 1: KBF esas alındığında bu projenin başarısızlık sebepleri nelerdir?
 Soru 2: Yapılacak çıkarımlarla benzer bir başarısızlığı diğer projelerde önlemek
     nasıl mümkün olur?


                                                63
4       Vaka Çalışma Analiz ve Sonuçları

4.1     Projenin Kritik Başarı Faktörlerle Değerlendirilmesi
Çalışma kapsamındaki proje Şekil 1’deki KBF modelini kullanarak yazarlar
tarafından dikkatle değerlendirilerek ve elde edilen sonuçlar Tablo 2, 3, 4 ve 5’te
gösterilmiştir. Orijinal çalışmada [9] önerilen 37 KBF’den, bu proje için uygun
gördüğümüz 23 faktör bu tabloda 0…4 arası (5-noktalı) bir Likert ölçeği ile
değerlendirilmiştir. Açıklamalar değerlendirme notlarının dayandığı gerekçeleri
içermektedir. Değerlendirmeler yazılım mühendisliği nicel ve nitel yöntemleri [12]
kullanılmak suretiyle, her iki araştırmacı (yazarlar) tarafından bağımsız olarak
yapılmış ve tartışılmak suretiyle konsolide edilerek not değerlendirmesinde öznellik
asgariye indirgenmiştir.
   Ayrıca, aynı kaynakta [9] sunulan proje başarı ölçütlerinin bu proje için
değerlendirmeleri Tablo 6’da gösterilmektedir. Yukarıda Bölüm 3.1’de proje ve firma
hakkında verilen bilgiler bu değerlendirmelerde göz önüne alınmıştır.

       Tablo 2. Müşteri organizasyonuyla ilişkili KBF’lere göre değerlendirme sonuçları
Faktörler         Not Açıklama
Üst-düzey          4  Çok yüksek / Kamu Kurumunun en üst düzey yöneticisi iki aylık periyodlarla,
yönetim               görevlendirdiği yardımcısı ise haftalık periyotlarla yapılan proje ilerleme
desteği               toplantılarına aktif katılım sağlamışlardır.
Organizasyon     4    Adaptif / esnek / Yüklenici küçük bir şirket olduğundan dolayı, şirket sahibi ve
kültürü               çalışanların kendi aralarındaki ilişki arkadaş gibiydi. İlişkilerde formalite ve bir
                      alt/üst ilişkisi gözlenmemiştir.
Vizyon ve        4    Önceden proje için oldukça iyi tanımlanmış vizyon ve misyon / Projenin başından
misyon                itibaren yeni otomasyon sisteminin kurumda yürütülen proje kapsamındaki tüm iş
                      ve işlevleri desteklemesi öngörülmüş idi. Üst yönetim tarafından bu otomasyon
                      sisteminin Türkiye’deki benzer kurumlar arasındaki en gelişmiş sistemlerden birisi
                      olması hedefleniyordu.
Proje planlama   1    Proje başlangıcında çok az planlama / Müşteri Kurum yeterli düzeyde proje
düzeyi                planlama yetenek ve alışkanlıklarına sahip değildi. Projeyi üç safhaya ayırarak
                      ihaleye çıktı. Yüklenicinin sadece sözleşme yükümlülüklerini yerine getirmek
                      amacıyla yaptığı az sayıda (<10) aktiviteden oluşan çok üst düzey bir proje plaı
                      yeterli gördü.
Proje izleme     1    Az (zayıf) / Proje planı az sayıda üst düzey aktiviteden oluştuğundan dolayı izleme
ve kontrol            ve kontrol noktasında da zafiyet oluşturdu.
                          Proje ilerleme toplantıları detaylı plan olmayınca daha çok bazı teknik
                      problemlerin tartışıldığı yapısal olmayan (unstructured/unsystematic) beyin
                      fırtınası (brainstorming) toplantılarına dönüşüyordu.
Değişim          1    Değişim yönetimi planlı ve sistematik değil (ad-hoc) / Yüklenici toplantılarda ve
yönetimi              çalışmalar sırasında kullanıcı taleplerini dinliyor ve yazılı talepleri alıyordu.
becerileri            Ancak bunları iş planına ekleyip eklenmediği veya eklendiyse yapılma durumu
                      kontrol altında tutulmadı, gözden geçirme toplantılarında irdelenmedi. Kurumun
                      yazılı olarak Yüklenici’ye ilettiği taleplerin analiz edilmeden ham bir şekilde
                      tutanaklarda kaldığı, kabul aşamasında ortaya çıktı.
                          Diğer yandan projenin ilk uzatmasının ortasında iki personelden biri ayrılmış
                      yerine yeni bir personel başlamış idi ama sistematik bir iş devri yapılmadı.
Toplam         15 (kazanılmış not toplamı) / 24 (azami not toplamı) = %63




                                                     64
               Tablo 3. Geliştirici ekiple ilişkili KBF’lere göre değerlendirme sonuçları
Faktörler           Not   Açıklama
Proje ekibinin       2    Orta / Yüklenicinin proje ekibi 3 kişiden oluşuyordu. Firmanın merkezi farklı bir
taahhüdü                  şehirdeydi. Şirket yöneticisi proje dışında genel şirket yönetimi ve iş geliştirmeden
                          sorumluydu, haftada bir kaç gün gelip müşterinin verdiği ofiste çalışıyordu,
                          vaktinin sadece bir kısmını projeye ayırabildi, tam zamanlı konsantre olamadı.
                          İkincisi şirket merkezinde çalışıyordu, vaktini daha çok yeni sistem altyapısını
                          geliştirme üzerinde harcadığı söylendi, kabul sırasında sahadaki projelerle ilgili
                          sistem desteğinden de onun sorumlu olduğu anlaşıldı. Üçüncü personel ise tam
                          zamanlı olarak Kurum personeliyle birlikte sistemin adaptasyonu üzerinde çalıştı.
İç proje             3    Yüksek / Küçük bir takım olmasından dolayı ekip üyeleri birbirleriyle yakın
iletişim                  çalışıyorlar ve iyi sözlü iletişim kuruyorlardı. Ancak bu iletişim hiçbir şekilde
                          sistematik veya kurumsal nitelikte değildi, bazı talepler kaybolabiliyordu.
Proje ekibine        3    Orta / İki ekip üyesinin de iş tanımı net idi, dolayıyla proje gerekleri
destek/güven              doğrultusunda kendi iş kalemleriyle ilgili tam yetki ve sorumluluk sahibi idiler.
Proje ekibinin       1    Ekip oluşumu geçmişteki tecrübelere dayanarak yapıldı, ama yine de iyi yapılmadı
kompozisyon               Proje şartnamesine göre projenin 1 + 2 kişilik bir ekiple yürütülmesi
uyumluluğu                öngörülmüştü. Yüklenici asgari elemanla işi bitirmeye çalıştı. Şirketin yöneticisi
                          zaman zaman aktif olarak veri aktarımı ile ilgili kod yazıyordu. Personelden birisi
                          sistem altyapısını (framework) geliştirmeye çalışıyordu. Diğeri ise firma sahibi ile
                          birlikte yazılım arayüzleri ve iş kurallarının gerçekleştirimi üzerinde çalışıyordu.
Ekibin proje     2        Orta / Şirket sahibi ve çalışanlardan birisi alana vakıf idiler, daha önce bu alanda
konusunda                 farklı projelerde çalışmışlardı. Diğer personel ise böyle bir işi ilk kez yapıyordu.
uzmanlığı
Ekibin yazılım   1    Çok az / Firmanın hiçbir personeli sistematik yazılım mühendisliği bilgisine sahip
mühendisliği          değildi. Proje boyunca bu konuda telkin edilen iyi pratikleri de uygula(ya)madılar.
bilgisi
Toplam         12 (kazanılmış not toplamı) / 24 (azami not toplamı) = %50

                 Tablo 4. Kullanıcıyla ilişkili KBF’lere göre değerlendirme sonuçları
Faktörler           Not   Açıklama
Müşterinin           4    Çok yüksek / Kullanıcılar haftada 1-2 iş gününü Yüklenici personeli ile çalışarak
sürekli                   ve mevcut sistemin ve verilerinin analizi ile ilgili Yüklenici’nin yapması gereken
ilgilenmesi               çalışmaları kendileri yaparak geçirdiler.
Müşterinin           4    Çok yüksek / Ortak toplantıların yanı sıra, yapılacak işlerin belirlenmesi, nasıl
desteği                   yapılacağının belirlenmesi, vb. gibi konuların firmaya aktarımı için Kullanıcıların
                          ayrıca çalışma yapmaları gerekti. Gereken tüm çabayı gösterdiler.
Müşteri BT’de    3        Yüksek / Yüklenici’ye destek olan ekipten bazıları alan uzmanı idiler fakat BT
bilgi ve                  konusundaki tecrübeleri kısıtlı idi. Ancak bir de kurumun BT departmanından
deneyimi                  olup, mevcut otomasyon projelerine katılmış olan çok yetkin kişiler de vardı.
Müşterinin       4        Çok yüksek / Bazı alan uzmanları 20 yıldan fazla tecrübeye sahipti, işe liderlik
kendi alanında            yapan müşteri temsilcilerinin ortalama tecrübesi ortalama 10 yıl civarındaydı.
deneyimi
Toplam         15 (kazanılmış not toplamı) / 16 (azami not toplamı) = %94

              Tablo 5. Proje özellikleriyle ilişkili KBF’lere göre değerlendirme sonuçları
Faktörler           Not   Açıklama
Teknolojik           1    Yüksek / Yüklenici daha önce benzer projeler gerçekleştirmişti. Ancak bu projede
belirsizlik               denenmiş yazılım altyapısını kullanmadı. Her bir müşteri için ayrı yazılım
                          geliştirmemek için yeni geliştirmekte olduğu jenerik ve özelleştirilebilen sistem
                          altyapısını (framework) kullanmaya karar vermişti. Muhtemelen internetten açık-
                          kaynak bir altyapıyı aldı ve uyarlamaya çalıştı. Bu altyapıyı kullanıcıların
                          isteklerine göre uyarlamaya çalışırken bu altyapının temel teknolojisine hakim
                          olmadığından dolayı bazı belirsizliklerle mücadele etmek zorunda kalmıştı.
                          Kurum da bunun getirdiği riskleri fark edemedi. Yüklenicinin harcadığı efor ve

                                                       65
                      zamandan bu teknoloji ve altyapıyı istediği gibi kullanamadığı sonradan anlaşıldı.
Yazılım           1   Hiç / Şirket hiçbir tanımlı biçimsel (formal) metodolojiye göre çalışmamıştı.
geliştire             Şartname’ye göre firmanın gereksinim dokümanı ve tasarım dokümanı
metodolojinin         hazırlaması ve testleri biçimsel olarak icra etmesi gerekliliği vardı. Ancak
tipi                  bunların hiçbirini yerine getirmemişti. Müşteri de bunlara gereken önemi
                      vermemiş, teslim edilmediği halde bunların arkasını aramamıştı.
                        Kabul aşamasında istendiğinde tasarım dokümanı olarak sadece veritabanının
                      mevcut halinden tersine mühendislik yoluyla üretilmiş E-R diyagramlarını teslim
                      etti. Bunlar alt düzey detay içeren tasarımlardı. Bu diyagramlar otomatik üretildiği
                      için gerçek alanları ve gerçek tabloları görebilmek mümkün değildi.
                        Firma teslim aşamasına kadar hep tasarsız/plansız (ad-hoc) test yapmıştı. Test
                      senaryoları ve test senaryo (case)’leri yoktu. Aslında doğal olarak gereksinimlerin
                      toplanması ve analizi aşamasında iş süreçleri çıkarılmadığı, kullanıcı senaryoları
                      veya kullanıcı durumları (use cases) yazılmadığı için, gereksinimleri belli olmayan
                      böyle bir yazılımın test senaryoları de yazıl(a)mamıştı. Dolayısıyla firma
                      yazılımın ne kadar çalışıp çalışmadığını kendisi de bilmiyordu.
Proje             1   Yüksek / Projede hem veriler hem de sürekli değişen ve seneden seneye veya
karmaşıklığı          kurumun bölümünden bölümüne farklı şekilde yorumlanıp uygulanan mevzuatın
                      tanımlı iş kurallarına dönüştürülmesinin zorluğu projenin karmaşıklığını
                      artırıyordu. Projede uzunca bir süre Yüklenici ve Müşteri Kurum tarafından veri
                      aktarımının kapsamı konusunda tartışılmıştı.
                        Kurumun elinde geçmişi 40 yıla varan geçmişe sahip verileri mevcut idi.
                      Verilerin son 10 yılı aktif, diğerleri pasif olarak kabul edilmesi gerektiği
                      görülüyordu. Ancak Kurum zaman zaman pasif veriye de ihtiyaç duyuluyor
                      olduğundan ve istatistiklerin tam olmasını istediğini belirterek bu verilerin
                      hepsinin aktarılmasını istemişti. Aktarım sırasında verilerin eskiye doğru gittikçe
                      çok sayıda eksik alan bulunduğu anlaşılmış, anlaşılmayan bir sebepten dolayı
                      Yüklenici tarafından diğer veriler analiz edilerek eksik alanlar doldurulmaya (!)
                      çalışılmıştı. Bu sırada hem veriler bozulmuş hem de çoğu yerde veritabanı
                      tablolarının birincil/ikincil anahtar ilişkilerinde ve zorunlu/tercihe bağlı alanlarda
                      sorunlara yol açmıştı. Daha doğrusu tüm alanlar tercihe bağlı alan olmuş
                      denilebilirdi.
                        İkinci olarak Kurumun verileri birbirinden bağımsız en az 4 veritabanına, hatta
                      bunlar da kendi içinde ikiye bölünebilecek olmasına rağmen, verilerin hepsi
                      birlikte/toplu olarak aktarılmaya çalışılmıştı. Eğer her bir bölüm üzerinde ayrı ayrı
                      çalışılsa idi, en küçükten başlamak üzere adım adım gidilebilir ve veri aktarımı 4-
                      8 farklı aktiviteye ayrılmış olarak planlanıp takip edilebilirdi. Veri aktarımıyla
                      ilgili faaliyetler her zaman tek bir aktivite gibi görülüp bu şekilde çalışıldı.
                      Dolayısıyla bu aktivite 2.aydan 15.ay sonuna kadar devam etmişti.
Aciliyet          2   Oldukça acil Özellikle üst yönetim ilk başta 6 ayda biteceğini umarak başladığı
                      projenin bir an önce tamamlanmasını ve kullanıma girmesini istiyordu.
                      Muhtemelen ihaleye çıkarken de – belki isteklilerle de görüşerek - en kısa süre
                      verilmek suretiyle bu amaç gözlenmişti. Birkaç küçük firma kabul edilebilir
                      olmamasına rağmen bu süreyi kabul ederek projeye teklif vermişti. Bu da
                      yönetimi 6 aylık sürenin makul olduğu konusunda daha da ikna etmişti.
Proje boyutu      2   Orta boyut (20 kişi) / Projede Kurum tarafındaki katılımcıları da göz önüne alırsak
                      yaklaşık 20 kişi katkı sağlıyordu. Bunlardan sadece 3’ü Yüklenici tarafındaydı.
Teknik            1   Gereksinimler çok sık değişiyor (% 80’dan fazla) / Kullanıcı gereksinimlerini
gereksinim            ifade eden şartnameden sistemin gereksinimleri çıkartılmamıştı. Gereksinim
değişikliklerin       analizi yapılmadığı için Kullanıcıların beklentileri önceliklendirilmemiş ve belki
boyutu                bazıları kapsamdan çıkartılmamıştı. Kullanıcıların beklentileri detaylandırılmadığı
                      için kabul muayenesi sırasında kullanıcıların sorduğu veya var olup olmadığını
                      kontrol ettiği birçok husus yazılımda mevcut değildi.
                        İlginç bir şekilde Yüklenici elinde mevcut altyapıyı – eski tecrübelerine dayalı
                      olarak – az bir eforla işi bitirebileceğini düşünmüştü. Müşteriye özel ciddi bir
                      uyarlama yapmayı planlamamıştı. Yazılımın arayüzlerinde kullandığı terminoloji
                      Kurumunkinden farklı idi, iş ve işlem sıraları kullanıcının alıştığından farklı idi.
                      Uzun yıllardır belli bir terminoloji ve oturmuş bir süreç olduğu için Kurum
                      kullanıcıları doğal olarak bundan vazgeçmek istemedi.

                                                    66
Proje kritikliği     1    Kritik / Mevcut otomasyon sistemi sınırlarına geldiği için bu projenin başarılı bir
                          şekilde bitmesi müşteri için çok kritik idi.
Toplam             9 (kazanılmış not toplamı) / 28 (azami not toplamı) = %32

                           Tablo 6. Proje başarı ölçütlerinin değerlendirmesi
Faktörler         Açıklama
                   Not
Bütçe             Tamamen bütçesi üzerinde (birkaç kat ek maliyet) / Başta 6 aylık bir bütçe ve 6 x 3 =
                    0
                  18 adam aylık bir bütçe ile başlanmıştı. Müşteri Kurum aradaki farkı ödemek
                  zorunda kalmasa da Yüklenici proje için 6x15 = 90 adam aylık iş yapmak zorunda
                  kaldı.
Zaman         0   Tamamen geç (birkaç aylar) / Yine zaman olarak 6 aylık bir öngörü ile başlayan
                  proje, 15 ay yani öngörülenden 2.5 kat daha uzun sürdü. Ve başarısız oldu.
Kapsam        1   Anlaşılan kapsamdım dışında (%25'ten fazla, %75’den az) / Kabul muayene
                  sonuçlarına göre yazılım şartname maddelerinin ancak %35’ini karşılayabildi.
Genel kalite  2   Orta / Komisyon yazılımın genel kalitesini 5 üzerinden 2-3 olarak değerlendirdi.
Fonksiyonel   2   Orta / Kabul muayene komisyonu yazılımın gerçekleştirilen fonksiyonlarının
uygunluğu         uygunluğunu 5 üzerinden 3 olarak değerlendirdi.
Güvenilirlik  1   Az / Kabul muayene sırasında gözlenen hatalar, yanlış hesaplamalar, ekrana çıkan
                  hata izleri, vb. yazılımın güvenilirliğinin oldukça düşük olduğunu gösterdi.
    Toplam 6 (kazanılmış not toplamı) / 24 (azami not toplamı) = %25


4.2      Kök-Neden Analizi (Root-Cause Analysis) ve Öğrenilen Dersler

Bölüm 3.2’de sorduğumuz Araştırma Sorusu 1’i bu bölümde cevaplamak için bu
projenin başarısızlık sebepleri belirlemeye çalışacağız. Bir önceki bölümde, projenin
durumunu kritik başarı faktörlerine (KBF) göre değerlendirdik. Tecrübelerimizi ve
analiz sonuçlarını diğer yazılım mühendisleri ile paylaşmak için, literatürdeki benzer
çalışmalar gibi (örneğin: [13]) kısa bir kök-neden analizi yapılacaktır.
   Çalışma kapsamındaki projede, Tablo 2, 3, 4 ve 5’te gösterildiği üzere, farklı
KBF’lerin başarı veya başarısızlığına etkisinin aynı olmadığı anlaşılmaktadır.
Başarısızlığa en çok etkisi olan faktörler, bu tablolarda 0 veya 1 notu alan KBF’lerdir.
O faktörleri Tablo 7’de listeleyip ve bunların üzerinde, ‘sebep-sonuç haritalama’
(cause mapping) [14] metodunu kullanarak, kök-neden analizi yapılmıştır.
Dolayısıyla, Tablo 7’de yer alan faktörleri kritik başarısızlık faktörleri olarak
adlandırabiliriz.

                     Tablo 7. Projenin başarısızlık sebeplerinin kök-neden analizi
Projenin başarısızlık       Kök-neden analizi
sebepleri
Proje başlangıcında         Yüklenici Firma başlangıçta çok az planlama yapmıştır. Müşteri bunu ihmal
yetersiz planlama           etmiştir. Firma yöneticisi, 20+ senelik yazılım tecrübesine rağmen, ekibinin
yapılmıştı                  plan-odaklı (plan-driven) bir yöntem izlenmesini sağlayamamıştır. Özellikle,
                            Proje-Yönetimi Bilgi Tabanı Kılavuzu (Project Management Body of
                            Knowledge, PMBOK Guide) [15] sunulan planlama yöntemlerinden “en iyi
                            uygulamalar (best practices)” kullanılmamıştır.
Proje izleme ve             Proje planı az sayıda üst düzey aktiviteden oluştuğundan dolayı izleme ve
kontrolü zayıftı            kontrol noktasında da zafiyet oluşmuştur. Müşteri yeterli takip yapmamıştır.
                            Proje ilerleme toplantılarında Yüklenici bir şekilde Kurum temsilcilerini çok az
                            işi kaldığına, altyapıdaki bazı problemleri aşarsa, hemen hemen tüm işin haftalar
                            mertebesinde biteceğine – hemen her toplantıda - inandırmayı başarmıştır.
                              Proje izleme ve kontrolü için PMBOK’ta [15] önerilen yöntemler sistematik bir

                                                       67
                         şekilde kullanılmamıştır.
Değişim yönetimi         Bu konuda, üç maddeyi tespit edilmiştir:
tasarsız/plansız              Personel devir yönetimi (staff turnover management)
(ad-hoc) şekilde              Gereksinimleri değişim yönetimi (requirements change management)
yapıldı                       Kaynak kod değişim yönetimi
                         Değişim yönetimi tasarsız yapıldığı için, değişiklikler projeye yüksek negatif etki
                         (change impact) yapmıştır. Örneğin, Yüklenici’nin tecrübeli bir personeli proje
                         ortasında projeden ayrılmış ve iş tecrübesi olmayan yeni bir eleman alınmıştır.
                         Bu değişimde, eski elemanın edindiği bilgiler yeni elemana çok az seviyede
                         aktarılmış ve neticede yeni elemanın projeye faydalı iş çıkarması zaman almıştır.
Proje ekip oluşumu       Mevcut Kamu İhale Kanunu yazılım alımı ihalelerinde çalışan sayı ve
iyi yapılmamıştı         özelliklerinin nitelendirilmesini / tanımlanmasını öngörmekle birlikte, bunların
                         sayısal olarak yeterli olup olmadığını değerlendirilmesi için bir enstrüman
                         içermemektedir. Buna ek olarak ayrılan ekip de tam zamanlı olarak
                         çalıştırılamayınca projeyi bitirmeye kafi gelmemiştir. Bu projenin
                         başarısızlığındaki en önemli faktörlerden birisi proje için öngörülen kaynakların
                         yetersizliğidir.
Proje ekibinin genel     Proje ekibinin genel yazılım mühendisliği ve iyi pratikler konusunda bilgili
yazılım mühendisliği     olmaları gerekiyordu. Bunlara önem verilmemiş, Kurum da gereken kontrolleri
bilgisi çok azdı         yapmamış ve işler tamamen ad hoc bir şekilde yürütülmeye çalışılmıştır.
Hiçbir yazılım           Projede tanımlı bir biçimsel yazılım geliştirme metodolojisine göre
geliştire metodolojisi   geliştirilmemişti. Bu da çoğunlukla, proje ekibinin genel yazılım mühendisliği
kullanılmamıştı          bilgisinin çok az olmasından kaynaklandı. Ayrıca, müşteri de bu konuda öyle bir
                         biçimsel yöntemin kullanılmasını zorlaması gerekiyordu.
Yüksek proje             Projede yüksek karmaşıklık seviyesini kontrol etmek için karmaşıklık yönetimi
karmaşıklığına karşı     (complexity management) yöntemlerinin kullanılması gerekiyordu. Sürenin
tedbir alınmamıştı       yeterinden az olması karmaşıklığın yönetilemeyişini daha da artırdı.
Gereksinimler            Başlangıçta      gereksinim      analizi    yapılmadığı       ve      gereksinimler
tanımlanmamış ve         önceliklendirilmediği için müşterinin birçok talebinin dikkate alınmadığı kabul
değişimi                 aşamasında anlaşılmıştır. Bunların birçoğu sonraki süreçte toplantılar ve
yönetilememişti          çalışmalar sırasında kullanıcılardan sözlü veya yazılı şekilde iletilmiştir. Bunlara
                         yönelik planlama yapılmadığı için firmayı zorlamıştır. Bu sorunu çözmek için,
                         gereksinim belirleme sürecinin iyi işletilmesi ve biçimsel değişim etki analizi
                         (change impact analysis) [16] yöntemlerinin kullanılması gerekiyordu.



5        Tartışma: Bulguların Özeti ve Tavsiyeler
Bölüm 4’de sunulan vaka çalışma analizlerimize dayalı olarak, bu bölümde başka
projelerin de benzer sebeplerle başarısız olmasının önüne geçilebilmesi için
bulgularımızın özetlerini ve tecrübelerimizi diğer yazılım mühendisleri ile
paylaşacağız.
   Şekil 2 bulguları özetleyerek projenin başarısızlık sebepleri ve ölçütlerini bir
sebep-sonuç (cause-effect) diyagramı olarak göstermektedir. Bölüm 4’de bahsedildiği
gibi, değerlendirmemize göre KBF’lere dayalı toplam not 51/92 = %55 hesaplandı.
Hâlbuki proje başarı ölçütlerinin toplam 6/24 = %25 hesaplandı. Bu durum projenin
başarı seviyesinin KBF’lere göre yapılan kestirimden daha düşük olduğunu
göstermektedir. Diğer bir deyişle, bağımlı değişken (dependent variable) olarak, bu
projenin başarı durumu, bağımsız değişkenler (independent variable) olan projenin
geliştirme KBF’lerine göre daha düşük olmuştur. Daha detaylı analiz edersek, Şekil
2’nin sol tarafında yer alan bağımsız değişkenlerin yarısı 3 veya 4 notu (iyi seviyede)
almış olmasına rağmen, sağ taraftaki bağımlı değişken (projenin başarı durumu)
düşüktür.

                                                     68
   Diğer bir deyişle, proje altyapı ve ortamına ilişkin faktörler arasında birçok faktör
(örneğin: müşteriye ve misyona ait faktörler) iyi seviyede olsa bile, görüyoruz ki proje
sonucu başarısız olmuştur. Bu bir meşhur atasözünü hatırlatmaktadır: “Kurunun
yanında, yaş da yanar”. Yani KBF’lerden bir kısmının bile kötü olması projenin
başarısız sonuçlanmasına yol açabilmektedir.
    Proje kritik başarı faktörlerine göre değerlendirme
      Bağımsız değişkenler (independent variables)

       Üst-düzey yönetim desteği                         4
       Organizasyon kültürü
       Vizyon ve misyon
       Proje ekibinin taahhüdü
       İç proje iletişim                                     Proje başarı ölçütlerinin değerlendirme
       Proje ekibine destek/güven                             Bağımlı değişkenler (dependent variables)
       Müşterinin sürekli ilgilenmesi
                                                                                                   4
       Müşterinin desteği
                                                                                                   3
       Müşterinin kendi alanında deneyimi
                                                                          Genel kalite            2
       Aciliyet                                          3
                                                                          Fonksiyonel uygunluğu
       Müşteri BT’de bilgi ve deneyimi
                                                                          Güvenilirlik            1
       Proje ekibinin proje konusunda uzmanlığı          2
                                                                          Kapsam
       Teknolojik belirsizlik
                                                                          Bütçe                   0
       Proje boyutu
                                                                          Zaman
       Proje ekibinin genel yazılım mühendisliği bilgisi 1
       Proje karmaşıklığı
       Proje ekibinin kompozisyon uyumluluğu
       Teknik gereksinim değişikliklerin boyutu
       Proje kritikliği
       Proje planlama düzeyi
       Proje izleme ve kontrol
       Değişim yönetimi becerileri
       Yazılım geliştire metodolojinin tipi              0

 Şekil. 2. Projenin başarısızlık sebepleri ve ölçütlerine ait neden-etki (cause-effect) diyagramı.

   Araştırma Sorusu 2’yi cevaplamak üzere, bu projenin başarısızlık sebeplerini diğer
projelerde önleyebilmek için aşağıdaki tavsiyeleri önermek istiyoruz:
    Bir projenin başlangıcında tüm ekibin (hem müşteri hem de firma) KBF’lerin
      hepsine dikkat etmesi gerekir. Çünkü KBF’lerin çoğu iyi seviyede olsa bile,
      birkaç tane düşük seviyede KBF, kolayca projenin başarısını riske
      atabilmektedir.
    Proje başarısızlığında sadece geliştiren firma ve ekibin sorumlu olmadığına
      ilişkin bir örneği bu projede de gördük. Müşteri bu projede tüm süreçte çok
      ilgilenmiş olduğuna rağmen, yazılım süreçlerine ilişkin disiplinle ilişkili birçok
      şartname maddesini yeterince zorlamamıştır. Ayrıca, müşteri proje izleme ve
      kontrolünün asıl işlevini yeterince ciddiye almamıştır. Dolayısıyla, yazılım
      geliştiren firma ile beraber müşteri de tüm sorumluluklarını, KBF’leri göz önüne
      alarak, yerine getirmelidir.




                                                       69
6       Sonuç ve Gelecek Çalışmalar

Bu bildiride, bir kamu kurumu tarafından ihaleyle bir yazılım şirketine verilen ve
sonuçta başarısız bir şekilde neticelenen bir otomasyon projesi bir vaka çalışması
olarak ele alınmış, literatürde tanımlı Kritik Başarı Faktörleri’ne (KBF) dayalı olarak
projenin başarısız olmasının kök-nedenleri analiz edilerek önemli noktalar
vurgulanmıştır. Umarız bu analizin sonuçları ve tecrübelerimiz diğer yazılım
mühendislerine, başka projelerin de benzer sebeplerle başarısız olmalarını önceden
öngörebilmekte fayda sağlar. Gelecekte yapılması planlanan çalışmalar arasında, bu
çalışmanın başka projelere daha uygulanıp, birden fazla sonucun birbiriyle
kıyaslanması bulunmaktadır.


Kaynaklar

[1] The       Standish     Group,     "Extreme      CHAOS,"        http://www.standishgroup.com/
     sample_research/showfile.php?File=extreme_chaos.pdf, 2001, Last accessed: Oct. 2014.
[2] The Standish Group, "CHAOS Manifesto 2013: Think Big, Act Small," 2013.
[3] G. Tirpançeker, "Türkiye Yazılım Sektörü ve Yazılımın Yarattığı Katma Değerler,"
     Stratejik          Düşünce            Enstitüsü,          http://www.sde.org.tr/userfiles/file/
     Gulara_Tirpanceker_SDE_2011Aral%C4%B1k-2.pdf, 2011.
[4] V. Garousi, A. Coşkunçay, A. B. Can, and O. Demirörs, "A Survey of Software Testing
     Practices in Turkey," in Turkish National Software Engineering Symposium (Ulusal
     Yazılım Mühendisliği Sempozyumu, UYMS), 2013.
[5] N. Sökmen, "Competency level of the software industry in Turkey and guidelines for
     enhancement of companies and the sector (in Turkish: Türkiye’de Yazılım Üreticilerinin
     Yetkinlik Düzeyi Firmaların ve Sektörün Gelişimi)," 2010.
[6] D. U. Güneş, "Software industry in Turkey," Turkish Software Industry Association
     (YASAD), http://yasad.org.tr/Content/UserFiles/YASAD_Presentation_ENG.pdf, 2010.
[7] Turkish Software Industry Association (YASAD), "Software: the new strength of the
     economy       (in    Turkish:     Yazilim:      ekonominin       yeni    kalkinma       gücü),"
     http://www.yasad.org.tr/Content/UserFiles/yasad_rapor.pdf, 2009.
[8] J. S. Reel, "Critical success factors in software projects," Software, IEEE, vol. 16, pp. 18-
     23, 1999.
[9] A. Ahimbisibwe, R. Y. Cavana, and U. Daellenbach, "A contingency fit model of critical
     success factors for software development projects," Journal of Enterprise Information
     Management, vol. 28, pp. 7-33, 2015.
[10] H. Akkermans and K. van Helden, "Vicious and virtuous cycles in ERP implementation: a
     case study of interrelations between critical success factors," Eur J Inf Syst, vol. 11, pp. 35-
     46, 03/08/print 2002.
[11] T. Chow and D.-B. Cao, "A survey study of critical success factors in agile software
     projects," Journal of Systems and Software, vol. 81, pp. 961-971, 6// 2008.
[12] P. Runeson and M. Höst, "Guidelines for conducting and reporting case study research in
     software engineering," Emprircal Software Engineering, vol. 14, pp. 131-164, 2009.



                                                  70
[13] K. M. Whitney and C. B. Daniels, "The Root Cause of Failure in Complex IT Projects:
     Complexity Itself," Procedia Computer Science, vol. 20, pp. 325-330, // 2013.
[14] L. N. V. Heuvel, D. K. Lorenzo, and W. E. Hanson, Root Cause Analysis Handbook: A
     Guide to Efficient and Effective Incident Investigation: Rothstein Associates Inc, 2008.
[15] Project Management Institute (PMI), A Guide to the Project Management Body of
     Knowledge, 5th Ed., 5th Ed. ed., 2012.
[16] S. A. Bohner and R. S. Arnold, 1996: IEEE Computer Society Press, Software change
     impact analysis.




                                              71