I’ve just read yet again on some blog someone complaining that agile teams don’t document what they do, producing unmanageable, messy code. Not true, agile developers do create documentation. The difference is that they don’t fetishize it. By that I mean that documentation (models, descriptions, etc.) are seen for what they really are – mere tools, a scaffolding for the real product which is the working code. It’s same about other things – like modeling, analysis, design, testing etc. – all that is by no means cast aside by agile practices. It is just applied differently (for example testing not of the whole product in the end, but at every step) and never mistook for the real deliverable.

I suspect this superstition that “agile don’t document” persists because of some teams that think “agile” means return to “good old days” of cheerful coding without designing testing etc. This is just poor engineering, not “agile”.