Ian Cooper, a developer who I respect very much, wrote an excellent article on agile and documentation. He states that documentation is clearly a part of agile development methodology.
Agile may favour lightweight documentation in many circumstances, but it is still a prerequisite. I've seen agile methods used very successfully with condensed documentation for a very large enterprise scale application. I've also seen agile used with very heavywieght documentation for a mission critical app using Telelogic DOORS.
One of the most annoying things in my current work, within a large Information Security team, is when a development team tell me "we don't have any documentation, we do Agile!". So how do we meet compliance requirements here, where we have to give assurance that standards have been applied to both process and application?
Well, I went to a conference recently where an agile evangelist declared that compliance is an outdated concept.
Fine. The bank I work for is thus outdated, as without compliance we're unable to trade.
Seriously, we use agile, and we do documentation. The agile team I mentioned earlier were told to go back and write some docco if they wanted their app to go live.
The point was that some people think that agile is an excuse not to do documentation.
I feel it's starting to go further than this. We're actually losing the practice of SOFTWARE ENGINEERING. Software engineering is where we do everything for a reason - all that we design, code, test is related to requirements.
Ten years ago, the 'software crisis' of increasingly unmaintainable code was attributed to programmers not introducing comments to their code. A couple of years ago, with some misinterpretations of agile, it became common to have applications developed without detailed design, component design etc.
I worked on a project last year where I was told that " we don't document requirements, because we use agile". Good grief! Agile is a methodology for MANAGING requirements. If you don't document them, then YOU CAN'T POSSIBLY BE DOING AGILE!
Where do we go next? In a few years' time, will we not even need someone to approve/describe a PROJECT before we start coding?
What are you developing? I don't know, we do agile.......