Approaches for Documentation in Continuous Software Development

It is common practice for practitioners in industry as well as for ICT/CS students to keep writing – and reading ­– about software products to a bare minimum. However, refraining from documentation may result in severe issues concerning the vaporization of knowledge regarding decisions made during t...

Full description

Saved in:
Bibliographic Details
Main Authors: Theo Theunissen, Stijn Hoppenbrouwers, Sietse Overbeek
Format: Article
Language:English
Published: Riga Technical University Press 2022-10-01
Series:Complex Systems Informatics and Modeling Quarterly
Subjects:
Online Access:https://csimq-journals.rtu.lv/article/view/5968
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1849414074015678464
author Theo Theunissen
Stijn Hoppenbrouwers
Sietse Overbeek
author_facet Theo Theunissen
Stijn Hoppenbrouwers
Sietse Overbeek
author_sort Theo Theunissen
collection DOAJ
description It is common practice for practitioners in industry as well as for ICT/CS students to keep writing – and reading ­– about software products to a bare minimum. However, refraining from documentation may result in severe issues concerning the vaporization of knowledge regarding decisions made during the phases of design, build, and maintenance.  In this article, we distinguish between knowledge required upfront to start a project or iteration, knowledge required to complete a project or iteration, and knowledge required to operate and maintain software products. With `knowledge', we refer to actionable information. We propose three approaches to keep up with modern development methods to prevent the risk of knowledge vaporization in software projects. These approaches are `Just Enough Upfront' documentation, `Executable Knowledge', and `Automated Text Analytics' to help record, substantiate, manage and retrieve design decisions in the aforementioned phases. The main characteristic of `Just Enough Upfront' documentation is that knowledge required upfront includes shaping thoughts/ideas, a codified interface description between (sub)systems, and a plan. For building the software and making maximum use of progressive insights, updating the specifications is sufficient. Knowledge required by others to use, operate and maintain the product includes a detailed design and accountability of results. `Executable Knowledge' refers to any executable artifact except the source code. Primary artifacts include Test Driven Development methods and infrastructure-as-code, including continuous integration scripts. A third approach concerns `Automated Text Analysis' using Text Mining and Deep Learning to retrieve design decisions.
format Article
id doaj-art-6e886a9ccdb54b52a143c10f6a34b809
institution Kabale University
issn 2255-9922
language English
publishDate 2022-10-01
publisher Riga Technical University Press
record_format Article
series Complex Systems Informatics and Modeling Quarterly
spelling doaj-art-6e886a9ccdb54b52a143c10f6a34b8092025-08-20T03:33:57ZengRiga Technical University PressComplex Systems Informatics and Modeling Quarterly2255-99222022-10-0103212710.7250/csimq.2022-32.012950Approaches for Documentation in Continuous Software DevelopmentTheo Theunissen0Stijn Hoppenbrouwers1Sietse Overbeek2Department of ICT, HAN University of Applied Sciences, ArnhemDepartment of ICT, HAN University of Applied Sciences, Arnhem and Radboud University, Institute for Computing and Information Sciences, NijmegenDepartment of Information and Computing Sciences, Utrecht University, UtrechtIt is common practice for practitioners in industry as well as for ICT/CS students to keep writing – and reading ­– about software products to a bare minimum. However, refraining from documentation may result in severe issues concerning the vaporization of knowledge regarding decisions made during the phases of design, build, and maintenance.  In this article, we distinguish between knowledge required upfront to start a project or iteration, knowledge required to complete a project or iteration, and knowledge required to operate and maintain software products. With `knowledge', we refer to actionable information. We propose three approaches to keep up with modern development methods to prevent the risk of knowledge vaporization in software projects. These approaches are `Just Enough Upfront' documentation, `Executable Knowledge', and `Automated Text Analytics' to help record, substantiate, manage and retrieve design decisions in the aforementioned phases. The main characteristic of `Just Enough Upfront' documentation is that knowledge required upfront includes shaping thoughts/ideas, a codified interface description between (sub)systems, and a plan. For building the software and making maximum use of progressive insights, updating the specifications is sufficient. Knowledge required by others to use, operate and maintain the product includes a detailed design and accountability of results. `Executable Knowledge' refers to any executable artifact except the source code. Primary artifacts include Test Driven Development methods and infrastructure-as-code, including continuous integration scripts. A third approach concerns `Automated Text Analysis' using Text Mining and Deep Learning to retrieve design decisions.https://csimq-journals.rtu.lv/article/view/5968agiledocumentationexecutable knowledgejust enough upfrontmachine learningnatural language processing
spellingShingle Theo Theunissen
Stijn Hoppenbrouwers
Sietse Overbeek
Approaches for Documentation in Continuous Software Development
Complex Systems Informatics and Modeling Quarterly
agile
documentation
executable knowledge
just enough upfront
machine learning
natural language processing
title Approaches for Documentation in Continuous Software Development
title_full Approaches for Documentation in Continuous Software Development
title_fullStr Approaches for Documentation in Continuous Software Development
title_full_unstemmed Approaches for Documentation in Continuous Software Development
title_short Approaches for Documentation in Continuous Software Development
title_sort approaches for documentation in continuous software development
topic agile
documentation
executable knowledge
just enough upfront
machine learning
natural language processing
url https://csimq-journals.rtu.lv/article/view/5968
work_keys_str_mv AT theotheunissen approachesfordocumentationincontinuoussoftwaredevelopment
AT stijnhoppenbrouwers approachesfordocumentationincontinuoussoftwaredevelopment
AT sietseoverbeek approachesfordocumentationincontinuoussoftwaredevelopment