Metaphysics has entered programming for quite some time. Programming is all about ontologies and relationships. It is the very foundation of object oriented programming. Yet when we look at requirements we often get stuck making lists instead of making relationships. This could all change by starting the process by using mind maps.
The challenges that businesses face and their complexities often require quite a bit of work to wrap your head around it all. If you look at these complexities as a web interrelated parts it starts to make more sense. You can try to diagram these relationships using UML.
With UML you would either start by going through use cases, processes broken down into single tasks, with the client or going through an elaborative risk analysis, either way it is a process that takes hours, usually days. Since each task is looked at separately in detail. If done right this can reduce risks whether they be business, technical, or political. Yet in my experience often ends up showing a single vantage point and bias from either the software engineer or the client representative, since this detailed analysis often gets skipped by the busy lives of the rest of the team that isn’t interested this early in the process. You end up with some good information, but also a lot can be missed.
Instead you could speed up this process and get buy in by all parties involved by doing a group brain storming or mind mapping session.
In this scenario you would get all stakeholders involved by having them map out the current system, the project goals, and the ideal future system. You promise not to take more than an hour of their time and you make sure to engage everyone in the process. This can be done rapidly using a mind mapping tool like shown in this brief tutorial on FreeMind.
[media id=1 width=320 height=240]
Once you have completed this system you can then go back and setup a formal plan for the project including objectives, milestones, and deliverables. This plan should be very clear on what the outcomes should be, but leave most of the implementation details to the team implementing the individual components. More on that later.
Next time you are analyzing a project either as a rewrite, revision, or something completely new, try using mind mapping techniques to get a quick visual overview of the complete system.
You can find out more from Kenji Hiranabe’s excellent post on this topic as well. Another free mind map tool with a specific focus on application development is XMind.