March 2009

All Work and No Play...

I've been really hating my job for the last twelve months or so. I've wondered why. After all, I'm getting paid well to work on software. This is my dream job, isn't it? Why can't I enjoy it? And if I can't enjoy it, why can't I just be happy that I'm not unemployed or flipping burgers?

While sitting in the car dealership service lounge today, I watched a TEDTalk about the importance of play. During that video, it hit me: I hate my job because I never get to play anymore.

When I say play, I don't mean playing ping-pong in the storeroom or having Nerf gunfights with my co-workers. Play is about curiosity, exploration, and imagination. That's what I've always liked about software development: the opportunity to explore different solutions, to try out new ideas, and to learn interesting things from other people.

For the past year, there has been none of that. My job has mostly been about fixing bugs. There have been a few new features to add, but they have all been uninteresting and uninspiring.

This may sound like whining, but lack of play really does take a toll on productivity. We have several smart people on the team, and yet we are way beyond schedule and over budget. I'm sure that a major reason for that is the fact that nobody is having any fun. Just putting your head down and charging forward may sound like an admirable way to handle an unpleasant situation, but it stifles creativity and makes it difficult to imagine better solutions. When there is no opportunity to be smart, everyone just gets more stupid.

Play should not be considered a luxury reserved for children. The mind needs play, just like it needs sleep. Without it, performance suffers.

I honestly can't remember the last time we did any brainstorming or drew things on whiteboards or talked about abstractions or joked about how to re-implement the whole system in some obscure programming language. All we do is write code, and contrary to what some people believe, writing code is the least valuable thing a developer does. It's the thinking behind the writing that makes us more than mere typists, and we aren't doing enough of that.

I don't know the solution to this problem. I just hope that after the current projects are finished, I'll remember how my job is supposed to feel.