The Agile Manifesto calls for “Working Software over Comprehensive Documentation.”
What if the working software were itself a kind of documentation?
It is already quite common to design the user experience so that the users can have successful interactions with an application without ever having to open the user manual. However, it’s less common to design software so that its developers can understand it without even having to open the source code.
It is possible to learn the business domain just by using a related and well-designed application. The software is by itself a piece of documentation about itself and its business domain. This is why all the developers on an application should at least know how to use ...