Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: How do you code?

by dsheroh (Monsignor)
on Jan 13, 2008 at 17:23 UTC ( [id://662198]=note: print w/replies, xml ) Need Help??


in reply to How do you code?

I tend to code in fits and starts as well, although I experience it more as a question of motivation rather than inspiration these days. A friend once described me as "obsessed with whatever happens to be in front of him at the time", which is fairly accurate - it can be hard for me to get started working on a project (whether personal or professional), but, once I write the first dozen lines of code, I can roll with it for a good while unless something else pulls me away. The same applies for switching between high-level design and coding, so I may be fine doing one, then stall when I need to switch to the other.

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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://662198]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-19 07:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found