in reply to How do you code?
I tend to design on paper/whiteboard (lists of database fields, class diagrams, etc.) and keep a high-level TODO file in each project's root ("complete module X", "add method Y to class Z"), but have never really made notes on what I've already done beyond moving the TODO items into a Changelog. This sometimes led to forgetting the details of how to use bits when I came back to it, but, once I started doing decent automated testing, I was pleasantly surprised to discover that I could easily refresh my memory of how to use a chunk of code by looking at that chunk's tests. Yet another win for testing!
As I work freelance and generally work from home, the only differences between personal and professional coding are that work on client projects gets logged in my billing system and requires me to consult the client for design clarifications/changes.
I currently have five projects at least semi-active, four for clients and one of my own. ("Semi" in that two of them are for the same client and he keeps switching off between having one active and the other on hold.) In general, I don't find multiple projects to be that much of a problem, but, in this particular case, two of the client projects are both relatively large and that's making it hard for me to get much done on any of them, because knowing there's a big project that I need to get done and am not making satisfactory (to me) progress on makes it hard to get motivated to work on anything else - and two such big projects means that, even if I'm working on one, I'm not making progress on the other. Live and learn, I guess.
|
|---|