Simulating the Impact of Pairing on Agile Software Development Projects: a Multi-Agent Approach
Total Page:16
File Type:pdf, Size:1020Kb
Lincoln University Digital Thesis Copyright Statement The digital copy of this thesis is protected by the Copyright Act 1994 (New Zealand). This thesis may be consulted by you, provided you comply with the provisions of the Act and the following conditions of use: you will use the copy only for the purposes of research or private study you will recognise the author's right to be identified as the author of the thesis and due acknowledgement will be made to the author where appropriate you will obtain the author's permission before publishing any material from the thesis. Simulating the impact of pairing on Agile software development projects: A multi-agent approach A thesis submitted in partial fulfilment of the requirements for the Degree of Doctor of Philosophy at Lincoln University by Zhe Wang Lincoln University 2020 Abstract of a thesis submitted in partial fulfilment of the requirements for the Degree of Doctor of Philosophy Abstract Simulating the impact of pairing on Agile software development projects: A multi-agent approach by Zhe Wang Scrum is an agile process that incrementally, iteratively and continuously delivers software based on time boxes (sprints). It comprises user stories stored in product backlogs and delivered through sprints by a Scrum teams consisting of team members, a Scrum Master and a Product Owner. The performance of a Scrum team is largely dependent on the team members and the technical practices that they adopt. One such practice, pair programming has been studied in a variety of contexts but not extensively in a Scrum context. Pair programming is a technique where two programmers work side by side at one computer to collaborate on the same design, algorithm, code, or test. The use of pair programming within Scrum has not been widely researched. A multi-agent system is used to simulate the Scrum environment where a team (with varying team members’ capability) work on delivering user stories (which consists of multiple tasks with varying complexities) in multiple sprints. Using this simulated environment, various strategies of compulsory pairing and voluntary pairing are investigated. Impact is measured based on the team’s work efficiency, completion time, effort time and idle time. Experiments were carried out to test these strategies in varying environments and results showed that a hybrid pairing strategy performed the best in fixed environments as it avoided negative pairing. An adaptive strategy performed best in the random setting as it was able to use the best strategy based on the current environment. Experiments were also conducted to investigate what happen when there are potential conflicts in the pair within the team. The result suggests that the proposed hybrid strategy was not heavily affected, as even though the rate of conflict increased from 0% to 20%, the work efficiency only decreased by 0.02%. To reflect how these strategies can be implemented in a real world setting, another experiment was conducted using varying sprint durations of 1 week, 2 weeks, 3 weeks and 4 weeks. The result indicates a strong preference towards a sprint duration of 3 or 4 weeks. ii Overall, results showed that software development teams using Scrum should use pairing within their set of technical practices for the delivery of software. Keywords: Scrum, team dynamics, agent-based modelling, multi-agent system, team strategies, solo programming, pair programming iii Acknowledgements During this PhD many unfortunate things happened; however, I overcame them all and I finally achieved this PhD thesis by very hard work. I hereby give thanks to my supervisors, Dr. Patricia Anthony and Dr. Stuart Charters, for their guidance and assistance throughout my PhD study. In the meantime, I thank my wife, Yanjing Lu, for her support in every aspect, especially for my family. iv Publications 1. Zhe Wang. (2020). P-value Based Task Allocation in a Scrum Team: A Multi-Agent Simulation, Institute of Electrical and Electronics Engineers, IEEE Beijing Section,2019 10th IEEE International Conference on Software Engineering and Service Science (ICSESS 2019) held on October 18-20,2019 in Beijing, China. 2. Zhe Wang. (2019). The Compare of Solo Programming Strategies in a Scrum Team: A Multi- agent Simulation Tool for Scrum Team Dynamics. (book Chapter 32) In: Silhavy R., Silhavy P., Prokopova Z. (eds) Intelligent Systems Applications in Software Engineering. CoMeSySo 2019 2019. Advances in Intelligent Systems and Computing, vol 1046. Springer. 3. Zhe Wang. (2018). The Impact of Expertise on Pair Programming Productivity in a Scrum Team: A Multi-Agent Simulation, 2018 IEEE 9th International Conference on Software Engineering and Service Science (ICSESS), Beijing, China, 2018, pp. 399-402. 4. Zhe Wang. (2019). Estimating Productivity in a Scrum team: A Multi-Agent Simulation. In Proceedings of the 11th International Conference on Computer Modelling and Simulation (ICCMS 2019). ACM, New York, NY, USA, 239-245. (best paper award) 5. Zhe Wang. (2018). Teamworking Strategies of Scrum Team: A Multi-Agent based Simulation. In Proceedings of the 2018 2nd International Conference on Computer Science and Artificial Intelligence (CSAI '18). ACM, New York, NY, USA, 404-408. 6. Zhe Wang. (2020). The Compare of Solo Programming and Pair Programming Strategies in a Scrum team: A Multi-Agent Simulation (Paper ID: 111425) Springer Series: Advances in Intelligent Systems and Computing - ISSN 2194-5357. to appear. 7. Zhe Wang. (2020). Modelling and Simulation of Scrum Team Strategies: A multi-agent approach (Paper ID: 200641) Springer Series: Advances in Intelligent Systems and Computing - ISSN 2194-5357. to appear. 8. Zhe Wang. (2020). Comparisons on Scrum Team Strategies: A multi-agent Simulation. In The 12th ACM International Conference on Computer Modelling and Simulation ICCMS 2020 June 23-25, 2020, Brisbane, Australia, Paper ID: MC1060. 9. Zhe Wang. (2020). Comparisons on Scrum Team Pairing Strategies: A multi-agent Simulation, PAPER ID:D037, is accepted to be published in 2020 the 11th International Conference on v Software Engineering and Service Science (ICSESS 2020) will be held on October 16-18,2020 in Beijing, China. 10. Zhe Wang (2021), Multi-Agent Simulation of Agile Team Dynamics: An Investigation on Team Strategies Perspective is accepted to be published in the springer book Advances in Intelligent Systems and Computing. Springer Series: Advances in Intelligent Systems and Computing ISSN 2194-5357. vi Table of Contents Simulating the impact of pairing on Agile software development projects: A multi-agent approach ................................................................................................................................. 1 ............................................................................................................................................... 1 Abstract ...................................................................................................................................ii Acknowledgements ................................................................................................................. iv Publications .............................................................................................................................. v Table of Contents ................................................................................................................... vii List of Tables ............................................................................................................................ x List of Figures .......................................................................................................................... xi Chapter 1 Introduction ............................................................................................................ 1 1.1 Scrum Background ....................................................................................................................2 1.2 Pair Programming .....................................................................................................................4 1.3 Research Motivation .................................................................................................................5 1.4 Thesis Overview ........................................................................................................................5 Chapter 2 Literature Review..................................................................................................... 7 2.1 Software Development Methodologies ....................................................................................7 2.1.1 Waterfall model ........................................................................................................... 7 2.1.2 Agile software development ........................................................................................ 8 2.2 Team Dynamics and Scrum Practices .................................................................................... 11 2.2.1 Scrum practices ..........................................................................................................14 2.2.2 Task allocation research .............................................................................................18 2.3 Pair Programming .................................................................................................................. 19 2.3.1 Benefits of pair programming ....................................................................................19