Commit Logs

Thoughts on David Heinemeier Hansson Interview

Recently, David Heinemeier Hansson, a.k.a @dhh, the creator of the Ruby on Rails web development framework and a successful entrepreneur, was interviewed on the Tim Ferriss Show. I have been following him on Twitter for a while and it was always interesting, sometimes enlightening, to learn his perspective on habit, business and other matters. Over the 3-hour show, he touches on many of these aspects and I resonate many with him, so I thought it would be helpful to summarize some of the ideas here for future reference.

Self development

Conventional wisdom tells us to put our 100% effort into something that we really enjoy doing and strive to be the best on that single thing, e.g. being the Michael Jordan on basketball, but @dhh says something different and he himself wears many hats with great success. As a programmer, he developed the Ruby on Rails framework, which is one of the most widely adopted web development framework; as a entrepreneur, he bootstrapped the company Basecamp (previously known as 37signals) with Jason Fried that has been profitable for more than 10 years; he is also a Le Mans & WEC class-winning race car driver, a hobbyist photographer and a public speaker.

When asked about how he had accomplished so many, @dhh attributes it to the 80/20 rule. The idea is that you can either devote 100% of your effort to be the absolute best in one thing or diverse a little bit to be the top 15% ~ 20% in, let’s say, five things. The latter is also tremendously valuable. With a mix of good skills, your strength can bend and stretch, which is sometimes more important in life.

I couldn’t agree more on this point and that’s actually how I generally think about self-development as well. I think, if someone has one thing that he/she is willing to devote 100% of his/her life to it, that’s absolutely lucky and he/she should definitely pursue that one thing to the best. However, not everyone is lucky enough to find this one thing that they are willing to give up everything else for; or, arguably, it may not even exist for everyone. For me, I like a couple of things in life and I want to do each one of them well enough (in the top 20% as @dhh puts it). For example, I like programming and making things that people find useful, but I also enjoy playing guitar and spending time with my family. I wouldn’t want to trade one thing for another. So, what I should do is to narrow down those things to a reasonable amount (it’s extremely hard to be in the top 20% for more than 5 things if you calculate the compounding probability) and just stick to them for a long time to get better.

A practical way to getting better is to get into the flow. It is the key to get you to the top 20%, and it may come easily or through enough practice depending on the nature of the task. Flow generally comes when you work on something you enjoy for an uninterrupted period of time, so it is important to block about 3 hours everyday for deliberate practice on the multipliers, i.e. the most impactful things. To make it more efficient, you should limit yourself to only work 3 hours on it per day to artificially create the sense of urgency, meaning, if you don’t get a good 3 hours, you lose the day of work. With the limited blocked time, you would really achieve the peak of your producivity with best efficiency.

Self sufficiency

Another notion that @dhh mentions is the so-called self-sufficiency. He came from refusing to learn programming to becoming one of the best programmers all because he doesn’t want to bother people to make things happen for the gaming website he was running. He is motivated by the idea that he should be self sufficient and make things work by himself. This is not all that good in some scenarios, but it drives him to where he is today in the world of programming.

Be an introvert myself, the power to be self sufficient also motivates me in many ways, most recently on my career change. I started out as a data scientist that analyze data and build predictive models, but, over the time, I find myself constantly dependent on others to actually bring the models I build to customers, because they need to be implemented in production. I felt that part both inefficient and annoying, so I decided to get my hands dirty and write production code myself. Over the months, I jump from like of the outcome to like of the activity itself, i.e. programming. Eventually, I decide to be a professional developer and it just opens up a whole new world to me. I am now enabled to work on my side project as a sole developer to build a product from scratch.


Besides the thoughts mentioned here, I am also really inspired by what @dhh have presented on lifestyle design and his view on how to build a successful business without VC funding. For anyone who is interested in the interview, here is the link to the podcast. Hope you would enjoy as well!