I'm embarking on my first "decent-size" project - I know that's quite hard to define with the large variety of HNers.
It's a Rails app. So far most of my planning has been on paper, which I like as it is very quick, accurate and I can do it almost anywhere.
However it's hard to edit (pencil/eraser is fine for small areas - but what about moving large parts of a layout/diagram), impossible to search and not backed up anywhere.
So how do you guys do this? I have tried Visio, Gliffy and one or two others for loosely "UML" diagramming - just to get models and their relationships down, but I can't find anything I get on with.
Bonus question; what is your guys process for beginning a new project? Do you plan user flows/stories and base your models around those interactions? I'm looking to learn from you guys and your experience so any info in this regard would be fantastic, thankyou!
I have an A4 sketch book and pencil I carry with me pretty much everywhere. Ages before i start coding, I'll be sketching out idea after idea for the project; everything from screen layouts, data flow, bits of text (If a good idea for some working comes up), names, db design etc. I've tried doing this stuff in software, but nothing comes close to pencil+paper for me
These drawings/notes aren't means as permanent artefacts, but rather as an aid to helping me think through the idea and flesh it out. As I build up the idea I spend a lot of time playing with it in my head (I'm very visual and seem to have a good ability to mentally model things)
When I have a few hours free, I'll start coding, but then often only until I find the next thing I hadn't considered and then I'll head back to the sketchbook.
When coding, I start with the back end process first. I also use Rails, but I'll build my models first, and I make them so I can control them completely from the console. I don't start building the UI until I'm happy with the way everything sits together.
Then, once things are nicely underway and most of the major problems are sorted out I'll lose interest and start on something new (actually, at any one time I've usually got a minimum of 3-4 project somewhere in their lifecycle between initial enthusiasm to abandonment)