Software Documentation the Agile Way
While doing research for a client, I came across a very interesting paper entitled “Efficient Authoring of Software Documentation Using RaPiD7.”
Agile practices generally encourage using automated test suites as living documentation for a system under development. Agile says do the least amount of static documentation that will work because it will invariably diverge from reality and quickly become useless. How many thick software documents have you seen sitting on a shelf doing no one any good and existing entirely out of date? Exactly.
Still, because of corporate, regulatory, or other factors, extensive, formal software documentation is often times required. In these cases, these documents are best thought of as a product to be delivered along with the software itself. So, how do we do documentation in a smart, effective, Agile way?
RaPiD7 was developed within Nokia in the 2002-2003 timeframe. The motivation is clear… make documents that match reality and create them with as little effort as possible. It seems to me that the RaPiD7 approach itself embraces two very Agile practices: Whole Team & Do the Simplest Thing That Will Work.
You can read the paper to learn the nuances of the whole process (download for a fee here). But the key ideas are these:- Wait as long as possible (so the eventual document matches reality).
- At each documentation delivery point (be it a milestone or final delivery), assemble all the project stakeholders for a workshop.
- In this workshop (perhaps a half or whole day), collectively create the necessary document outline and then write all of the sections in rough draft form concurrently. With everyone assembled, questions can be quickly answered and the energy of the event carries writing through to the end.
- Assign one person as THE EDITOR.
- THE EDITOR assembles all the sections written in (4), proof reads, gives the document a consistent voice, and communicates with the workshop members to clarify any remaining points.


C Turner Says:
January 16th, 2007 at 06:54 AMSo, how did this work out?
Mike Karlesky Says:
January 16th, 2007 at 08:43 AMUnfortunately, we haven't yet worked on a project with a documentation need lending itself to this approach. However, that said, I should check around the office and see if there is a need, and I've just not heard of it.
R Kylmäkoski Says:
March 8th, 2007 at 06:15 AMI just came across this blog and realized RaPiD7 was being discussed. I have initially developed this approach in Nokia. I have also published my doctoral dissertation (http://www.agile-itea.org/public/papers/RaPiD7.pdf) on the subject should someone be interested in the details of the background, the method itself and some of our results. Mike, thanks for the interest!
Mike Karlesky Says:
March 18th, 2007 at 06:23 PMRoope, Thanks for the link. Your comment almost got lost amongst the comment spam. I just now came across it 10 days after you submitted it. I'm looking forward to looking over your paper. Thanks for the link! Mike