Towards identifying and minimizing customer-facing documentation debt (2402.11048v1)
Abstract: Software documentation often struggles to catch up with the pace of software evolution. The lack of correct, complete, and up-to-date documentation results in an increasing number of documentation defects which could introduce delays in integrating software systems. In our previous study on a bug analysis tool called MultiDimEr, we provided evidence that documentation-related defects contribute to many bug reports. First, we want to identify documentation defect types contributing to documentation defects, thereby identifying documentation debt. Secondly, we aim to find pragmatic solutions to minimize most common documentation defects to pay off the documentation debt in the long run. We investigated documentation defects related to an industrial software system. First, we looked at different documentation types and associated bug reports. We categorized the defects according to an existing documentation defect taxonomy. Based on a sample of 101 defects, we found that most defects are caused by documentation defects falling into the Information Content (What) category (86). Within this category, the documentation defect types Erroneous code examples (23), Missing documentation (35), and Outdated content (19) contributed to most of the documentation defects. We propose to adapt two solutions to mitigate these types of documentation defects. In practice, documentation debt can easily go undetected since a large share of resources and focus is dedicated to delivering high-quality software. We suggest adapting two main solutions to tackle documentation debt by implementing (i) Dynamic Documentation Generation (DDG) and/or (ii) Automated Documentation Testing (ADT), which are both based on defining a single and robust information source for documentation.
- T. C. Lethbridge, J. Singer, and A. Forward, “How software engineers use documentation: The state of the practice,” IEEE Software, vol. 20, no. 6, pp. 35–39, 2003.
- A. S. M. Venigalla and S. Chimalakonda, “Understanding emotions of developer community towards software documentation,” in 43rd International Conference on Software Engineering: Software Engineering in Society (ICSE-SEIS). IEEE, 2021, pp. 87–91.
- J. Zhi, V. Garousi-Yusifoğlu, B. Sun, G. Garousi, S. Shahnewaz, and G. Ruhe, “Cost, benefits and quality of software development documentation: A systematic mapping,” Journal of Systems and Software, vol. 99, pp. 175–198, 2015.
- E. Aghajani, C. Nagy, M. Linares-Vásquez, L. Moreno, G. Bavota, M. Lanza, and D. C. Shepherd, “Software documentation: the practitioners’ perspective,” in 42nd Int. Conference on Software Engineering (ICSE). IEEE, 2020, pp. 590–601.
- S. M. H. Dehaghani and N. Hajrahimi, “Which factors affect software projects maintenance cost more?” Acta Informatica Medica, vol. 21, no. 1, p. 63, 2013.
- L. Silva, M. Unterkalmsteiner, and K. Wnuk, “Multidimer: A multi-dimensional bug analyzer,” in International Conference on Technical Debt (TechDebt). IEEE, 2022, pp. 66–70.
- N. S. Alves, L. F. Ribeiro, V. Caires, T. S. Mendes, and R. O. Spínola, “Towards an ontology of terms on technical debt,” in Sixth Int. Workshop on Managing Technical Debt. IEEE, 2014, pp. 1–7.
- T. Besker, A. Martini, and J. Bosch, “Managing architectural technical debt: A unified model and systematic literature review,” Journal of Systems and Software, vol. 135, pp. 1–16, 2018.
- R. Verdecchia, I. Malavolta, and P. Lago, “Architectural technical debt identification: The research landscape,” in International Conference on Technical Debt (TechDebt). IEEE, 2018, pp. 11–20.
- T. Amanatidis, N. Mittas, A. Chatzigeorgiou, A. Ampatzoglou, and L. Angelis, “The developer’s dilemma: factors affecting the decision to repay code debt,” in International Conference on Technical Debt (TechDebt), 2018, pp. 62–66.
- F. A. Fontana, V. Ferme, M. Zanoni, and R. Roveda, “Towards a prioritization of code debt: A code smell intensity index,” in 7th Int. Workshop on Managing Technical Debt. IEEE, 2015, pp. 16–24.
- B. S. Aragão, R. Andrade, I. S. Santos, R. N. Castro, V. Lelli, and T. G. Darin, “Testdcat 3.0: catalog of test debt subtypes and management activities,” Software Quality Journal, vol. 30, no. 1, pp. 181–225, 2022.
- G. Samarthyam, M. Muralidharan, and R. K. Anna, “Understanding test debt,” Trends in software testing, pp. 1–17, 2017.
- P. Kruchten, R. L. Nord, and I. Ozkaya, “Technical debt: From metaphor to theory and practice,” Ieee Software, vol. 29, no. 6, pp. 18–21, 2012.
- W. Cunningham, “The wycash portfolio management system,” ACM SIGPLAN OOPS Messenger, vol. 4, no. 2, pp. 29–30, 1992.
- E. Tom, A. Aurum, and R. Vidgen, “An exploration of technical debt,” Journal of Systems and Software, vol. 86, no. 6, pp. 1498–1516, 2013.
- C. Seaman and Y. Guo, “Measuring and monitoring technical debt,” in Advances in Computers. Elsevier, 2011, vol. 82, pp. 25–46.
- D. Pina, A. Goldman, and C. Seaman, “Sonarlizer xplorer: a tool to mine github projects and identify technical debt items using sonarqube,” in Int. Conference on Technical Debt, 2022, pp. 71–75.
- Z. Codabux, M. Vidoni, and F. H. Fard, “Technical debt in the peer-review documentation of r packages: A ropensci case study,” in 18th Int. Conf. on Mining Software Repositories. IEEE, 2021, pp. 195–206.
- J. Y. Khan and G. Uddin, “Automatic detection and analysis of technical debts in peer-review documentation of r packages,” pp. 765–776, 2022.
- E. Aghajani, C. Nagy, O. L. Vega-Márquez, M. Linares-Vásquez, L. Moreno, G. Bavota, and M. Lanza, “Software documentation issues unveiled,” in 41st International Conference on Software Engineering (ICSE). IEEE, 2019, pp. 1199–1210.
- L. Moreno, J. Aponte, G. Sridhara, A. Marcus, L. Pollock, and K. Vijay-Shanker, “Automatic generation of natural language summaries for java classes,” in 21st International Conference on Program Comprehension (ICPC). IEEE, 2013, pp. 23–32.
- P. W. McBurney and C. McMillan, “Automatic documentation generation via source code summarization of method context,” in 22nd Int. Conference on Program Comprehension, 2014, pp. 279–290.
- ——, “Automatic source code summarization of context for java methods,” IEEE Transactions on Software Engineering, vol. 42, no. 2, pp. 103–119, 2015.
- M. P. Robillard, A. Marcus, C. Treude, G. Bavota, O. Chaparro, N. Ernst, M. A. Gerosa, M. Godfrey, M. Lanza, M. Linares-Vásquez et al., “On-demand developer documentation,” in Int. conference on software maintenance and evolution (ICSME). IEEE, 2017, pp. 479–483.
- M. Raglianti, “Topology of the documentation landscape,” in Int. Conference on Software Engineering: Companion Proceedings (ICSE-Companion), 2022, pp. 297–299.
- T. Tegeler, S. Boßelmann, J. Schürmann, S. Smyth, S. Teumert, and B. Steffen, “Executable documentation: From documentation languages to purpose-specific languages,” in Int. Symposium on Leveraging Applications of Formal Methods. Springer, 2022, pp. 174–192.
- P. Stevens, “Models as documents, documents as models,” in Int. Symposium on Leveraging Applications of Formal Methods. Springer, 2022, pp. 28–34.
- E. Wong, L. Zhang, S. Wang, T. Liu, and L. Tan, “Dase: Document-assisted symbolic execution for improving automated software testing,” in 37th Int. Conf. on Software Engineering. IEEE, 2015, pp. 620–631.
- M. Nassif, A. Hernandez, A. Sridharan, and M. P. Robillard, “Generating unit tests for documentation,” IEEE Transactions on Software Engineering, 2021.
- E. J. Friedman-Hill, “Software verification and functional testing with xml documentation,” in 34th Annual Hawaii International Conference on System Sciences. IEEE, 2001, pp. 8–pp.
- K.-J. Stol and B. Fitzgerald, “The abc of software engineering research,” ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 27, no. 3, pp. 1–51, 2018.
- M. Jiménez, L. F. Rivera, N. M. Villegas, G. Tamura, H. A. Müller, and P. Gallego, “Devops’ shift-left in practice: An industrial case of application,” in International workshop on software engineering aspects of continuous development and new paradigms of software production and deployment. Springer, 2019, pp. 205–220.
- K. Nybom, A. Ashraf, and I. Porres, “A systematic mapping study on api documentation generation approaches,” in 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA). IEEE, 2018, pp. 462–469.
- F. F. Correia, A. Aguiar, H. S. Ferreira, and N. Flores, “Patterns for consistent software documentation,” in 16th Conference on Pattern Languages of Programs, 2009, pp. 1–7.