Click here to Skip to main content
15,889,877 members
Articles / DevOps / Agile

Musing about Agile Documentation

Rate me:
Please Sign up or sign in to vote.
5.00/5 (3 votes)
15 Sep 2015CPOL3 min read 11.1K   2   4
Thoughts on the ongoing debate as to how much documentation is needed when taking an agile approach to software development.

Introduction

The Agile Manifesto (published in 2001) states “working software over comprehensive documentation”. Since then, this core principle of agile has been the subject of healthy debate. Rightfully, questions are raised around the value of up-front documentation approaches, the amount of documentation needed and the artefacts delivered.

The agile manifesto also states that, while there is value in the items on the right (documentation), we value items on the left more (working software). So, what value is there in documentation, and how much documentation is enough?

Discussion

The answer has little to do with documentation. The real question is how much information needs to be made readily available to stakeholders both inside and outside of a team in order to effectively communicate the functional and technical design. Examples of these stakeholders include the business, infrastructure, operations, security, risk, architecture, compliance and quality assurance.

So how should design information be shared with these stakeholders? The production code is the most accurate representation of how a system is built. For developers, code is readily available and easy to comprehend. However, as more teams are introduced, complexity of the codebase increases, legacy accumulates and the target audience shifts from developers to less technical stakeholders, using code as the communication tool becomes repetitive, slow and requires developers to continually “interpret” between the code and stakeholders. This overhead hijacks developer productivity and impacts velocity.

An example of how this manifests could be:

“Recently I needed to understand how an existing B2B web integration was implemented so that we could agree similar with a new customer. There was no documentation and the answer lay in the code, which needed a developer to investigate. This required a user story to be added to the backlog, prioritised in to the next sprint and finally I got the information needed almost two weeks later” – Presales Solution Architect.

​This effect is exacerbated as the number of teams working on a product and the number of lines of code increase. Scaling direct communication becomes increasingly challenging as more stakeholders are added (see a good video on this topic).

In order to avoid this, a level of documentation is required to bridge the gap between code and stakeholders. Succinct baseline functional and design documents that describe the existing as-is state of an application are key. Past states can be reviewed through historical versions and future states are better articulated through tactical backlog driven transitions to the baseline or strategic roadmaps that create, modify or deprecate services or capabilities.

Instead of debating whether documentation is required or not, this energy is better spent exploring how to document more effectively. Tools and techniques to produce more accurate documentations with less effort are maturing. Examples to take a look at include Swagger, Gherkin, Mermaid and Plant UML.

Organisational factors to consider

Various factors may influence the level of documentation you produce, examples include:

  • The complexity of your software
  • The type of development - are you building a one off solution, a product or a platform
  • Geographic dispersion of teams and stakeholders
  • The number of teams involved in the development
  • The number of people in each team
  • The number of stakeholders

Links

Here are a few more Code Project articles on agile:

 

History

  • Version 1.0 - Submitted
  • Version 1.1 - Minor formatting changes

 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
United Kingdom United Kingdom
You can read more about me here:

http://uk.linkedin.com/in/murrayfoxcroft

Comments and Discussions

 
Questionreserve your cubicle in the Inferno now Pin
Member 1103480616-Sep-15 7:27
Member 1103480616-Sep-15 7:27 
There are countless articles on reasons not to document or even comment the code. Every case I've seen looks at the short term, get working code running today, clear the backlog. What I never see is what happens 5-10 years later when some poor programmer has to go back and do some maintenance on all that finely crafted code.

Of course someone who never was in the original team and has little or no knowledge of the project will quickly divine intent from the code itself. But hey, for the original coders that's someone else's problem, nothing for them to worry about.

Being one of those guys who's been handed 100KLOC of undocumented code my fervent wish is that somewhere in Dante's Inferno there's a circle of hell set aside for programmers who have to spend eternity reverse engineering "agile" code.

AnswerRe: reserve your cubicle in the Inferno now Pin
Murray Foxcroft16-Sep-15 9:47
Murray Foxcroft16-Sep-15 9:47 
Questionmy 0.02$ Pin
kutynko15-Sep-15 20:54
professionalkutynko15-Sep-15 20:54 
AnswerRe: my 0.02$ Pin
Murray Foxcroft15-Sep-15 21:28
Murray Foxcroft15-Sep-15 21:28 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.