Traceability in Agile Software Projects
Total Page:16
File Type:pdf, Size:1020Kb
Traceability in Agile software projects Master of Science Thesis in Software Engineering & Management VUONG HOANG DUC University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering Göteborg, Sweden, May 2013 The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Traceability in Agile software projects VUONG.HOANG DUC VUONG. HOANG DUC, May 2013. Examiner: CHRISTIAN.BERGER University of Gothenburg Chalmers University of Technology Department of Computer Science and Engineering SE-412 96 Göteborg Sweden Telephone + 46 (0)31-772 1000 ABSTRACT Context: Software applications have been penetrating every corner of our daily life in the past decades. This condition demands high quality software. Traceability activities have been recognized as important factors supporting various activities during the development process of a software system with the aim of improving software quality. Over the past decades, software traceability has been discussed in literature and there are many approaches proposed to achieve traceability. However, these current literature mainly discussed traceability in traditional software development process and very few studies are discussing traceability issues in Agile software process. Objective: This study aims to investigate the important types of traceability, benefits against challenges when conducting traceability in an Agile software project. This paper also aims to identify what mechanisms are used and how they work and help companies to achieve traceability in Agile software projects. Method: This study is conducted by interviewing 12 Agile software companies and reviewing 20 primary papers related to this research topic. Result: Rationale, Contribute and Refinement are three most important types of traceability. Traditional traceability tools such as: excel, product backlog, communication, etc are used together with automated software tools. Automated tools could be commercial tools made or self-developed by companies. Difficulties related to knowledge, experience, cooperation or commitment within the development team seem to be the most challenging. Doing traceability could help the software company gain the customer focus and guarantee or safety for its software system. Keywords: traceability goals/purposes, agile/lean traceability, type of traceability, Agile principles. ACKNOWLEDGEMENT This master thesis would not have been possible without the sincere help and contribution of several people. I would like to take this opportunity to express my gratitude to them. First of all, I would like to express my sincere gratitude to my supervisor Professor Tony Gorschek for providing me with valuable guidance and advice throughout this thesis. Not only did Professor Tony guide every crucial steps of my thesis, but he also provided, supported and suggested other aspects of this paper. I really appreciate his supervision since he provided very detailed instructions, though he was extremely busy. I would also like to give thanks to my former teacher: Dick Stenmark at IT Göteborg department for helping me with the methodology research methods. Moreover, I would like to thank Professor Giuliano Antoniol and Professor Alexander Egyed at Center of Excellence for Software Traceability for their preliminary comments on this research topic. Last but not least, I am deeply grateful to my family and friends for their support, encouragement and always being with me through the challenges that I faced. Contents 1 Introduction 4 1.1 Aims and Objectives . .5 1.2 Research Questions . .5 1.3 Expected Outcomes . .6 1.4 Terminologies . .6 2 Background 7 2.1 Overview of traceability . .7 2.1.1 Definition of traceability . .7 2.1.2 The importance of traceability . .8 2.1.3 Purposes of traceability . .8 2.1.4 Traceability directions . 10 2.1.5 Traceability Mechanisms . 12 2.1.6 Tracing links/relations . 13 2.1.7 Types of tracing links/relations . 14 2.1.8 The traceability map . 15 2.2 Overview of Agile software development . 21 2.2.1 Practices of Agile . 21 2.2.2 The Agile map . 23 2.3 Problems of traceability in Agile development process . 25 3 Related Work 26 4 Research Methodology 28 4.1 Brief description of research methods . 28 4.1.1 Literature Review . 28 4.1.2 Snowball Sampling . 28 4.1.3 Industry interview . 29 4.2 Mapping of research questions and research methodologies . 29 5 Conducting literature review 32 5.1 Motivation for the method selection . 32 5.2 Searching and Identifying literature . 33 5.2.1 Validating quality literature . 34 5.2.2 Locations for quality literature . 34 5.2.3 Keywords search . 35 5.2.4 Snowball sampling search . 36 5.2.5 When to stop searching . 37 5.3 Processing and synthesizing literature . 37 1 5.3.1 Understanding the literature . 37 5.3.2 Comprehending literature . 38 5.3.3 Applying literature . 38 6 Conducting industry interviews 42 6.1 Motivation for the Interview method . 42 6.2 Interview Preparation Plan . 42 6.2.1 Finding interviewees . 42 6.2.2 Developing the interview guide . 43 6.3 Conducting interviews . 44 6.3.1 Asking and motivational probing . 45 6.4 Processing and Extracting interview data . 45 6.4.1 Processing data . 45 6.4.2 Extracting and Gathering data . 46 7 Results and Analysis of this thesis 48 7.1 General information of companies and primary studies . 48 7.1.1 Characteristics of reviewed literature . 48 7.1.2 Interviewed companies . 50 7.2 Research Questions . 59 7.2.1 RQ1: What types of traceability are important for software development in organiza- tions subscribing to being Agile? . 59 7.2.2 RQ2: What mechanisms are used by Agile companies to achieve traceability? . 68 7.2.3 RQ3: What mechanisms work well in Agile development organizations? . 72 7.2.4 RQ4: What challenges exist for realizing traceability in Agile organizations? . 76 7.2.5 RQ5: What benefits exist in realizing traceability in Agile organizations? . 83 8 Validity Threats 89 8.1 Internal validity . 89 8.1.1 Threats of conducting interviews . 89 8.1.2 Threats of reviewing papers . 90 8.2 External validity . 90 8.2.1 Threats to the industry interview . 90 8.2.2 Threats to the literature review . 90 8.3 Construct validity . 90 8.4 Conclusion validity . 90 8.4.1 Threats to the industry interview . 91 8.4.2 Threats to the literature review . 91 9 Conclusion 92 9.1 Research questions revisited . 92 9.2 Future work . 94 10 Reference 95 11 Appendix 103 11.1 The interview package . 103 11.1.1 The interview guide . 103 11.1.2 Three HANDOUT . 107 11.2 Interviewed data by companies . 114 11.2.1 Company A . 114 11.2.2 Company B . 116 2 11.2.3 Company C . 117 11.2.4 Company D . 119 11.2.5 Company E . 122 11.2.6 Company F . 125 11.2.7 Company G . ..