Discovering undocumented knowledge through visualization of agile software development activities
- 33 Downloads
Abstract
In agile software development projects, software engineers prioritize implementation over documentation. Is the cost of missing documentation greater than the cost of producing unnecessary or unused documentation? Agile software engineers must still maintain other software artifacts, such as tickets in an issue tracking system or source code committed to a version control system (VCS). Do these artifacts contain useful knowledge? In this paper, we examine undocumented knowledge in a multi-case exploratory case study of industrial agile software development projects. The first is an internal project with 159 source code commits and roughly 8000 lines of code. The second is an external project with 760 source code commits and roughly 50,000 lines of code. We introduce a ticket-commit network chart (TCC) that visually represents time-series commit activities along with filed issue tickets. We also implement a tool to generate the TCC using both commit log and ticket data. Our case study revealed that software engineers committed source code to the VCS without a corresponding issue ticket in a non-trivial minority of instances. If these commits were based on and linked to individual issue tickets, then these “unissued” tickets would have accounted for a non-trivial minority (5–21%) of the knowledge needed for future software modification and operations. End users and requirements engineers also evaluated the contents of these commits. They found that the omission of links to individual tickets had an important impact on future software modification or operation with between 22 and 49% of these instances resulting in undocumented knowledge.
Keywords
Agile Agile development Agile requirements Requirements management Requirements knowledgeNotes
Acknowledgements
The authors are grateful to Messrs. Takashi Hoshino, Keiichiro Horikawa, Daisuke Hamuro, and Masayuki Inoue of NTT, Tetsuo Kobashi, Masatoshi Hiraoka and Hironori Shibayama of NTT DATA, Dr. Noriaki Izumi and Motoi Yamane at Piecemeal Technology for their assistance in the case study. We also wish to thank the anonymous referees of both the Requirements Engineering Conference and this special issue of the Requirements Engineering Journal for their feedback.
References
- 1.Apache Subversion. Enterprise-class centralized version control for the masses. https://subversion.apache.org/. Accessed 03 Jan 2017
- 2.Backlog. Online project management tool for developers. https://backlog.com/. Accessed 03 Jan 2017
- 3.Beck K, Cynthia A (2005) Extreme programming explained: embrace change. Addison-Wesley Professional, BostonGoogle Scholar
- 4.Beck K, Grenning J, Martin RC, Beedle M, Highsmith J, Mellor S, van Bennekum A, Hunt A, Schwaber K, Cockburn A, Jefferies R, Sutherland J, Cunningham W, Kern J, Thomas D, Fowler M, Marick B (2001) Manifesto for agile software development. http://agilemanifesto.org/. Accessed 10 Jan 2017
- 5.Cockburn A (2006) Agile software development: the cooperative game, 2nd edn. Addison-Wesley Professional, BostonGoogle Scholar
- 6.Cohn M (2005) Agile estimating and planning. Prentice Hall, Upper Saddle RiverGoogle Scholar
- 7.Dhungana D, Grünbacher P, Rabiser R (2011) The DOPLER meta-tool for decision-oriented variability modeling: a multiple case study. Autom Softw Eng 18(1):77–114CrossRefGoogle Scholar
- 8.Dorairaj S, Noble J, Malik P (2012) Knowledge management in distributed agile software development. In: The Agile conference, pp 64–73Google Scholar
- 9.Eisenhardt KM (1989) Building theories from case study research. Acad Manag Rev 14(4):532–550Google Scholar
- 10.GitHub. The world’s leading software development platform. https://github.com/. Accessed 03 Jan 2017
- 11.Hoda R, Noble J, Marshall S (2010) How much is just enough?: Some documentation patterns on agile projects. In: Proceedings of the 15th European conference on pattern languages of programs, New York, NY, USA, pp 13:1–13:13Google Scholar
- 12.Lanza M, D’Ambros M, Bacchelli A, Hattori L, Rigotti F (2013) Manhattan: supporting real-time visual team activity awareness. In: Proceedings of the 21st international conference on program comprehension, pp 207–210Google Scholar
- 13.Levy M, Hazzan O (2009) Knowledge management in practice: the case of agile software development. IN: Proceedings of the 2009 ICSE workshops (CHASE’09), pp 60–65Google Scholar
- 14.Maalej W, Thurimella AK (2015) Managing requirements knowledge. Springer, BerlinGoogle Scholar
- 15.Martin RC (2003) Agile software development: principles, patterns, and practices. Prentice Hall, Upper Saddle RiverGoogle Scholar
- 16.Mendes TS, de F. Farias MA, Mendonça M, Soares HF, Kalinowski M, Spínola RO (2016) Impacts of agile requirements documentation debt on software projects: a retrospective study. In: Proceedings of the 31st annual ACM symposium on applied computing, pp 1290–1295Google Scholar
- 17.Moe NB, Faegri TE, Cruzes DS, Faugstad JE (2016) Enabling knowledge sharing in agile virtual teams. In: Proceedings of the 11th international conference on global software engineering, pp 29–34Google Scholar
- 18.NTT DATA. NTT DATA: Global IT Innovator. http://www.nttdata.com/global/en/. Accessed 10 Jan 2017
- 19.NTT R&D. NTT Research & Development. http://www.ntt.co.jp/RD/e/index.html. Accessed 10 Jan 2017
- 20.Palmer SR, Felsing JM (2002) A practical guide to feature driven development. Prentice Hall, Upper Saddle RiverGoogle Scholar
- 21.Redmine. Flexible project management. https://redmine.org/. Accessed 03 Jan 2017
- 22.Rubin KS (2012) Essential Scrum: a practical guide to the most common agile process. Addison-Wesley Professional, BostonGoogle Scholar
- 23.Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. EmpirSoftw Eng 14(2):131–165Google Scholar
- 24.Saito S, Iimura Y, Takahashi K, Massey AK, Antón AI (2014) Tracking Requirements evolution by using issue tickets: a case study of a document management and approval system. In: 36th international conference on software engineering, pp 245–254Google Scholar
- 25.Saito S, Iimura Y, Tashiro H, Massey AK, Antón AI (2016) Visualizing the effects of requirements evolution. In: 38th International conference on software engineering, pp 152–161Google Scholar
- 26.Saito S, Iimura Y, Massey AK, Antón AI (2017) How much undocumented knowledge is there in agile software development?: Case study on industrial project using issue tracking system and version control system. In: Proceedings of the 25th international conference on requirements engineering, pp 194–203Google Scholar
- 27.Schwaber K, Beedle M (2001) Agile software development with Scrum. Prentice Hall, Upper Saddle RiverGoogle Scholar
- 28.Stettina CJ, Heijstek W (2011) Necessary and neglected?: An empirical study of internal documentation in agile software development teams. In: Proceedings of the 29th ACM international conference on design of communication, pp 159–166Google Scholar
- 29.Trac. Integrated SCM & project management. https://trac.edgewall.org/. Accessed 03 Jan 2017
- 30.Thurimella AK, Bruegge B, Janzen D (2017) Variability Plug-Ins for Requirements Tools: a Case-Based Theory Building Approach. IEEE Syst J 11(4):1935–1946CrossRefGoogle Scholar
- 31.Thurimella AK, Schubanz M, Pleuss A, Botterweck G (2017) Guidelines for managing requirement rationales. IEEE Softw 34(1):82–90CrossRefGoogle Scholar
- 32.Voigt S, von Garrel J, Müller J, Wirth D (2016) A study of documentation in agile software projects. In: Proceedings of the 10th ACM/IEEE international symposium on empirical software engineering and measurement, pp 4:1–4:6Google Scholar
- 33.Wnuk K, Regnell B, Karlsson L (2009) Feature transition charts for visualization of cross-project scope evolution in large-scale requirements engineering for product lines. In: Proceedings of the 4th international workshop on requirements engineering visualization, pp 11–20Google Scholar
- 34.Yin RK (2003) Case study research: design and methods, vol 5, 3rd edn. Sage, Thousand OaksGoogle Scholar