The Great Surplus (DHH Talk)
I will note down here what I find interesting, and may add my own “take” to what is mentioned. Here is the talk for anyone interested.
Do what is valuable & be super efficient about it
Writing software, is a decision on investing. You have a very limited amount of time. What ever you do has to count: are you going to make it count?
This is DHH’s thesis. Make your time count.
Furthermore, he goes on to say that constraining your time will force you to develop creative solutions: to cut things down to what really matters. If you’re making a computer, is a fluro coloured theme really important? Is it worth spending now? Does it solve someone’s problem?
Solve someone’s problem
At the heart of the above, is the requirement to understand and solve someone’s problem.
What problems are we trying to solve? We want to make existing things: better, faster and cheaper - this is at the core of being a software engineer, or otherwise being in business, or prosecuting a war successfully.
If you don’t have the creativity to do this, then you won’t make it in any field of endeavour. The good news is that the bar is really low: most things out there in the world are mediocre, and might not serve someone’s purposes.
I would add that problems are solved based on a current person’s understanding and needs in the world. In other words: solutions proceed incrementally. For example, if I should present a cool Instagram filter to a tribe in the Amazon - that might not serve their current and immediate purposes. First they will need to understand the concept of a phone (why would I need a phone?) and then Social Media (Why would I need Instagram to send a message? I can just yell to them across by Tribe) and why would I need an Instagram filter (I have no idea why).
Why should you bother solving a problem in the first place?
Because you feel pain.
Pain is what drives things.
The solutions to all the problems of the world is a function of human nature, and incentives.
Let me demonstrate with an example viz: if you are an employee, you get a wage, and there is no personal and direct cost to being inefficient. You have (not much) incentive to do things better, or faster. You will be working hard, while someone else reaps the rewards.
But if you are a business owner, with very limited time, you have to make it work, or you will crash and burn. You have to be selective on what projects you undertake. Now you have an incentive, and now you feel pain. This pain drives things forward.
Invest in yourself
If you are using Rails, you are probably doing something more efficiently than other tools out there. This is your surplus. How are you going to spend it? DHH says: spend it on yourself. Invest in yourself. Because that will last.
DHH says: do things outside programming - which will help you become a better problem solver, he says: sleep more, and he implies: read!
Read about other fields. I have always maintained that connecting the dots is what propels innovation forward: you don’t have to be Einstein. You just have to know what is out there and possible, and simply connect the dots.
The points DHH says:
- Sleep
- Do things outside programming
- Read
- Share your code.
- Learn other trades and professions e.g. marketing, design
Read books that will last
By no means is this an exhaustive list:
- The Secrets of Consulting by Gerald M. Weinberg
- My Job Went to India (52 ways to save your job) by Chad Fowler.
- Implementation Patterns (Kent Beck)
- The Innovator’s Dilemma (Clayton Christensen)