Agile Software Develop- Ment in Sweden a Quantitative Study of Developers’ Satisfaction and Their Attitude Towards Agile Thinking
Total Page:16
File Type:pdf, Size:1020Kb
I NTERNATIONELLA H ANDELSHÖGSKOLAN HÖGSKOLAN I JÖNKÖPING Agile Software Develop- ment in Sweden A quantitative study of developers’ satisfaction and their attitude towards agile thinking Master’s thesis within Informatics Author: Oskar Fransson Patrick af Klercker Tutor: Mats Apelkrans Jönköping June 2005 I NTERNATIONELLA H ANDELSHÖGSKOLAN HÖGSKOLAN I JÖNKÖPING Agil systemutveckling i Sverige En kvantitativ undersökning kring utvecklares belåtenhet och deras attityd till agilt tänkande Filosofie magisteruppsats inom Informatik Författare: Oskar Fransson Patrick af Klercker Handledare: Mats Apelkrans Jönköping Juni 2005 Master’s thesis in informatics Title: Agile Software Development in Sweden: A quantitative study of developers’ satisfaction and their attitude towards agile thinking Authors: Oskar Fransson Patrick af Klercker Tutor: Mats Apelkrans Date: 2005-06-15 Subject terms: Agile software development Abstract Recent times have seen the emergence of agile software development methods, valuing flexibility, customer collaboration, and focus on the de- velopment team and working software rather than focus on tools and documentation. What is unknown is which type of software development method is really better than the other. This thesis consists of a historical overview of software development methods and an investigation of the level of satisfaction with different types of software development methods and the attitude towards the agile values. Through a quantitative study, Swedish software development organizations have been heard regarding these issues. The results, although not fully statistically supported, indi- cate that practisers of more traditional software development methods were slightly more satisfied with their methods than practisers of agile methods were, but the agile method practisers were instead more satisfied with how their method helped them in satisfying their customers’ wants and needs than the traditional method practisers were. Both types of software developers were more positive towards the agile values than their counterparts, but the practisers of agile software development methods were so to a greater extent. Magisteruppsats inom Informatik Titel: Agil systemutveckling i Sverige: En kvantitativ undersökning kring utvecklares belåtenhet och deras attityd till agilt tänkande Författare: Oskar Fransson Patrick af Klercker Handledare: Mats Apelkrans Datum: 2005-06-15 Ämnesord: Agil systemutveckling Sammanfattning På senare tid har agila systemutvecklingsmetoder trätt fram på markna- den, metoder som värderar flexibilitet, kundmedverkan och fokus på ut- vecklingsteamet och fungerande mjukvara snarare än fokus på utveck- lingsverktygen och dokumentation. Vi vet dock inte vilken typ av sy- stemutvecklingsmetod som verkligen är bättre än den andra. Den här uppsatsen består av en historisk översikt av systemutvecklingsmetoder och en undersökning kring graden av belåtenhet med olika typer av sy- stemutvecklingsmetoder och attityden till de agila värderingarna. Genom en kvantitativ studie har svenska organisationer som utövar systemutveck- ling tillfrågats angående detta. Resultaten är inte helt säkra, men anspelar på att utövare av mer traditionella systemutvecklingsmetoder var något mer nöjda med sin metod än utövare av agila metoder var, men de agila utövarna var istället mer nöjda med hur deras metod hjälper dem med att tillgodose kundernas behov och önskemål än de traditionella utövarna var. Båda typerna av systemutvecklare var mer positiva till de agila värde- ringarna än deras motsatser, men de agila metodutövarna var positiva till en större utsträckning. Table of Contents 1 Introduction............................................................................ 1 1.1 Background..................................................................................... 1 1.2 Problem........................................................................................... 2 1.3 Hypotheses ..................................................................................... 4 1.4 Purpose........................................................................................... 4 1.5 Demarcations and Focus................................................................ 4 1.6 Interested Parties............................................................................ 4 1.7 Disposition ...................................................................................... 5 2 Frame of Reference ............................................................... 7 2.1 Satisfaction ..................................................................................... 7 2.2 Confusion of Terms......................................................................... 8 2.3 Traditional Software Development Methods................................... 8 2.3.1 The Waterfall Model............................................................. 9 2.3.2 ISAC ................................................................................... 10 2.3.3 SASD.................................................................................. 10 2.3.4 JSD..................................................................................... 11 2.3.5 The SIS Reference Model.................................................. 12 2.3.6 The Spiral Model ................................................................ 12 2.3.7 The Direct Model................................................................ 14 2.3.8 Rational Unified Process.................................................... 15 2.3.9 OPEN ................................................................................. 19 2.3.10 OOS/UML........................................................................... 20 2.4 Agile Software Development Methods ......................................... 22 2.4.1 DSDM................................................................................. 22 2.4.2 Extreme Programming ....................................................... 24 2.4.3 Scrum ................................................................................. 27 2.4.4 FDD .................................................................................... 28 2.4.5 Crystal ................................................................................ 29 2.5 Microsoft Solutions Framework .................................................... 29 2.6 Two Categories of Software Development Methods .................... 31 2.6.1 Similarities between Traditional Software Development Methods ....................................................... 31 2.6.2 Similarities between Agile Software Development Methods.............................................................................. 32 2.6.3 Differences between Traditional and Agile Software Development Methods ....................................................... 33 i 3 Method.................................................................................. 37 3.1 Course of Action ........................................................................... 37 3.1.1 Selecting the Method ......................................................... 37 3.1.2 Formulating the Questions................................................. 39 3.1.3 Designing the Questionnaire.............................................. 42 3.1.4 Finding the Total Population .............................................. 42 3.1.5 Making the Selection.......................................................... 43 3.1.6 Collecting the Data............................................................. 44 3.1.7 Fusing the Empirical Findings............................................ 46 3.1.8 Analyzing the Empirical Findings....................................... 46 3.2 Trustworthiness............................................................................. 47 3.2.1 Objectivity........................................................................... 47 3.2.2 Reliability............................................................................ 47 3.2.3 Validity................................................................................ 48 3.2.4 Generalizability................................................................... 48 4 Empirical Findings .............................................................. 50 4.1 Percentage of Answers................................................................. 50 4.2 Diffusion of Methods ..................................................................... 51 4.3 Satisfaction with the Methods....................................................... 52 4.3.1 Developer Satisfaction with the Methods........................... 53 4.3.2 Customer Satisfaction with the Methods ........................... 55 4.4 Attitude towards the Agile Values................................................. 57 4.4.1 Good Tools versus Good Developers................................ 57 4.4.2 Customer Collaboration versus Requirements Specification....................................................................... 59 4.4.3 Following the Plan versus Being Flexible .......................... 60 4.4.4 Extensive Documentation versus Focus on Software ............................................................................. 62 5 Analysis................................................................................ 65 5.1 Hypothesis 1 ................................................................................. 65 5.2 Hypothesis 2 ................................................................................. 66 5.3 Hypothesis