Where the wild code grows

Sometimes I just like to sit back and code something. Free from deadlines. Free from requirements. Free from issue systems and planning teams. It’s so liberating to free ourselves from the shackles of business requirements and simply do something we want. It’s important for managers to recognize this to grow healthy and productive teams.

The dreamer versus the engineer

I’m not sure I’ve ever gotten up in the morning thinking I’d like to prioritize some issues today. I got into programming because I wanted to make the computer do something. I loved how a few lines of text could produce such wonderous effects.

While working on a business project, it’s easy to lose sight of the artistry of programming. We’re inundated with the reality of code not being the goal, and continually told to stifle the perfectionist. But what if we desire to produce a stunning piece of code? What if we want to try out something new?

Commercial software development is about producing products and cares little about the artistry of the code. It doesn’t mean we have to suffocate the dreamer in us. Indeed, that would be a poor thing to do. We need to learn how to separate it from the engineering aspect of our work and understand the difference.

Code golfing

I frequently find myself looking at the code over on Code Golf. This stuff is the antithesis of proper professional coding, yet I find myself saying, “cool”. There’s certainly an appeal to this ultra-compact code, and many people revel in its production.

Trying one of the challenges is fun. I don’t need to win or even come close. Often it’s enough to think about a solution in my head.

Perhaps code golfing is not for you. There are several other competitions and other puzzles out there. But maybe you like to find your own challenges instead. Or possibly you saw something on a blog and want to replicate it.

Be wary of jumping into online competitions. The gamification of the systems can quickly lead one away from having fun. Feel free to turn a blind eye to the reputation points and only do what you find interesting.

Managers, make the time

My excursions are not always completely irrelevant. Quite often I want to “fix” something on my current project. Something that is bugging me, but will never get enough priority to justify the change.

It’s not always a bad thing to focus on the wrong parts of the project. If as a team lead I see that George desperately wants to add a pet feature or refactor an ugly module, it might be advantageous to let him. George might end up refreshed, with enough energy to tackle the boring issues. We can’t let ourselves be so wholly lost in the business valuation of issues as to ignore this human aspect.

If we’re working 50+ hours a week on the same project, the time for artistry rapidly diminishes. It’s not that we don’t like what we’re doing, but let’s be honest, a lot of necessary things are far from invigorating. Having the time to try new things can be hugely rewarding to individuals, and the project as a whole.

A lot of team members, if given the time to explore, will actually take that time and work on the project. Amina may write the new deployment she always wanted. Luca may clean the cobwebs out of the reporting module. Mia may go off and write about debugging on her blog, giving the company a human side. Sure, Oliver might use the time to build a monitor that counts the remaining beer in the fridge, but hey, it’s good for a laugh and makes him happy.

Rejuvenate the dreamer

And that’s what it’s about in the end, having a team of happy, interested programmers. Our productivity in coding, our ability to write clean code, is directly related to how rewarding we find our position.

I think being given this flexibility at work is one of the signs of having a good job. A manager who understands the need for side projects will have a better team. If you’re unlucky and work is nothing but stifling, then you need to find the time on your own. Often the negatives of a position are more related to one’s unhappiness than the job itself.

In any case, take the time and do something fun with it. We’ll all be happier for it.

5 replies »

  1. I think what you write here makes sense, and fits more broadly into the Theory Y side of the “Theory X and Theory Y” management philosophies ( ) or into the ideas from Daniel H Pink’s book Drive ( – I am not formally or informally affiliated with the man, the book, or the publishing company )

    I think it also goes along with Google’s 20% policy. If you let people spend some time working strictly on things that interest them, it will help sharpen their skills, reduce their stress, hone their focus, and feel appreciated and respected by their employer and managers – and all of those things will make them perform better at their primary job roles.

  2. Locally we have a problem, not with finding or giving the time, but peoples desire to use that extra time. I’m in the middle of DRiVE and hopefully it will spur some good conversation about motivation.

    • Not everybody will actually want to work on something else. Some people may just not believe they’re allowed to be “unproductive” in that team. Others may just want to get something done on the project at hand.

      It shouldn’t be forced obviously, as this time *is* the motivational tool. Ensure people know they can do anything, or put some bounds on it. Maybe have a list of ideas for people that don’t know what to work on.

  3. A really beautiful piece of writing. I think that trying to “manage” this is a silly idea though. There should simply be a philosophy of work-life balance.

    • Thank you.

      I’m trying to push this beyond work-life balance. I already take it is a baseline requirement that employees have a sane work schedule and are allowed to leave work (both physically and mentally).

      I’m saying that this freedom should actually be provided within work hours. While one may decide to keep working on these “open” projects in their sparetime, it mustn’t be expected of them.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s