A project requirement document whether functional or technical is a snooze fest for any techie to read through. The start of a project is the most important phase. Well thought through requirements play a large role in the project's success. But this probably remains, the most critical yet boring phase of a software development cycle.
On the other hand, imagine the requirement writers state of mind. Someone who has painstakingly tried to document every scenario that they could possibly imagine. Knowing fully well, there is a good chance something is going to get missed when the implementation hits the road.
Throw in some other challenges:
Personally, I have come to believe that using a Mind Map to capture a systems requirements is the best way to alleviate these challenges.
Check out this mind map describing Tennis to a novice Courtesy wikipedia
This map covers the type of shots in the game, scoring mechanism, playing surfaces, key tournaments and key principles. Along with this it covers trivia like the fastest serve and other bits of information. Enough to upgrade someone from a novice to an amateur level understanding of the sport.
The same level of information if covered in a document would be verbose and could loose a high percentage of readers mid-way. Writing information in form of a mind map increases the chances of your readers going through everything you have documented. Moreover, this format also increases the chances of the concept being understood.
Here's how you can start using it for your project.
- To start mind mapping, try FreeMind it's free and makes it simple to create and distribute map files.
- After you have downloaded and installed FreeMind try documenting a project or module you are working on.
- Put the name of your project or the module you are documenting in the first (root) node. From the Format menu option click on Automatic layout. This will ensure your map looks pretty right from the outset. You can edit these layout options as you go along.
- Identify your key stake holders and put that as your first set of nodes after your root node. For example for a ticketing system Customer & Customer service team could be the the first set of nodes.
- Next up, identify the key use cases for each of these stakeholders. For ex. A customer would need ability to raise a ticket and check status of their tickets. You can add subsequent nodes to these nodes and detail out the fields and rules associated with the node you are working on.
- If you need to add an explanation or a note to a particular node, click on the node and navigate to the View menu option and click Note Window.
The beauty here is each node comes with a context as it lies in a certain position within the hierarchy. If while reading your user loses context, they just need to back up within the hierarchy to find context. Making mind maps easy to walk through while explaining a concept or project functionality.
Detailed mind maps can be quite large and can cover every aspect of your project in detail. If you haven't it tried before, its certainly worth a shot. Here are some more usages of mind maps. Check it out.