The Manifesto for Agile Software Development (2001) identifies four key items which are highly valued in the effective delivery of software: Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The XSCALE Alliance for Agile Organisations adds an additional item to this list, that we value:
Decentralized ownership over delegating control
Importantly, it is clearly stated the items to the “right” also have value and that “we value the items on the left more”.
This is often presented as:
During a recent conversation I was asked why “agile practitioners avoided documentation”. I explained that the concept of “Working software over comprehensive documentation” related to the up-front documentation of requirements, with the focus being on delivering value and gaining feedback as early as possible by delivering software incrementally.
There are many types of documentation which are not only required but are actively encouraged in a “agile” environment. As one example, specification of test cases (and in fact behaviours) is strongly encouraged. The XSCALE framework includes Behaviour Driven Development (BDD) as a core practice pattern.
The point here is that we want to avoid “analysis paralysis” and “death by requirements” – time and effort wasted producing documentation without creating any useful value or anything which can be used to obtain and encourage feedback.
Early delivery of value, in the form of working software, enables delivery teams to gain insights into the direction of their product and correct errors quickly. In addition, it helps get features and functionality in the hands of users and customers more quickly.
By all means document those things which are required and where it is beneficial to do so. Test descriptions, operational documentation and user manuals are all valuable and necessary artefacts that should be produced.
As with all things “agile”, focus on delivering value, collecting regular feedback and learning how to work better and how to add more value to your customers, clients and users.
Swiss Agile Association
Advancing Agile in Switzerland
Join our Zürich Meetup group: https://www.meetup.com/Agile-Die-nachste-Entwicklungsstufe/