I've recently started a new technique for brainstorming. Actually its one step past the brainstorming process, the point at which you decide, "yeah, this is a good idea, perhaps I should start thinking about how one would implement this."
I'm relatively new to the idea of Mind Mapping, (I'm currently using something called "freemind" to collect and organize my thoughts when I get a new idea for some project. I've used this technique in the past, but I was still quite a greenhorn when it came to actually architecting solutions back then so the effectiveness wasn't so great for me. Now that I've got some more experience, I'm finding that Freemind helps me get organized. (Which is saying something since I feel that I'm one of the least organized people I know).
One important thing that Freemind helps me with is that it causes me to start thinking about potential gotchas and objects/services that perhaps you wouldn't normally realize you'd need until you started coding. What I'm hoping is that it will reduce the amount of "oh sh*t" refactoring...(side note, read an article recently that called it "refactorbation" wish I still had that link).
Don't get me wrong, it certainly won't save me from refactoring all together but it certainly gets the creative juices flowing before I start coding and to me, thats extremely valuable. I like to be able to jump in and just code and adapt at will as much as the next guy, but I really feel like this is going to reduce the amount of "brick walls" that I'll run into that cause one to do alot of refactoring.
I'm sure there are plenty of other ways to do this, but Freemind, so far, is proving to be an extremely simple and natural-feeling way to record my thoughts. When doing this sort of thing in a "word doc" (for lack of a better example) and then walking away from it for any period of time, you find yourself asking "what was I talking about here" etc. Seeing that same thing in the graphical format the Freemind provides you reduces that to some extent.
As with all things, I'm sure its not perfect but for me, its close. Having said all that, are there any tools/methods any of you out there use when it comes to getting your thoughts recorded in the pre-coding stages of project? (That iffy point between, "this is just an idea" and "lets start coding").
If you don't have a tool already, I certainly recommend Freemind (or at least some other Mind Mapping software). Again being new to the whole Mind Mapping process, I'm not even sure I'm using the software appropriately, but it sure is helping me, whatever it is I'm doing ;)
Copyright 2008 -- all rights reserved