2010-07-15

Grumpiness

As laid down by Larry Wall, the three virtues of programming are laziness, impatience and hubris. Yesterday I was caught up in all three, in a state I call grumpiness.

I've started on a project that currently has two really excellent programmers... who have been struggling to keep up with the firehose flow of bugs and new features. I was hired on partly to cut down the size of our backlog, and to help push forward on a development initiative that will allow the company to cater to a wider audience. Those two activities have been slowly turning me into a Grumpy Gus.

We have source control, but it's all in trunk with no branching. We have three levels of development (dev, test and prod) but running dev on a local machine is... um.. tricky. There is One True Database, and no revision history on its schema changes. The database isn't normalized at all. There is no ticket tracking of development features (only bugs created by Support), and no way to tie revisions to tickets. There are no automatic tests, unit or otherwise.

And so on. We're making improvements, but sometimes when I blow a whole day trying to get my local server to run is really frustrating. Impatience is by far my default state, waiting for Subversion to get back to me with some information or having to restart my dev server just to see a small change. Laziness is a factor, because I don't want to work very hard to implement my changes and deploy them upstream. Hubris is ever-present, because implicit in my complaining is that I could fix these problems if I had a week and couple pots of coffee.

Luckily in the next 3-6 months I will be directed to spend most of my time directly improving many of these problems. And really, that's why grumpiness is useful: being dissatisfied with the way things are provides the energy needed to fix it. If I didn't have a mandate to act upon this impulse, I might not last very long in this environment.

So I blow of steam by complaining to my project teammate, and repeat to myself laziness, impatience, hubris.