Project Management in Agile Software Development An empirical investigation of the use of Scrum in mature teams Joachim Hjelmås Andersen Master of Science in Computer Science Submission date: June 2009 Supervisor: Torgeir Dingsøyr, IDI Norwegian University of Science and Technology Department of Computer and Information Science Problem Description Agile software development A range of new methods for software development has been called "agile", such as eXtreme Programming (XP), Scrum, Rational Unified Process (RUP), lean development, crystal clear and crystal orange. These methods have been proposed by practitioners, based on what has worked well for them. One of the most popular agile development methods today is Scrum, which has a strong emphasis on project management. There are, however, few studies that show how Scrum works in different development projects, while the existing studies tend to focus on the introduction of Scrum. The subject for this thesis is to investigate what characterizes project management in mature Scrum teams in the software development industry through an empirically supported analysis. Assignment given: 19. January 2009 Supervisor: Torgeir Dingsøyr, IDI Project Management in Agile Software Development Abstract Project management is generally a challenge in software engineering and during recent years many are of the opinion that agile development may be a solution. As a result, agile development, which focuses on individuals and interactions, working software, customer collaboration, and the ability to respond to change, has gained much popularity and is widely adopted in the industry. However, few studies that examine project management in agile development currently exist. As a consequence, this report investigates the existing practices employed in projects running Scrum through a literature survey of empirical studies and compares the findings with an empirical multi case study, based on semi- structured interviews, in order to determine what characterizes project management in mature Scrum teams. This examination was carried out in relation to a framework for teamwork, as agile development is a team effort and thus needs to be managed according- ly. It was found that Scrum is to a large degree modified in agile environments in the industry, as several practices identified are not a part of Scrum. These practices are employed in order to complement Scrum so that it fits the particular organization, project or both. Examples of such practices include governance meeting, reference group, pre-planning initiatives, sprint celebration, daily Scrum of Scrums and Meta Scrum. Implications for research and practice are presented. Keywords: Agile, Scrum, mature teams, project management, team leadership, case study, software engineering. Project Management in Agile Software Development Preface Ever since I first started programming, I have been intrigued by iterative development. The reason being, that I have always worked in an iterative manner, starting with the very basics and slowly improving my work step-by-step. In regards to software development, I find it essential to be able to improve a product by adapting to the customer‟s needs through continous feedback. Consequently, when Scrum came to my attention I was thrilled and after learning more about Scrum through my summer internship last year, I was determined to find a way to further explore this topic. The process started by contacting Torgeir Dingsøyr in January and together we determined a suitable approach. This in-depth study report was written by Joachim Hjelmås Andersen in January through June 2009. The project was proposed by Torgeir Dingsøyr, and has been developed in the section of Design and Use of Information Systems in the Department of Computer and Information Science (IDI) at the Norwegian University of Science and Technology (NTNU). Acknowledgements: I would like to thank my advisor Torgeir Dingsøyr for excellent guidance, valuable discus- sions, insights and continuous feedback throughout the whole project. In addition, I would like to thank the representatives, from the four different companies involved in this report, for taking the time to let me interview them. The feedback from these individuals has been very informative and of great value to me and my project. Thank you. Trondheim, 15.06.2009 _______________________ Joachim H. Andersen Project Management in Agile Software Development Table of Contents 1 INTRODUCTION .................................................................................................................................. 1 1.1 MOTIVATION ....................................................................................................................................... 1 1.2 PROBLEM DEFINITION ............................................................................................................................ 3 1.3 SCOPE OF REPORT ................................................................................................................................. 4 1.4 REPORT OUTLINE .................................................................................................................................. 4 2 THEORY .............................................................................................................................................. 7 2.1 PLAN-DRIVEN SOFTWARE DEVELOPMENT - THE WATERFALL MODEL .............................................................. 7 2.2 AGILE SOFTWARE DEVELOPMENT ............................................................................................................. 8 2.2.1 Scrum ......................................................................................................................................... 12 2.3 PROJECT MANAGEMENT IN SCRUM ........................................................................................................ 21 2.3.1 What Scrum does not offer ........................................................................................................ 23 2.4 PROJECT MANAGEMENT: SCRUM VS. PLAN-DRIVEN DEVELOPMENT ............................................................. 24 2.5 TEAM LEADERSHIP .............................................................................................................................. 28 3 RESEARCH METHODS AND DESIGN ................................................................................................... 33 3.1 DATA COLLECTION .............................................................................................................................. 33 3.1.1 Literature study ......................................................................................................................... 33 3.1.2 Empirical multi case study ......................................................................................................... 39 3.2 DATA ANALYSIS .................................................................................................................................. 41 4 LITERATURE STUDY RESULTS ............................................................................................................ 43 4.1 CATEGORIZATION OF STUDIES ................................................................................................................ 43 4.1.1 Studies according to project size ............................................................................................... 43 4.1.2 Studies according to depth and validity ..................................................................................... 48 4.1.3 Studies according to team leadership based on the “Big Five” ................................................. 51 4.2 FACILITATE TEAM PROBLEM SOLVING ..................................................................................................... 53 4.2.1 Team problem solving during sprint planning ........................................................................... 54 4.2.2 Distributed team problem solving ............................................................................................. 54 4.2.3 Summary .................................................................................................................................... 55 4.3 PROVIDE PERFORMANCE EXPECTATIONS AND ACCEPTABLE INTERACTION PATTERNS ........................................ 55 4.3.1 Pair programming as an acceptable interaction pattern .......................................................... 56 4.3.2 Problems with not having acceptable interaction patterns ....................................................... 56 4.3.3 Performance expectations and project tracking ........................................................................ 57 4.4 SYNCHRONIZE AND COMBINE TEAM MEMBER CONTRIBUTIONS ................................................................... 58 4.4.1 Continuous integration .............................................................................................................. 59 4.4.2 The role of the daily stand-up meeting ...................................................................................... 60 4.4.3 Problems during the daily stand-up meeting ............................................................................. 60 4.5 SEEK AND EVALUATE INFORMATION THAT AFFECTS TEAM FUNCTIONING ....................................................... 61 4.5.1 The wall/task board ................................................................................................................... 62 4.5.2 Product vision ............................................................................................................................ 63 4.5.3 The product backlog .................................................................................................................. 64 4.5.4 User stories ................................................................................................................................ 64 4.5.5 Alternative communication channels ........................................................................................ 65 4.6 ENGAGE IN PREPARATORY MEETINGS AND FEEDBACK SESSIONS WITH THE TEAM ............................................ 65 Project Management in Agile Software Development 4.6.1 Preparatory meetings: new practices ........................................................................................ 67 4.6.2 Preparatory meetings: daily stand-up and sprint planning meetings ....................................... 67 4.6.3 Feedback sessions: review and retrospective meetings............................................................. 68 4.6.4 Feedback sessions: Scrums of Scrums ........................................................................................ 69 4.6.5 Summary .................................................................................................................................... 69 5 EMPIRICAL MULTI CASE STUDY RESULTS .......................................................................................... 71 5.1 RESEARCH CONTEXT ............................................................................................................................ 71 5.2 FACILITATE TEAM PROBLEM SOLVING ..................................................................................................... 75 5.2.1 Sprint planning........................................................................................................................... 75 5.2.2 Handling interruptions and external requests ........................................................................... 80 5.3 PROVIDE PERFORMANCE EXPECTATIONS AND ACCEPTABLE INTERACTION PATTERNS ........................................ 82 5.3.1 XP and pair programming.......................................................................................................... 82 5.3.2 Scrum training ........................................................................................................................... 84 5.3.3 Performance expectations: burndown chart ............................................................................. 86 5.3.4 Performance expectations: team velocity ................................................................................. 87 5.4 SYNCHRONIZE AND COMBINE INDIVIDUAL TEAM MEMBER CONTRIBUTIONS ................................................... 88 5.4.1 Daily stand-up meeting.............................................................................................................. 88 5.4.2 Continuous integration .............................................................................................................. 90 5.5 SEEK AND EVALUATE INFORMATION THAT AFFECTS TEAM FUNCTIONING ....................................................... 91 5.5.1 The wall/task board ................................................................................................................... 92 5.5.2 Product vision and press release from the future ...................................................................... 93 5.5.3 The product backlog .................................................................................................................. 94 5.5.4 Sprint length .............................................................................................................................. 94 5.5.5 Other sources of information affecting team functioning ......................................................... 96 5.6 ENGAGE IN PREPARATORY MEETINGS AND FEEDBACK SESSIONS WITH THE TEAM ............................................ 97 5.6.1 Preparatory meetings: pre-planning ......................................................................................... 97 5.6.2 Feedback sessions: review and sprint retrospective .................................................................. 99 5.6.3 Feedback session: reference group .......................................................................................... 102 5.6.4 Feedback session: Scrum of Scrums and other meeting practices ........................................... 103 6 DISCUSSION .................................................................................................................................... 107 6.1 OVERVIEW ....................................................................................................................................... 107 6.2 FACILITATE TEAM PROBLEM SOLVING ................................................................................................... 108 6.3 PROVIDE PERFORMANCE EXPECTATIONS AND ACCEPTABLE INTERACTION PATTERNS ...................................... 110 6.4 SYNCHRONIZE AND COMBINE INDIVIDUAL TEAM MEMBER CONTRIBUTIONS ................................................. 112 6.5 SEEK AND EVALUATE INFORMATION THAT AFFECTS TEAM FUNCTIONING ..................................................... 114 6.6 ENGAGE IN PREPARATORY MEETINGS AND FEEDBACK SESSIONS WITH THE TEAM .......................................... 116 6.7 INDICATIONS OF GENERAL TRENDS IDENTIFIED ........................................................................................ 118 6.8 THREATS TO VALIDITY ........................................................................................................................ 120 7 CONCLUSION .................................................................................................................................. 121 7.1 IMPLICATIONS FOR RESEARCH AND PRACTICE ......................................................................................... 123 8 REFERENCES ................................................................................................................................... 125 A. APPENDIX - INTERVIEW GUIDE ....................................................................................................... 129 B. APPENDIX – INTERVIEWS................................................................................................................ 131 B.1 INTERVIEW WITH DEVELOPER IN PROJECT-11, 23.FEBRUARY 09 ................................................................ 131
Description: