In Rework, Basecamp guys David Heinemeier Hansson and Jason Fried advise to “Fire the workaholics”, while in Zero to One Peter Thiel argues that great working conditions (as described within Google for example) result from 10x technological advantages, not the other way round.

Back in 1983, Bill Gates said :

You have to think it’s a fun industry. You’ve got to go home at night and open your mail and find computer magazines or else you’re not going to be on the same wavelength as the people [at Microsoft].

Where do we stand now ? Do you need to live and breath programming to remain a good developer ?

What about the 40h per week rule ?

Studies have repeatedly demonstrated that 40h per week is the most productive work load, but in Outliers, the Story of Success Malcolm Gladwell explains that getting fast to the 10000 hours of practice is a required road to success. As my Aïkido professor says, the more you practice, the better you get …

In Soft Skills: The software developer’s life manual John Somnez also makes the point for hard work, that while he long believed that smart work would be enough, it’s only when he put more in that he managed to drastically change his career.

During an argument, DHH argued in favor of work life balance whereas Jason Calacanis said that working in a startup had to be an all-in activity. In the end, they agreed that what matters is passion.

From my own experience, whenever I work on something I am passionate about :

I am more productive

I feel energized rather than dulled by the work

When I look around me, all the great developers I know are passionate and putting in more than 40 hours per week in programming. I also noticed that passion and efforts have always been pretty good indicators of future skills.

But then, how do passionate people manage to remain productive when working more than 40 hours per week ?

What about the under the shower idea ?

In Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers) (which is a great book BTW), Andy Hunt explains that our R-mode works in the background, and needs time away from the task at hand to come up with “out of the box” creative solutions.

XP argues for a sustainable pace, but at the same time, Uncle Bob says that we should put in 60 hours (40 for employer, and 20 for yourself) of work per week to become and remain ‘professionals’ (I guess that’s from The Clean Coder if I remember correctly).

On my side, 6 to 8 solid hours of pair-programming on the same subject is the most I can do before becoming a Net Negative Producing Programmer. But I can do more programming per day if I work on a side project at the same time though !

I guess that’s how passionate people do it, they have different topics outside of their main work :

they read books about programming

they have their own side projects

they read articles about programming

they might maintain a programming blog

they might attend, organize or speak at meetup

Most of the time, this does not make for more work, but rather for more learning. If I’ve noticed that all the great programmers around me are passionate and strive to improve at their craft, I’ve also noticed that overworked workaholics usually aren’t very productive.

Special challenges for mums and dads

I think that Bill Gates 1983 statement still holds. If you are not passionate about programming, you’ll have a hard time remaining and succeeding as a programmer in the long run.

The great thing about all this passion is that we can experience an energized work environment, always bubbling with change and novelty. On the flip side, keeping up with all is not always easy.

As we developers gain more experience, we tend to loose patience with everything that just feels as a pain in the ass, and will want :

Powerful languages and technologies

An efficient working environment

Smart colleagues

Unfortunately, that might also be the moment in your life when you become a parent, and you’ll want a stable income to sustain your family and some time to spend with your kids.

That is when things get tricky. Neither can you jump ship for the next cool and risky startup where you’ll do great things, nor can you find enough time moonlighting to improve your skills … To add pain to injury, even with 10 years of experience in various languages and technologies, most companies won’t look at your resume unless it contains good keywords … It looks like the developer’s version of The Innovator’s Dilemna !

Lack of passion and parenthood might partially explain why people stop being developers after a while. I can quickly think of 2 bad consequences of this :

We tend to reinvent the wheel quite a lot (I’m looking at you, .js frameworks …)

We might be meta ignoring (ignoring that we ignore) people skills that could make us all more efficient

EDIT 2017/01/11 Thanks for all your valuable comments, here is a follow up

Chinese translation