The document sitting next to the programmer's keyboard could best be described as a ragged sheaf. Held together by one of those giant bulldog clips, it sported dog-eared corners, torn pages, sticky notes, and half-legible scribbles in pencil and three colors of pen. It looked about as new-economy as a 1983 street directory. And yet to me, its co-author, that 145 pages represented a small triumph of the site-building process. It documented what the site should do, and it had been repeatedly, thoroughly, exhaustively used.
For a third of a century, the software engineering profession has taken documentation seriously - especially the "requirements" documentation which sets out what software should do. Web site creators and creators of Web applications have been slow to catch up. It's only recently that the Web site business has acquired a definitive volume on project management, Ashley Friedlein's prosaically-titled "Web Project Management", that makes documentation central to the site-building process.
But central it is. When the players in a project take up the written statement of the project's needs, update it, read it, play with it, pick holes in it - if all this happens, then the project will more likely than not succeed. If such "requirements" documentation languishes, or doesn't exist, the project risks foundering.
Documentation is easily trivialised. Many people, especially in the Web-building industry, see it filling for software the role that Hansard plays for Parliament - an after-the-case record of what was done, a record that you might just conceivably refer to later on. A few more see it as primarily a user manual or help file; yet others see it as the stuff that managers write on the side to help them understand the stuff the programmers are building.
The heck with that. Requirements documents only truly succeed when they're in the action, getting folded, knocked about and torn. Why would that happen?
Clarity, communication and consensus are powerful things. And brought together, they can create a fourth desirable C - shared commitment to the project.
But there's one more important, overarching reason to create documentation for a Web project. It forces you and your team to decide what you want to do. It forces you to design. It forces you to strip away ambiguity and fuzziness and indecision, to decide just exactly what needs to be done. In short, it forces you to think.
Before that 145 pages got into the hands of programmers, I and my co-author, Lisa Liong, wrestled with it for weeks, all the while talking with members of the wider project team. We liked to pretend at the time that we controlled the documentation. In truth, it controlled us, its every inconsistency a rebuke to our thought processes, its every omission a snide laugh at our inability to create a coherent system. We had to consider and reconsider scores of small tasks the system would perform. How exactly would this calculation work? Where exactly would this page lead? What exactly would that error message say? Getting it right made our brains hurt, the way hard running makes your gut hurt.
That's why you document: because these questions need answers, and coders shouldn't have to invent third-best answers in the middle of writing some complex piece of application logic. Document well, and the people who code and build the pages of your site can get on with their work with the least possible fuss. And in the process, you hope, turn your documentation into a ragged sheaf of well-used pages.
Previous NextThis item first filed on Tuesday, April 03, 2001 and last modified on Friday, March 05, 2004