Saturday, December 27, 2008

Different people, different notion: It's Agile!

Agile means no documentation - common misconception!

Most commonly heard definition include, "Agile = No Documentation". This is the most commonly misused and mis-communicated definition. I don't blame the newbies however it is the value of working software over comprehensive documentation.

For most of us, as soon as we hear the word "documentation", the first thing that comes to our mind is the "Microsoft Word" document, and the ISO-CMM level prescribed requirement/design documents that we might have written previously. So, when a newbie reads the documentation related value from Agile, they generally assume that one needs to dump documents, and rely purely on running code(working software). However, Agile manifesto is trying to say that "prefer" working software over (not abandon) comprehensive documentation. What it means is, try to create working software, because this is the only thing that adds value to the customer's business and not the extensive documentation.

Next question I generally get is, "if we don't do extensive documentation, then how do we retain the knowledge?", "what is the contingency plan for attrition as this would result in loss of precious knowledge?". My take on this is, "do document" in whatever way you can to protect the customer/yourself/project to retain knowledge. Agile value is trying to say that, don't do documentation for the sake of doing it, however document information from the context of adding value to the customer.

In my recent experiences working on an online video-ad media project, we had applied Agile methodology, and found that extensive documentation was indeed a must to conform to various standards. We wrote necessary documents as it added value to the customer's workflow and decision making processes.

Documentation not necessarily mean capturing information on "Microsoft word"! One could write something on the white board or flip chart and take pictures using a digital camera. The images stored could be considered as a project document. Similarly, recorded videos, good coding docs(for example), screen captured images, etc could well be considered as project documents.

Moral of the story: Agile encourages documentation to keep track of project progress and knowledge base rather than making beautiful formal notes or files to make management happy. PROCESSES ARE MADE FOR PEOPLE, NOT PEOPLE MADE FOR PROCESSES!