Decision Framework for Selecting a Suitable Software Development Process
Total Page:16
File Type:pdf, Size:1020Kb
DECISION FRAMEWORK FOR SELECTING A SUITABLE SOFTWARE DEVELOPMENT PROCESS Delft University of Technology Faculty of Technology, Policy and Management Systems Engineering, Policy Analysis and Management (SEPAM) August, 2009 By Itamar Sharon 2 DECISION FRAMEWORK FOR SELECTING A SUITABLE SOFTWARE DEVELOPMENT PROCESS SPM 5910 Master Thesis Faculty of Technology, Policy and Management Section: ICT By Itamar Sharon Student Number: 1192922 August, 2009 Graduation committee: M. dos Santos Soares (first supervisor) Dr. J. Barjis (second supervisor) Dr.ir. J. van den Berg (section professor) C. Bergman (Operations and IT Banking ING supervisor) 3 4 PPREFACE This Thesis report has been written in the period of February – August 2009. In this report I describe the research I have conducted during my internship at Operations and IT Banking ING (OIB ING) which is the final facet of my MSc education in Systems Engineering, Policy Analysis and Management at the faculty of Technology, Policy and Management (TPM), Delft University of Technology. Performing this research and writing this Thesis was, at some periods, a struggle and intellectual challenge. However, most of the times, I felt delighted of the work that I did and the contribution it will finally make. For this research, I could not have wished for a better environment to perform in. The department in which I was stationed (Solution Delivery Centre Call Face NL) was very comfortable as a research setting. I experienced its employees as flexible, interested and most of all very helpful. The most difficult aspect of this graduation project was to conduct it individually. In the entire MSc education programme, every project consisted of multiple project members. I got quite used to working in a collaborative setting, and I therefore expected some difficulties along the way of this individual project. However, the employees at OIB ING made me lose this feeling. They would gladly make time for me to discuss and reflect on my research and therefore make me feel welcome. I would like to thank most of all Christien Bergman (supervisor and part of the graduation committee). The enthusiasm and help she showed me was the basis for the work I did. Furthermore, I would like to thank Jeroen Hendriks for providing me the opportunity to conduct this research. Finally I would like to thank all the employees at SoDC Call Face NL for making the internship such a pleasant experience. I am also very grateful to the supervisors at the Delft University of Technology. Michel dos Santos Soares (first supervisor, section Information and Communication Technology) took all the time I needed for discussing problems and asking questions. I could not have wished for a better first supervisor. Christien, Michel, together with Joseph Barjis (second supervisor, section Systems Engineering) and Jan van den Berg (chairperson, section Information and Communication Technology), provided a great graduation committee. For that, I am very grateful. 5 SSUMMARY Software development processes intend to help project teams in organizing and structuring software projects. These processes are based on three generic models – the sequential model, the evolutionary model and the component-based software model. Software projects can differ in size, complexity and maturity. To cope with these software projects, software development processes are developed since the 1960’s. Many different and similar software development processes exist. Large organizations involved in developing software, struggle with the usage of processes. Even more important, many large organizations struggle in completing software projects on time and within budget. An example of such a large organization is OIB ING. In this organization only two software development processes are in use. These are the Waterfall model and the Rational Unified Process (RUP). This organization is aware of the fact that projects are not as successful as they wish. Furthermore, they know that the Waterfall model cannot cope with complex and uncertain projects. At this point in time, choosing a software development process is often based on previous experiences and organizational standards. However, because of the large amount of available software development processes and the large differences that could be present between each individual software project, the decision of which process to use should depend on the project at hand. For many organizations, as well as for OIB ING, analysis of all processes and even more important, the characteristics of each new project, is very time consuming. Therefore, choosing a software development process that is known to the organization and familiar for all employees, is often seen to be an appropriate decision. Because this manner of approaching software projects cannot be seen as effective, this research is conducted. This research is focused on designing a framework which combines the available software development processes with the project at hand. By using this framework, project managers can select the most appropriate software development process based on the project’s characteristics. The main research question that is answered in this thesis report is: “ What decision framework will assist project managers in large organizations in choosing a suitable software development process?” A combination of case study, literature research, interviews with users and experts, and design was used to develop this framework. To develop the framework, two sets of information were imperative: characteristics, advantages and disadvantages of software development processes and the characteristics that define software projects and influence the suitability of the processes. An analysis was performed of eight software development processes – the Waterfall model, RUP, Spiral model, V-model, Extreme Programming (XP), Scrum, the Dynamic Systems Development Method (DSDM) and Feature Driven Development (FDD). These processes represent the traditional processes, the agile processes and the processes in between. The second set of information needed for this framework was an overview of characteristics of software projects executed at OIB ING. By conducting interviews and analyzing literature and lessons learned documents, characteristics were found. By distributing a survey among working personnel at OIB ING the first list of characteristics was validated and adjusted where needed. The final characteristics are: Project size, team size, requirements maturity, team relationship, client’s commitment, scope clearness, risk clearness, development stability, stakeholders flexibility, method of contracting and outsourcing. 6 Based on these findings a framework was developed. The information regarding the software development processes was mapped on the characteristics of software projects. By scaling the software projects from 1 to 5 (for example: Project Size can be very small, thus 1, or the Project Size can be very big, thus 5) it was possible to analyze the suitability of each process on each scale. This formed a framework for selecting a suitable software development process for the project at hand. The framework consists of a questionnaire to be filled in by the user. This shows the five scales of each characteristic. By filling in these characteristics, the software project of interest is analyzed. Based on this project a certain process (or processes) is (are) concluded to be most suitable. To assist the users, the calculation tab is included, which shows the scores of the processes on each individual characteristic, and an explanation tab of the framework and one with all processes. The findings in this research, a decision support framework, were based on a case study executed at OIB ING. However, this framework can be used for all market segments and organizations which are involved in developing software. By users and experts this decision framework is concluded to be suitable and very useful. 7 CCONTENTS 1. INTRODUCTION ...................................................................................................................... 12 2. RESEARCH DEFINITION ........................................................................................................... 14 2.1 Problem description ............................................................................................................... 14 2.2 Research questions ................................................................................................................ 14 2.3 Research methodology .......................................................................................................... 15 2.4 Research environment ........................................................................................................... 17 2.5 Processes................................................................................................................................ 22 3. THEORETICAL BACKGROUND ON SOFTWARE PROCESSES .................................................... 24 3.1 The Waterfall model................................................................................................................... 24 3.2 The Rational Unified Process ...................................................................................................... 26 3.3 The Spiral model ......................................................................................................................... 31 3.4 V-model .....................................................................................................................................