Balance

Posted on Wed 15 March 2017 in Posts

I place a strong emphasis on work/life balance. That sounds funny given that I currently am employed as a software developer at a startup, and startups are notorious for being unfriendly to work/life balance (I wonder if this is less the nature of startup and more the nature of software development shops, but I digress).

Related: one of the topics that's often discussed in programming circles is that of passion. If you're passionate you can overcome any obstacle you face as a developer (and believe me, there will be challenges you face). That is, the key attribute to success is sheer stubbornness/determination and willingness to put in as many hours as it takes.

Paraphrasing: the difference between a good developer and a great developer is a great developer just puts in the time. If you don't put in the time, you're not a (great/competent/professional/whatever other positive passive-aggressive adjective you want) developer and should really give it up and go do something else.

In Clean Coder, Bob Martin articulates this rhetoric quite succinctly:

I'm talking about 20 extra hours per week. That's roughly three hours per day. .... Do the math. In a week there are 168 hours. Give your employer 40, and your career another 20. That leaves 108. Another 56 for sleep leaves 52 for everything else. Perhaps you don't want to make that kind of commitment. That's fine, but you should not then think of yourself as a professional.

Let's play with this number a bit, because numbers are fun. That's 52 hours for:

  • developing and fostering interests away from development
  • raising your son/daughter(s)
  • volunteering at your child's school
  • getting involved in your community
  • going to the gym/maintaining fitness
  • seeing your doctor because you have chronic health problems
  • spending quality time with your husband/wife/spouse/partner
  • caring for sick loved ones
  • living life outside of software development

combined.

I disagree with this mindset. I do agree absolutely that part of being a great developer is pursuing your passion. If you don't enjoy learning about learning new languages, or frameworks, or tools, or technologies, etc, then you're going to have a tough time as a developer. But, and this is a very big but, that doesn't mean you have to give up your life. A friend of mine often cites the following quote that resonates quite strongly with me:

I work to live, I don't live to work

Follow your passion, but don't let that dominate your existence.