“In other engineering disciplines, the need to produce design documentation is considered de rigeur, a sometimes unpleasant but necessary chore for the sake of higher good. […]
The primary consumers of design documentation are those who are responsible for maintaining and evolving the system.
[…] we need design documentation at a higher level of abstraction, stripped of unnecessary technological detail and closely coupled to application concepts and requirements. These should incorporate design rationale, including descriptions
of rejected design alternatives. These are, in fact, architectural specifications: technology-independent descriptions of the higher-level structure and behavior of systems along with key design principles.”
Bran Selic, Agile Documentation, Anyone?, in IEEE Software, nov/dec 2009.