Rewriting and editing are, literally, half the battle. When setting the timeline for your completion of the spec, always try to add a week more than you anticipate needing. In my experience, something always comes up during the editing process: I've forgotten something, someone now wants to add a new element, details need to be filled in, etc. Since so many people from so many different areas of expertise will be reviewing this document, it is important that it is perfect: no spelling errors, no grammatical errors, no logic errors, and no mock up errors either. To make sure I catch everything, I typically end up printing out my spec many times and editing with a pen. Some basic things to do during the editing process:
- Check your table of contents
This is an obvious one, but make sure your table of contents correlates exactly with what's in your document.
- Edit from beginning to end at least three times after you think it is done
Three times seems to usually do the trick...sometimes more is required, but never less. The first pass usually involves a lot of rewriting and renumbering, while the second pass is typically much lighter and may catch some of the obvious things you missed the first time. By the third time, you should be merely polishing and fixing very small details.
- Have someone proofread for you
This is optional, but I always find that it helps a great deal to have someone else read it over for you (especially if that person has a strong command of the written word).
- Review
Whether you're writing a spec for your company or for a client, you're going to have a series of people reviewing your spec to make sure they understand what's going to be built. Expect changes and be prepared to give reasons for why everything is written as it is. By the time you take your spec to any clients or colleagues, it should be airtight. Part of the review process is working with your client or colleagues to come up with the best solution. If they feel the application will not meet their needs as specified, then find out why and offer solutions as to what can be done to meet their needs. After the review, take your notes back to the computer and make your changes while they're still fresh in your mind. Be sure to change your mockups and all related text, double check to make sure your changes don't affect other functionality (if it does, remedy it), and then double check your table of contents. Prepare the functional spec for another review. Have everybody signoff on it once a consensus has been made.