Mind Mapping for OOAD

In the article The Two Sides of a Document, we discussed the importance of not interfering with the creating mode during the development process. We recognized the fact that in a highly rigid process that involves much documentation to be written during the development, the creative flow is constantly interrupted. We also mentioned Mind Maps as a possible solution for keeping track of ideas and insights throughout the development process (which enables us to maintain a review process along the way), while reducing the overhead of writing a “real document”. Object-Oriented Analysis and Design are one of the most creative activities in the development process. Thus, we might benefit from reducing the overhead of using conventional tools when performing this activity. Since Mind Mapping is a great technique for open thinking (it doesn’t tie you to a rigid solution or way of thinking) and it promotes both creativity and flexibility, it is a great tool for an activity such as OOAD. This technique is very lightweight. It imposes almost no overhead. This means you can easily capture ideas, manipulate them and refactor the way you perceive the system without having to do a lot of work. This by itself is an enormous advantage, since it enables you to flow. It does not hold you back in the thinking process. You do not have to stop thinking while changing your model. Flow and flexibility are crucial in the initial stages of creating the design. At these stages, you frequently change aspects of your design. You might even change the way you grasp the entire system. If you are forced to spend time on technicalities (such as changing a UML model) you stop yourself from thinking. Every new idea you have might introduce quite some overhead on these technical details. A suggested implementation of OOAD using Mind Mapping was recently published at SharpDevelopment.com. This article is the first one in a series of articles exploring Mind Mapping as a tool for various software development activities. The article demonstrates how this technique could be using for OOAD. It also contains a real-world example of analysis done using Mind Mapping.