Productive Developer Series: DHH - David Heinemeier Hansson
2 min read
DHH is the creator of the Ruby on Rails framework, the founder and CTO of Basecamp, a best selling author and a Le Mans class-winning racing driver.
He has created one of the most productive developer frameworks for web development (Rails), and he evangelises more efficient and productive ways of working.
How efficient? DHH created Rails and Basecamp with 10 hours/week of programming time alongside other projects.
Here are just some of the lessons, habits and principles we can learn from this prolific and highly effective developer:
- You can get a lot done if you make your hours count.
- Sleep well: 9 hours or more every night.
- Embrace Constraints. Let limitations guide to creative solutions.
- Keep your code as simple as possible. Write less software.
- Focus on as few things as possible at a time.
- clear your head of todo tasks, anxieties and fears. They all take up mental space and distract you.
- Interruptions are a big waste of time.
- Having a chat program open is like having an attention deficit all the way through your day.
- Long stretches of uninterrupted time (hours) is one of the techniques he champions and uses.
- Learn from great code and people who are great at coding.
- He learnt Ruby by taking apart the Ruby standard library.
- Ask experts detailed questions on how they did something (literally "How did you do that?")
- He cites "SmallTalk Best Practice Patterns" by Kent Beck as the best programming book he has read, and credits it for helping him develop an eye for good code.
- Try to be cross disciplinary. You can become a better programmer by becoming a better writer and philosopher.
- Plan software development with budgets not estimates. Determine how much a feature is worth in terms of time. Understand and exploit the fact that there are different ways of implementing a feature, some being more expensive than others.
- Sometimes its ok to build 80% of a feature, for 20% of the cost.
- Use self-imposed deadlines to voluntarily constrain scope. Use deadlines for prioritization and coordination, not as an excuse for crunching and death marches.
- DHH takes a sustainable approach software development.
- "Working people to death to ship any one feature or product is a poor strategy, as it reduces the capacity to ship the next feature or product (burn out, build-up of bad rush practices)."
DHH has spoken and written many times about the themes of working effectively and productively, and living a balanced, enjoyable life. I highly recommend you check out the following:
- Interview with DHH at BecomingASuperHuman.com
- Book: Geting Real (Free to read online)
- Book: Rework
- DHH's website