As I am just starting out on a new game these days, I am in the most wishy-washy stage of development, design. Over the years, the way I went about designing an application has changed greatly as technology, my team size and frankly, me, have changed. Now that I work mostly alone I find I am a lot less formal than I used to be.
In the ancient days, I ignored design completely, or used a spiral bound binder and a pencil. On my last large scale project I worked mostly in Visio for object design and program flow modelling. For idea capture and design documents, OneNote was my loyal ally. If you find yourself working using a paper and pencil most often, you should check out OneNote, it is probably the greatest application Microsoft make and I say that without hyperbole. It is an under-exposed and under-appreciated application. Whenever I see websites comparing Evernote or Google Keep I laugh and laugh and laugh. Those two programs aren't in the same league as OneNote. That said, the OneNote mobile offerings, at least on iOS and Android are pretty terrible and the web version is only ok. The application version though, its just great.
That said, this combination of applications has definite limits. These days I am working more commonly across platforms, splitting my time about 50/50 between MacOS and Windows. Unfortunately Mac Office doesn't include OneNote and Visio isn't available either. Also, I am no longer part of MSDN and Visio is stupidly expensive. The other major change is the rise of tablets. I find myself on mobile much more often now, either the iPad or my Galaxy Note ( which you can pry from my cold dead hands! ). So, if I am out and about and an idea comes to me, its nice to just whip out my phone or tablet, which are on instantly, jot the idea down and move on. Additionally, I find touch a much nicer interface when working on a fluid design.
One of the flaws of working with code modelling software is it is often too advanced for me. I don't need it to validate my class design, I am not working in a team or with contractors, so I don't need it to create formal design documents or strictly defined interfaces. At the end of the day I generally just like to enter a class name and description, then model relationships between other classes. That or create flow charts that illustrate user or application flow. Visio can do this, but it is massive overkill. Enter the mind map.
In my life, I always had a bit of a mental block towards this kind of software… I don't really know why, but I never really looked into it closer and I regret that, as mind mapping is basically what I've needed all along. Essentially mind mapping is just a diagramming software that models relationships. That's about it and exactly what I am looking for. There are reams of mind mapping applications out there, from downloadable applications to web services, from free to very expensive. If you want to try one out free, you can try FreeMind or XMind to get started. If you haven't tried one yet, you really should.
Myself, I am using a combination of applications for program design. My design documents and "raw text dump" application of choice is still OneNote. I vastly prefer authoring in the full application in Windows, but the web application and mobile apps work in a pinch, at least for reading. On iPad I use iThoughtsHD, which you can see in action below:
I haven't found a mind map application that works well on my Note, but I've also barely looked. I like iThoughtsHD because it's quick, intuitive and supports the functionality I need. On top, it is compatible with most other Mindmap applications including FreeMind and Xmind that I mentioned earlier. So I can design on the go, then open on my desktop on any platform. Truth is though, I vastly prefer working on the tablet, it is just such an intuitive format for this kind of work.
If there is any interest, I will go into a bit more detail on Mind mapping and iThoughtsHD for game design. I know this is a topic that isn't generally discussed very often, although that could be because people find it boring! ;)
So, that's what I use these days to design my applications ( and other projects ). What do you use?