Oct 13 2008

Application Engineering and Troublehooting with Mind Mapping

Posted by Mike Brunt at 4:19 AM ColdFusion | JRun-J2EE

The work I do on legacy applications tends to fall into two major areas; the server side with things such as metrics logging, verbose garbage collection logging and the use of SeeFusion and, of course, the code side. It is the last part, the code, that I will discuss in this blog piece.

Since working at Allaire back in the late 90's I have encountered literally 100's of ColdFusion applications some using formal frameworks such as mach-ii, ModelGlue FuseBox, ColdSpring, Transfer and Reactor, some using internally created frameworks. I have worked on MVC frameworks, front controller, page controller, valueobject and many with no framework at all. In all of those the hardest thing to deal with is deep nesting of one kind or another, be it includes of includes of includes, multiple nested calls of cf custom tags or inappropriately extended cfc's and it gets even hairier when we throw in conditionals.

One tool-method that has come to my rescue and of course more importantly to the benefit of my clients, is mind-mapping. I use a tool called FreeMind, not because it is free but because it has all I need to create a visual map of the application code and I have used this both for "OO" centric and procedural applications. These are the main things I look for in a mind-mapping tool:

  • Operating system neutrality
  • Easy toggling of nodes (opening and closing branches).
  • Internal and external hyperlinking.
  • Color coding and formatting of nodes.
  • Notation capabilities.
  • Export to different file formats.

If you have not used a mind-mapping tool I realize some of these needs may be sound unfamiliar, the best way I can describe this is by citing an example. In the event of extreme nesting with layers of includes with conditionals along the way using a mind-map gives a visual way to see all possible directions and events the code could take in all the different permutations possible because of the different conditionals. Each twist and turn is represented by a node which can have multiple branches and nodes, each node can be toggled (collapsed or opened). It can be arresting to see that and if only we could use mind-mapping at the application design stage I really believe we could avoid some of the situations I have to deal in my work on legacy applications in trouble.

If any of you have other methodologies, by all means feel free to comment here.




duncan wrote on 10/14/08 2:03 AM

I'd be curious to see a screenshot of how you mindmap code.
Brad Ascar

Brad Ascar wrote on 10/14/08 4:31 AM

I thought I was the only one who mind-mapped when doing dev work. I have done it for years. I think it is a great way to gather requirements as well as deconstructing someone else's code. I feel I understand almost anything conceptually once I can mind-map it. I have used almost all of the commercial mind-mapping tools out there and have settled on FreeMind for a couple of reason. It gets the job done and I don't have to worry about costs if I get other project members using it.
Mike Brunt

Mike Brunt wrote on 10/14/08 8:50 AM

@Duncan, thanks for your comment and i will think if i can find a way to show a screenshot it is not easy because each node in a mindmap is foldable-collapsible so and a recent mindmap i did when all expanded and exported as a jpeg was around 3ft by 2ft at 100%.

@Brad, thanks for sharing your point of view I first started playing around with mindmapping for code related issues around the time that FuseBox 2 came out. One thing that is interesting to watch is the shock and disbelief from clients when they see how convoluted code can get.

credentials wrote on 10/20/10 9:28 PM

Very rarely do we see such articles and it is really a big help to those in the application field and will give them a good idea of how and which of the mind mapping tools are the best to use as it helps us with a visual way to see and makes the job of dealing with the problem easy to handle!!
select comfort beds

select comfort beds wrote on 10/22/10 6:01 PM

That's really a cool method. It's nice to read this useful post.
solo hd

solo hd wrote on 05/03/11 12:16 AM

This <a href="http://www.solohdheadphone.com">solo hd</a> of headset timbre and its appearance style are very alike -- again, very thin. <a href="http://www.solohdheadphone.com">beats solo hd</a> voice very open seem a bit too thin, <a href="http://www.solohdheadphone.com/fabulous-monster-limited-edition-gold-c-81.html">Fabulous Monster Limited Edition GOLD</a> low frequency partial hard, descend not beautiful but speed feeling good. <a href="http://www.solohdheadphone.com ">discount solo hd</a> hf performance is good, accurate and not mellow, intermediate frequency performance is regular. Overall <a href="http://www.solohdheadphone.com/classic-monster-powered-isolatio-black-s-c-102.html">Classic Monster Powered Isolatio black</a> voice more features, more suitable for listening to electronic music or part of the pop.
asigurare rca

asigurare rca wrote on 05/18/11 7:26 AM

This application can be used for different useful purposes. In fact, this seems to be the only solution.
real estate mississauga

real estate mississauga wrote on 06/16/13 1:42 AM

Our aim is to provide exceptional real estate services, we make sure every client is completely satisfied. Whether you are buying or selling a home, condominium, or a business in mississauga, Aamir Yaqoob can get the deal done. We are proudly the experts in mississauga real estate
clipping india

clipping india wrote on 07/31/13 11:24 PM

Very Useful information , this is both good reading for, have quite a few good key points, and I learn some new stuff from it too, thanks for sharing your information.
cheap nike mercurial

cheap nike mercurial wrote on 11/21/13 12:12 AM

My own first possibility to visit this website.Good blog.
victoria secret uk

victoria secret uk wrote on 10/09/15 11:44 PM

I love drinking scotch. Which one? All of them!