Çok kriterli karar verme yöntemi ile yazılım geliştirme metodolojisi seçimi
Software development methodologies selection with multi criteria decision making
Yazar: FURKAN ANARAL
Danışman: PROF. DR. TUFAN VEHBİ KOÇ
İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Endüstri Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2012
Konu: Endüstri ve Endüstri Mühendisliği = Industrial and Industrial Engineering
Dizin: Analitik hiyerarşi süreci = Analytical hierarchy process ; Analitik hiyerarşi yöntemi = Analytical hierarchy method ; Yazılım geliştirme = Software development ; Çok kriterli karar verme = Multi criteria decision making

Özet:
Bu çalışmada, öncelikle tezin ana konusu olan yazılım geliştirme metodolojileri ile ilgili teorik bilgiler verilmiştir. Sonrasında yazılım geliştirme metodolojileri arasından seçim yapılmasını sağlayacak karar verme teknikleri ile ilgili genel teorik bilgiler verilmiştir. Teorik kısımda ağırlıklı olarak kıyaslaması yapılacak alternatifler olan scrum ve waterfall metodolojileri üzerinde durulmuştur.Tez çalışmasında genel olarak yazılım geliştirme metodolojileri anlatılmıştır. Yazılım geliştirme metodolojileri anlatıldıktan sonra tezin amacını oluşturan problem tanımı yapılmıştır. Bu problemin çözümü için çok kriterli karar verme yöntemleri kullanılacaktır. Bu nedenle, çok kriterli karar verme yöntemlerinden ayrıntılı şekilde bahsedilmiş ve karşılaştırma kriterlerinin tespiti, ağırlıklandırması ve önceliklendirmesinde kullanılacak olan Analitik Hiyararşi Prosesi yöntemi anlatılmıştır.Teorik bilgilerden sonra, tezin uygulama bölümünde bilişim sektöründe kullanılan scrum ve şelale (waterfall) metodolojilerinin Analitik Hiyerarşi Prosesi yöntemi kullanılarak ağırlıkları belirlenmiş, önceliklendirmeler yapılmış ve alternatiflerden birinin seçilmesi amaçlanmıştır. Kriterlerin belirlenmesinde 2 adet anket çalışması yapılmıştır. Anketler yardımıyla bu karşılaştırmada kullanılacak faktörler ve alt faktörler belirlenmiştir. Anket çalışmasına, çalıştıkları şirketin uygulama geliştirme bölümünde çalışan ve her iki metodolojide de tecrübe sahibi kişiler katılmıştır. Sonuçta, 61 faktör belirlenmiştir. Daha sonra, bu faktörler 4 ana faktör ve 57 alt faktör olarak ayrılarak model oluşturulmuştur. Konusunda uzman 5 kişinin ortak görüşüyle, oluşturulan modeldeki faktörler ikili karşılaştırma metodu ile ağırlıklandırılmıştır. Bu ağırlıkların tutarsızlık oranları da incelenerek modelin faktör ağırlıkları belirlenmiştir. Sonraki aşamada, Scrum ve waterfall metodolojileri 1-5 skalasında uzman 5 kişi ile yapılan toplantılar sonucunda puanlandırılmıştır. Analitik Hiyerarşi Prosesi modelinin analizi ve faktörlerin karşılaştırılması için Super Decision paket programı kullanılmıştır. Programda ortaya çıkan raporlar ve sonuçlar analiz edilerek değerlendirilmiş ve öneriler sunulmuştur. Super decision programında model oluşturulduktan ve öncelikler belirlendikten sonra model excele aktarılmış ve yapılan puanlamalar sonucunda excelde gerekli hesaplamalar yapılarak alternatiflerin kıyaslamaları yapılmıştır. Ortaya çıkan bu sonuçlar üzerinden kurulan model ve karşılaştırması yapılan yazılım geliştirme metodolojileri ile ilgili analizler ve değerlendirmeler yapılmıştır. Metodolojilerin daha iyi hale getirilmesi için önerilerde bulunulmuştur. Bu şekilde tez çalışması sonlandırılmıştır.

