Method Tailoring in Agile Software Development Projects An Exploratory Case Study Lars Kråkevik Master of Science in Engineering and ICT Submission date: February 2018 Supervisor: Nils Olsson, MTP Co-supervisor: Torgeir Dingsøyr, IDI Norwegian University of Science and Technology Department of Mechanical and Industrial Engineering Preface This thesis concludes my five year master’s program in Engineering and ICT at the Norwegian University of Science and Technology (NTNU). The master thesis was conducted as an exploratory case study in the course Project and Quality Management (TPK4920) over a period of one semester, and have been a very enlightening and rewarding process. Throughout the study program I have taken a broad selection of courses. In several of these, agile software development have been a prominent theme that caught my interest. Ifurtherpursuedthisinaspecializationprojectpriortothisthesis,whichalso introduced me to the concept of method tailoring. I found this to be a very intriguing and highly relevant topic in the context of agile software development projects that have yet to be adequately investigated in research. This motivated to further explore this in my master thesis. First and foremost, I would like to give special thanks to my two supervisors for creating this opportunity to pursue my interest for agile software development. A big thank you to my main supervisor Nils Olsson for helpful guidance, feedback, and continued support throughout. Thank you also to my co-supervisor Torgeir Dingsøyr for the many helpful guidance sessions, and for sharing your expertise on agile software development and related topics. I would also like to thank the companies and its representatives who gave me the opportunity to study a very interesting project and use it as a case in my thesis. Lastly, a thank you to my family for all the support and helpful advice all the way from start to finish. Trondheim, February 14, 2018 Lars Kråkevik Summary Information technology is becoming increasingly important for organizations and individualsintoday’ssociety. Softwareisakeypartofthisandcanprovidecompetitive edge in a market characterized by constant change. This makes it challenging for those who develop and deliver these products and services. To succeed from idea, via development, testing and execution, an agile project method that enable quick handling of change is essential. Agile methods have typically recommended delivery of change and new features in increments every two to four weeks. In recent times, a trend is observed towards agile approaches that enable delivery on a continuous basis for additional benefits and competitiveness. However, this requires companies to effectively tailor agile methods and apply mature technology with aim towards this in their projects and deliveries. Methodtailoringisaveryrelevantissueinconjunctiontothis,whichinvolvestailoring of project methods to the actual needs and goals of a project context. This thesis was conducted as a case study which main purpose was to explore a software development project’s approach to method tailoring, and how an agile method was tailored in such a manner that deliveries of software changes and new features could be done several times a day. The main findings showed that ongoing tailoring was a necessary activity for continuous improvement of the method in the project. A prominent characteristic of the tailoring approach was that the project suppliers did not confine to a method framework, but were flexible and selected agile practices from multiple methods based on needs and experiences. This entailed a combination of agile practices into a minimal method by omitting unnecessary practices and formalities. The tailored method was based on a flow-based development model rather than an iterative model, and consisted of several agile practices that together enabled the suppliers to deliver continuously, promptly and with the right priorities. Keywords: Agile methods and practices, method tailoring, continuous software delivery, project management iii Sammendrag Informasjonsteknologi blir stadig viktigere for organisasjoner og enkeltindivider i dagenssamfunn. Programvareerensentraldelavdette,ogkangikonkurransefortrinn i et marked som er preget av konstant endring. Dette gjør det ekstra krevende for de som utvikler og leverer disse produktene og tjenestene. Skal man lykkes fra idé, via utvikling, test og produksjonsetting er en smidig prosjektmetodikk som raskt håndterer endringer vesentlig. Smidige metoder har typisk foreslått leveranser av endring og ny funksjonalitet i inkrementer hver andre til hver fjerde uke. I nyere tid ser man en trend mot smidige tilnærminger som muliggjør leveranse på en kontinuerlig basis for ytterligere fordeler og konkurranseevne. Dette krever imidlertid at selskaper på en effektiv måte tilpasser smidige metoder og tar i bruk moden teknologi med sikte mot dette i sine prosjekter og leveranser. Metodetilpasning er et særdeles relevant tema i denne forbindelse, som tar for seg tilpasning av prosjektmetoder til de faktiske behov og mål i en prosjektkontekst. Denne avhandlingen ble gjennomført som et case studie hvor formålet var å utforske et programvareutviklingsprosjekts tilnærming til metodetilpasning, samt hvordan en smidig metode ble tilpasset slik at leveranser av endringer og ny funksjonalitet kunne gjøres flere ganger om dagen. Hovedfunnene viste at fortløpende tilpasninger var sentralt for kontinuerlig forbedring av metoden i prosjektet. En fremtredende karakteristikkfortilnærmingenvaratmanikkebegrensetsegtiletmetoderammeverk, menvarfleksibleogvalgtesmidigepraksiserfrafleremetoderetterbehovogerfaringer. Detteinnebarenkombinasjonavsmidigepraksisertilenminimalmetodevedåutelate unødvendige praksiser og formaliteter. Den tilpassede metoden tok utgangspunkt i en flytbasert utviklingsmodell fremfor en iterativ modell, og besto av flere smidige praksiser som til sammen gjorde det mulig for leverandørene å levere kontinuerlig, raskt og med de rette prioriteringer. Nøkkelord: Smidigemetoderogpraksiser,metodetilpasning,kontinuerligeleveranser, prosjektledelse v Contents 1 Introduction 1 1.1 Background and Motivation . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Problem Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Clarifications and Definitions . . . . . . . . . . . . . . . . . . . 5 1.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Target Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Thesis Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2 Background Literature and Theory 11 2.1 Agile Software Development . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.1 Traditional versus Agile Software Development . . . . . . . . . 11 2.1.2 Agile Principles and Agility . . . . . . . . . . . . . . . . . . . . . 14 2.1.3 Towards Continuous Software Delivery in Agile Software Devel- opment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Agile Methods and Practices . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1 Agile Methods Overview . . . . . . . . . . . . . . . . . . . . . . 18 2.2.2 Iterative Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.3 Flow-based Methods . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.4 Agile Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3 Method Tailoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3.1 Introduction to Method Tailoring Theory . . . . . . . . . . . . . 31 2.3.2 Method Tailoring Approaches . . . . . . . . . . . . . . . . . . . 34 2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3 Method 41 3.1 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.1 Literature Inclusion and Exclusion Strategy . . . . . . . . . . . . 42 3.2 Case Study Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.3 Case Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.4 Preparation for Data Collection . . . . . . . . . . . . . . . . . . . . . . 47 3.5 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.5.1 Semi-Structured Interviews . . . . . . . . . . . . . . . . . . . . 49 vii 3.5.2 Observations and Document Analysis . . . . . . . . . . . . . . . 50 3.6 Transcription of Recorded Interviews . . . . . . . . . . . . . . . . . . . 51 3.7 Coding and Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.8 Reporting of Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.9 Confidentiality and Anonymization . . . . . . . . . . . . . . . . . . . . 54 3.10 Research validity, reliability and generalizability . . . . . . . . . . . . . 55 4 Results 57 4.1 Overview of the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2 The Use and Tailoring of Agile Methods and Practices . . . . . . . . . . 61 4.2.1 Approach to Agile Method Tailoring . . . . . . . . . . . . . . . . 62 4.2.2 Agile Practices and Tailoring of Practices . . . . . . . . . . . . . 67 5 Discussion 83 5.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.1.1 Characteristics of the Agile Method Tailoring Approach . . . . . 83 5.1.2 Combination of Agile Practices . . . . . . . . . . . . . . . . . . 88 5.2 Implications of the Research . . . . . . . . . . . . . . . . . . . . . . . . 94 5.3 Research Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6 Conclusion 99 6.1 Problem Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Bibliography 105 A Appendices 111 A.1 Appendix A: Interview Guides . . . . . . . . . . . . . . . . . . . . . . . 111 A.2 Appendix B: Agile Practices Survey . . . . . . . . . . . . . . . . . . . . 118 A.3 Appendix C: Confidentiality Agreement . . . . . . . . . . . . . . . . . . 120 viii
Description: