Software Development Process Improvements - Case QPR Software Plc
Total Page:16
File Type:pdf, Size:1020Kb
Software development process improvements - Case QPR Software Plc Lidia Zalevskaya Master’s Thesis Degree Programme in Information Systems Management 2019 Abstract Date: 2019.11.24 Author(s) Lidia Zalevskaya Degree programme Information Systems Management, Master’s Degree Thesis title Number of pages and appendix pages Software development process improvements - 98 + 26 Case QPR Software Plc Initially this study was planned as an effort to improve on a software development process within an existing team using an existing product code and systems. However, the situation changed and a new team (DevApps team) was established and given a new project, which created an opportunity to build a new type of team, product, process, and tools pipeline from scratch utilizing the improvement ideas. An Action Research framework was adopted as the theoretical approach for the study, while the Scrum methodology served as a framework for the development practices. The study began by summarizing previously identified problems in the software development process at QPR Software Plc and formulating improvement ideas focused on the coding workflow and Scrum practices. These were then tested in practice by the new DevApps scrum team. The research analysis centres on the process of choosing and setting up the new team’s development tools, figuring out ways of working, and implementing several iterations to find the best suitable development process. The most valuable empirical outcomes were the creation of a branching strategy and Git workflow for the DevApps team, the team members’ practical experience of working with Git and with the Azure DevOps developer services. A key outcome was the shift in many verification activities to earlier phases. Moreover, verification was enforced automatically by adopting the practice of changes being ‘pulled’ into the main development branch, rather than the previous practice of ‘pushing’ changes there. As well as understanding of the importance of integrating smaller code changes at a time, and learning to define and plan smaller work items. Adopting the Azure DevOps service to manage the development flow enabled much more convenient inline code reviewing. Another important outcome was the understanding of need to improve Product Backlog Grooming, which meant adding and enforcing stricter criteria for user stories, such as Definition of Ready for Implementation, and Definition of Done. The Agile Software Development is an iterative process, which is consistent with the report structure of Action Research. At the time of writing this report, the practical implementation has been ongoing for 3.5 months. The team were able to set up an initial process and tools, though further improvements are expected to follow in subsequent iterations. The preliminary observations have been shared with the rest of R&D at QPR Software, though it will take more time to crystalize the lessons learnt and to plan for other teams to utilize and apply those findings. Keywords Software development best practices, Scrum, software development workflow, git workflow, branching strategy, version control Abbreviations CD - continuous deployment CI - continuous integration DoD - definition of done E2E - end to end (usually about UI automatic tests) MVP - minimal viable product QA - quality assurance R&D - research and development, in QPR Software called also Products & Technologies. SDLC - software development life cycle SDT - software development task (work item in issue tracking system) SW - software TA - test automation UI - user interface VCS - Version control system WIP - work in progress Table of contents ABBREVIATIONS ..................................................................................................................................................................................... 3 TABLE OF CONTENTS ............................................................................................................................................................................ 4 TABLE OF FIGURES ................................................................................................................................................................................ 7 FOREWORD ............................................................................................................................................................................................... 8 1 INTRODUCTION AND BACKGROUND ................................................................................................................................ 8 1.1 THE COMPANY AND THE PRODUCT ......................................................................................................................... 8 1.2 PERSONAL CONTEXT ................................................................................................................................................ 8 1.3 AIMS AND OBJECTIVES ............................................................................................................................................. 9 1.3.1 Initial plan - main tasks (08.2019) ..................................................................................................................... 12 1.4 CHALLENGES ........................................................................................................................................................... 13 1.5 STRUCTURE OF THE STUDY .................................................................................................................................... 14 2 ITERATION 1: METHODOLOGICAL FRAMEWORK, LITERATURE REVIEW, AND INITIAL PLAN ................. 15 2.1 METHODOLOGICAL FRAMEWORK AND STRATEGY ................................................................................................ 15 2.1.1 Theory: action research...................................................................................................................................... 15 2.1.2 Methods used in the study ................................................................................................................................. 17 2.2 LEADING CHANGE .................................................................................................................................................. 17 2.2.1 Theory: Leading Change. John Kotter (1995) ..................................................................................................... 17 2.2.2 Theory: “Island of freedom” ............................................................................................................................... 18 2.2.3 Theory: Main principles leading the process change effort ............................................................................... 18 2.2.4 Current process, workflow and branching strategy ........................................................................................... 20 2.2.5 Empirical: What needs to change and why ........................................................................................................ 22 2.3 INITIAL SCRUM PRACTICES: AUGUST - SEPTEMBER 2019 ITERATION .................................................................... 30 2.3.1 Theory: Tuckman's stages of group development ............................................................................................. 30 2.3.2 Team kick-off: Create a cultural manifesto for the DevApps scrum team ......................................................... 32 2.3.3 Team kick-off: Create working contract for the Scrum team ............................................................................. 34 2.3.4 Practical plan: Initial Scrum process setup ......................................................................................................... 34 2.4 THEORY: VERSION CONTROL SYSTEM AND THE DEVELOPMENT WORKFLOW ...................................................... 38 2.4.1 What are version control systems (VCS) and how do they compare? ................................................................ 38 2.4.2 Choosing a version control system and provider, CI/CD system (tools pipeline)................................................ 40 3 RETROSPECTIVE .......................................................................................................................................................... 43 3.1 Retrospective comments analysis 29.07-6.09.2019 ........................................................................................... 44 3.2 Agreed adjustments ........................................................................................................................................... 46 4 ITERATION 2: SEPTEMBER 2019 ..................................................................................................................................... 48 4.1 ORGANIZE ISSUE TRACKING AND WORK MANAGEMENT (BACKLOG, EPICS, STORIES, TASKS) ............................. 48 4.1.1 Epic - Feature - Story/Topic - Task ...................................................................................................................... 48 4.2 AGREE ON THE CODING WORKFLOW AND BRANCHING STRATEGY ...................................................................... 49 4.2.1 Questions and Conceptual decisions to make .................................................................................................... 50 4.2.2 Theory: Available Git workflow options ............................................................................................................