free html hit counter
Posted on: Saturday, 12 December 2009 by Rajiv Popat

In one of my earlier post; I talked about the infinite loop of failure and the infinite loop of non constructive criticism. Joel Spolsky in his post on Figuring-out-what-your-company-is-all-about; how he avoids these loops using a simple diagram.

In the post Joel describes how he started Fog Creek as a company that programmers would absolutely love to be at. He also has a series of posts; like this one for instance; which shows the amount of time; thought and effort that Fogcreek spends behind their employees and their happiness.

If you work for most body shops or software development firms out there; or you are a manager who worries a lot about optimum utilization of human resources; chances are that you; dear reader consider happy programmers dangerous.

Erik Forsberg explains the idea as he narrates his very own personal experience as a developer conference:

Lot's of people from different tech companies in Linkoping. Someone said that Scrum kept the programmers happy which would produce better code. That's probably true. Here comes the fun part - another person in the audience were worried that happy programmers would code things they thought were fun instead of the things they were supposed to do.

Hmm.. yeah, right. That's the way it works. Or maybe not! I'd say that the risk is much bigger that bored programmers spend their time working at things they shouldn't do.

I would really like to know where this person works, so I can avoid working there.

The whole model of hiring cheap programmer; squeezing them to their limits; and micro-managing them to get results leaves most companies out there hanging in the realms of safe mediocrity.

The folks at 37Signals take the concept of happiness and bake it right into their Ruby-On-Rails framework to make developers around the world 'happy'. David Heinemeier explains this concept while giving an interview at eweek. He explains:

The author of Ruby, Yukihiro Matsumoto, tells us that he set out to create a language that would "make programmers happy." Rails attempts to run with that noble and profound goal and bring it to the world of Web application development. Were optimizing for humans first, compilers and the frameworks second. Its been a constant search for how we could make the development process more in tune with what makes programmers happy.

Kathy Sierra dissects the whole concept of happiness and talks about spreading it to all levels within the organization; even in areas which are connected to programming or seriously technical. She explains:

Understanding the connection between happy users and happy developers (or happy anything-supporting-users) is a big step forward.

The HR folks have cared about happy employees for a long time, but the notion of "happy programmers" was always more about benefits, perks, or pay... now a lot more people are starting to care--and talk--about things like programming language, API, framework, methodology, etc.

The things that keep you in a flow state.

If you take all of what his post has talked about so far and compare it with what happens in most organizations out there; what you might realize is that; most organizations out there; actually work hard at building technology; processes; business models; marketing techniques; sales strategies; when all you need to do if you are an entrepreneur is:

  1. Hire the best programmers; managers; marketing guys; or for that matter; any other kind that you recruit.
  2. Get out of their way - stop micro-managing and interfering in their job. 
  3. Figure out innovative ways to keep them happy.

If you can do just these three things and do them well; chances are; that you might have a very successful and even a very profitable organization in the long run. After all; happy programmers build remarkable products; and even more remarkable organizations. Happy marketers often sell better without lies.

Now; go and rethink your policies; your compensations; your projects; your technology and your processes. Are they fundamentally built to make the best of your employees feel 'connected' to your organization? Are they designed to spread happiness? If you answered with a 'no' - get rid of them - and build new ones which are designed keeping the fundamental idea of happiness in mind.

I wish you good luck.