http://qs321.pair.com?node_id=662119

A reasonably productive all-nighter+ got me thinking about this. How does everyone write code? I'm not asking about programming styles as much as how does the idea->incubating->coding->completing process work for everyone?

I've noticed that generally for myself its feast or famine. I'll hit dry spells when everything I write is forced and feels unnatural, and the other times when I can't stop myself and ignore sleep and most other life basics for days at a time. Often i'm fearful that i'll lose the groove and forget things that are stuck in my head. Most of the time, i'll end up with an idea that i'll toss around in my head for anywhere from a few days to more than a year, then something will switch... and boom, a prototype pops out in next to no time.

Other times i'll get side tracked with technology issues like trying to get a Centos5 Xen instance setup and configured so perl and apache mysql and dbix::class all play happily together while avoiding the annoying 5.8.8-5+ rebless of overloaded objects performance hit issue getting in the way. Or realizing that I should be using something like Catalyst as the true core to an application and subsequently re-organizing it.

When getting back into a project that had to be shelved for a few days or more I've found it can take quite a while to re-assemble a "working mockup" of the application in my head as a sort fo model I write code off of. On a number of occasions I've caught myself doing this nearly subconsciously in the hours and days preceding when I sit back down at the computer to work on the next piece.

I suppose on some levels how one gets the project done is dictated by the circumstances.

So how do you get your coding done (and under what circumstances)? Does your personal coding happen differently thatn stuff done for an employer?

As a corollary for extra credit, how many projects does everyone take on at a time. How many shelved? (i usually have 2-3 active and many more shelved) I've always wondered (and though yes many times) if my approach of having multiple projects active at the same time is detrimental to the process via too many distractions. (ex. working on a centralized customer service center for the subscription management and billing to automate the actual provisioning and billing of the other currently in progress services. I jsut can't force my mind off of the multiple subjects many times.) I apologize if any of this is a bit rambling. I promise to get some sleep soon.
dratsab