Friday, July 11, 2008

Programming

In many way, being a programmer is like being an artist. Inspiration comes and it goes. You can't always force useful work.
Many times I get on a project and I rock that project for hours on end. And then it will all putter out. It may be that I completed the project, or that I have to wait for someone else to complete something. It could be that I have coded up until I reached a point that there are now a few jams that have to be backed out. I need time to step back and rethink everything. Resort the puzzle in my mind so I can get a good idea of how to proceed, which will usually be followed by hours more of useful work.
When I reach these points it is best if I just go home. They usually come within an hour of the time I leave anyhow. I simply cannot get back to a highly productive state before it is time for me to leave, and even if I did, I would have to stop in just a little bit of time anyhow.
Other times I have the opposite problem. Four-thirty will come around and I'm rockin' code, but I have to abandon it and go home. Being in the middle of a productive streak and having it cut short by having to clock out, a meeting, or something else is very bad. It takes a while to go from cold to productive, sometimes up to an hour.
Code is big and it depends on so many other things. To get everything working just right takes putting a lot of pieces together and delicately placing them just right. Like in Operation, a single slip causes the buzzer to go off and you have to start from the beginning. And like doing taxes, there are so many rules you have to be really careful to get everything just right or you end up with the IRS a down your door, or in a programmers case, your boss. You round a number the wrong way, that number gets passed around and multiplied, and then you ended up billing hundreds of customers too much and they are upset.
It would be nice if my end time was not set in stone. I leave when it is best, not when the clock does its thing.