Management

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 of the shackles of business requirements and just 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 got up in the morning thinking I’d really 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.

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 our desire to produce a stunning piece of code? What if we just want to try out something new?

Commercial software development is about producing products, and cares little about the artistry of the code. This doesn’t mean we have to suffocate the dreamer in us, indeed that would be a poor thing to do. We just 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 to good professional coding. Yet I find myself saying, “cool”. There’s certainly an appeal to this ultra-compact code, and certainly lots of people are revelling in its production.

It’s fun to just take try one of the challenges. I don’t need to win, or even came close. Often I just like to think about how to solve it in my head.

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

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

Managers, make the time

My excursions are not always completely irrelevant. Quite often I just 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 totally refreshed, with enough energy to tackle the boring issues. We can’t let ourselves be so totally lost in the business valuation of issues as to ignore this human impact.

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 in 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 nice 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 find 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 ( http://en.wikipedia.org/wiki/Theory_X_and_Theory_Y ) or into the ideas from Daniel H Pink’s book Drive ( http://www.danpink.com/books/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:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s