The posters above said a lot of useful stuff about technical details. I'll focus on something else:
First I take paper and pens and start drawing. That's pretty old-school and may sound odd to some of you, but I like to sketch my classes and tables and whatsever on paper - and if I change something I redraw the necessary parts. I need to see what I'm doing (that's also the reason why I like Data::Dumper and GraphViz and ...). If I have to stop my work for quite some time - to work on some other projects, I just have to look on my papers if I restart working on my project.