Çevik yazılım geliştirme sürecinde kritik başarı faktörlerinin belirlenmesi ve önceliklendirilmesine yönelik bir örnek çalışma
Determination and prioritization of the critical success factors agile software development process: A case study
Yazar: ERCAN DÖNMEZ
Danışman: DOÇ. DR. ADEM KARAHOCA ; ÖĞR. GÖR. DİLEK KARAHOCA
Bahçeşehir Üniversitesi / Fen Bilimleri Enstitüsü / Bilgi Teknolojileri Ana Bilim Dalı
Derece: Yüksek Lisans, 2009
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Modern dünyanın tüm alanlarında yazılım çok önemliyken, yazılım geliştirme süreci ele alındığında, mükemmel olmadığı görülür. Son zamanlarda yazılım geliştirmeyi geleneksel yöntemlere göre yeni ve farklı şekilde yapan, çevik yazılım geliştirme yöntemleri ortaya çıkmıştır. Çevik yazılım geliştirme süreci, iş süreçlerini karmaşa ve detayları azaltarak desteklemekte böylece hızlı, kolay ve etkin olarak geliştirmeyi hedeflemektedir. Fakat çevik uygulamalarının, geleneksel yöntemlere göre ne kadar etkin ve verimli olduğu ve başarı faktörlerinin neler olduğu pek bilinmemektedir. Çevik yöntemleri kullanan yazılım geliştirme projelerinde başarı hakkında birtakım bulgular olmasına rağmen bu konudaki araştırmalar akademik çevrelerde hala kısıtlı kalmaktadır. Bu tezde kantitatif yaklaşımla, çevik yazılım geliştirmede başarı için değişik öngörüler kullanarak kritik başarı faktörleri ve çevik yazılım geliştirme projelerindeki belli başlı temel uygulamaların kullanımı hakkında bütünleştirilmiş bir resim sağlanması amaçlanmıştır. İlk olarak mevcut literatür ve endüstri deneyimlerine dayanarak, potansiyel kritik başarı faktörleri ve çevik yazılım geliştirme projelerindeki temel uygulamalar tanımlanıp, bir liste halinde derlenmiştir. Daha sonra, bir anket yürütülerek, bu uygulamaları değişik durumlarda faydalı kılan belirli durumlar gözden geçirilerek, Bulanık Analitik Hiyerarşi Prosesi teknikleriyle ağırlıklandırılıp ve önceliklendirilmiş potansiyel kritik başarı faktörleri listesi hazırlanmıştır. Sonuçlar çevik yazılım geliştirme için yedi kritik başarı faktörü olduğunu göstermiştir. Bunlar;a)Sürekli kod entgrasyonu sağlayan entegre geliştirme ortamlarının kullanımı,b)Zengin ve hızlı geliştirme alt yapısı sunan yazılım çatılarının kullanımı, c)Veritabanı entegrasyonu sunan yazılım çatılarının kullanımı, d)Ön mimari modelleme, e)Ön ihtiyaç modelleme , f)Bakım yapılabilir tasarım, g)Evrimsel tasarımdır. Bu anket Avrupa çapında değişik ülkelerde, değişik projelerde yer almış yazılım geliştirme profesyonelleri arasından toplanan veriler dikkate alınarak hazırlanmıştır. Araştırma sonuçlarına göre, uygulayıcılara kendi yazılım geliştirme süreçlerini geliştirebilmeleri için bazı önerilerde bulunulmuştur. Bu tezin ana bulgularının belli bir uygulamasını uyarlarken bütün çevre ve şartlar önemli olduğu dikkate alınmalıdır. Bazı durumlar için, bazı uygulamaların amaca uymayabileceği anlaşılması gerekir. Fakat, belli uygulamaların özel kusurları diğer uygulamaların kombinasyonlarıyla azaltılabilir hatta ortadan kaldırılabilir.Anahtar Kelimeler: Çevik Yazılım Gelişitrme, Kritik başarı faktörleri, Çevik pratikler, Bulanık AHP.

Abstract:
While software is so important for all facets of the modern world, software development itself is not a perfect process. Agile software development methods have recently emerged as a new and different way of developing software as compared to the traditional methodologies. Agile software development aims at fast, light and effective development that supports customer?s business without being chaotic or rigous. However, little is known about how effective and efficient agile practices are over the traditional methodologies, and what their success factors are. There have been several disparate anecdotal evidences about the success of software development projects using agile methodologies and research in this subject is still scant in the academic circles. In this thesis, we aimed to provide a consolidated picture of the different predictors of agile software development success and investigated the critical success factors and usage of certain core practises of agile software development projects using quantitative approach. First of all, based on existing literature and industry experiences, a preliminary list of potential critical success factors and core practises of agile projects were identified and compiled. After that, by conducting a survey, we examine what makes these practices beneficial for certain situations and prepared weighted, prioritized list of possible critical success factors by using Fuzzy Analytical Hierarchy Process techniques. The results revealed that identifying seven critical success factors for agile software development projects: a) Using integrated development environments that can provide continuous code integration) Using Frameworks that can provide rich and rapid development infrastructure) Using Frameworks that can provide database integration, d) Pre-architectural modelling, e) Preliminary requirement modelling , f)Design for maintenance, g) Evolutionary design. This survey was conducted among software development professionals, gathering survey data from different kind of projects and different countries across the Europe. Based on the research results, we finally set up some recommendations for practitioners to reflect upon and improve their own software development process. The main findings of this thesis are important to consider the whole context when implementing a certain practice. For some contexts, certain practices do not fit for the purpose and this has to be realized. However, certain shortcomings of a specific practice might be reduced or even eliminated if implemented in combination with other practices.Keywords: Agile software development, critical success factors, agile practices, Fuzzy AHP.