Abstract:
In this study, primarily theorical informations are given about software development methodologies that is the main subject in this thesis. After that, general theorical informations are given about decision-making techniques that will be used in the selection of software development methodologies. In theorical section, scrum and waterfall software methodologies that are the comparison alternatives in this thesis are elaborated mostly.Generally software development methodologies are explained in this thesis. Problem description that is generated the objective of thesis is made after the software development methodologies are explained. To solve this problem, the multi criteria decision making will be used. Because of this, the multi criteria decision making is described detailed and also analytical hierarchical process method is described that will use for fixing the comparison criterion, weighting and prioritization.After the theorical informations, in the application section in this thesis scrum and waterfall methodologies comparison with using analytical hierarchical process method and select one of these alternatives is the main objective. Factors and lower factors in this comparison are determined with the help of surveys. The experts that work at application development section in the firm and have experience in these software methodologies join these surveys. Eventually 4 main factors and 57 lower factors are determined. To analyze weights of factors, pairwise compare method in analytical hierarchical process is used with the help of consensus of five experts. The basic inconsistency ratios are analysed and weighted factors are designed. In the next step, scrum and waterfall methodologies are given points in 1-5 scale. For analysis of analytical hierarchical process model and pairwise comparing of upper and lower factors, Super Decision software program is used. The reports and the results in this program are analysed and considered and new suggestions are offered. After the comparison model is fixed in super decision program , comparison of alternatives is made in excel program.Software development methodologies include construction, planning and control of an information system?s development process. Software development methodologies have an important place in especially information technology industry. Also, it is the most prefered scrum and waterfall methodologies by companies.Scrum has been improved by Jeff Sutherland and Ken Schwaber during the middle of 1990s. It is a methodology which is applied and leads to success in the projects that presents a high level of uncertainty.Waterfall methodology that is mentioned above is the first software development methodology. In 1970s, Winston W. Royce wrote an article that includes the waterfall methodology. It has been used by many companies and corporation. The information technology industry has improved day by day and it is a sector that companies spend lots of money.The decision, which is about to choose the most efficient methodology , directly affects the growth rate of the companies. It is necessary that companies accomadate to technological development and work fast and efficiently. At the same time, they have to provide smooth and quality service. Therefore, they can live up to the expectations of users. To do this, they should choose a methodology which is appropriate to their own companies and sector. As a conclusion, the subject of thesis includes the problem is which software development methodology is chosen.In the thesis study, the multi criteria decision making methods are used to the comparison of these two methodologies. The theoretical information about Decision-making and multi-criteria decision making methods will be introduced. Analytical Hierarchy Process that is a multi criteria decision making methods will be used for selection of the software development methodology that is the problem of this thesis.The reason for choosing the method of Analytical Hierarchy Process is using both objective and subjective evaluation criteria . Another reason is testing consistency of evaluation, in particular through the substance to which a large number of alternatives by the decision maker to apply a very important decision. Users will also have to include information on the Analytic Hierarchy process are evaluated and measured data will be easily applied. In addition, the fact that the information are acquired from users are evaluated and measured data provides the Analytical Hierarchy Process will be easily applied. The other factor about why Analytical Hierarchy Process chosen is the written numerous articles and thesis about this method .This provides to vary from others. The main advantage of the method is understanding is easier than others. Also, it does not include unnecessary mathematical operations and it directs multiple criteria easily. Analytical Hierarchy Process is also explained detailed in this thesis.In the application of Analytical Hierarchy Process criterias which are used to comparison of methodologies will be determined and also, classification criteria and priority levels will be determined. After establishing comparison model, methodologies will be compared in excel program by using these informations. The application will be done in a company which is 75 rank in first 500 information technology companies. Also , the company has workers more than 500 and it applies both scrum and waterfall methodologies.In the part of application , firstly the informations are given about scrum and waterfall from software development methodology. After the general structure, process , rules, roles and important points of scrum and waterfall methodologies are emphasised, applied questionnaire studies will be explained. The determination of factors which will be used for the comparison of these methodologies are enabled with questionnaire studies. After key factors and other factors are determined, by the method of Analytical Hierarchy process the comparison of software development methodology model will be established and it will be transferred to super decision program. levels of priority and weighting factors will be done by five expert person in super decision program. The priorities will be determined by comparing between 1-9 scale factor. After this decision, model home priorities list will be transferred to excel program. Scrum and waterfall methodologies are evaluated between 1-5 scale by five experts? opinion. According to consequences of evaluation, both methodologies will be compared and the analysis of results will determine which methodology are chosen. After analysing this consequences, application study will be finished by giving suggestion.Application study was applied in a company which is in information technology industry and it provides software to one of the most important bank of Turkey. Also, this company has ranked among the top 500 Information tchnology companies and studied not only scrum but also waterfall methodologies. The workers of the company support to make the comparison model by using questionnare studies.In conclusion, necessary model has established for the comparison of software development methodology and in application study, the fact that scrum methodology is more productive than waterfall has reached. At the beginning of study, questionare study has applied and criterias has determined to compare scrum and waterfall methodologies. Afterwards, this criteria has arrenged as of main factors and other factor and the model has established. After the established model has transfered to super decision program, factors between 1-9 scale has compared each other with evaluation from five experienced people. Therefore, the final outcomes have reached by giving point between 1-5 scale on the model of scrum and waterfall methodologies.The factor of the highest priority level is cost and the second highest priority level factor is quality. Also the factor of the lowest priority level is scope and the second lowest priority level factor is time. Process costs are the highest priority level factor in the subfactors of the cost factor. The position of the team is the lowest priority level factor in the subfactors of the scope factor.When factors of second level is analysied, testing cost has the highest priority level in process cost. Software cost has the highest priority level in outside source. Test easiness has the highest priority level in software qualit factor and usability has the highest priority level in analysis-design quality. In delivery time factor, testing time has the highest priority level and in time planning factor, high level projects delivery time has the highest priority level. Change density of Project needs has the highest priority level in the external factors of the scope. Aim of the customer demands has the highest priority level in the internal factors of the scope. Also, the lowest priority level in the position of the team is the number of team members.In conclusion, according to the outcomes of evaluation , scrum methodology has higher ratio than waterfall in many different areas. The ratio in the process cost factor is %77-%51, in the outsource costs %77-%62. Also, in the software quality factor, the ratio is %83-%73. %96-%63 is the ratio of the analysis-design quality. Delivery time factor has %90-%50 ratio. The ratio of the time planning is %85-%55. External factors of th scope has %85-%58 ratio. The internal factors of the scope has %86-%59. The position of the team has %82-%68 ratio. In the main factors; the ratios are 92%-66% in quality main factor, 89%-51% in time main factor, 85%-60% in scope main factor, 77%-54% in cost main factor. According to the general evaluation, ratio is 85%-58%. Therefore, according to the multi criteria decision making methods, scrum is preferred software methodology.The firm in the application has a %85 success rate with the scrum methodology. They are not experinced in scrum but they can raise this %85 ratio in time. The firm works with waterfall methodology last ten years and has some habituations becaus of this reason. They get used to scrum methodology. This thesis also show them and the other firms in the information technology industry their deficiency. Suggestions in the application part will be usefull for the information technology industry.