Tags

, , , ,

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.