I love programming. It tickles me when I stumble across a new programming language that lets me express concepts in a more clear and direct fashion. I love the cleanness and order that results after a good round of refactoring1. I enjoy the challenge of hacking away at a fiddly problem and testing all the cases to get a correct and bulletproof solution.
However I have realized programming is merely an activity. It is a means, not an end. My work is not inherently valuable because I have created a piece of software. Rather it is because I have created software that solves somebody’s problem.2
Therefore it is the problem that deserves the most attention if you want to make a difference that people care about. In that vein I have been learning about the precepts of Customer Development and Customer Discovery, which deals with how to efficiently interact with customers to discover a problem that they care about.3
Direct customer interaction, such as through in-person interviews of the general public, is way outside my comfort zone. However I will persevere. I think it is a very important skill for actually making a dent in the universe.4
Refactoring is a systematic method for code cleanup: improving the structure of existing code without changing its behavior. I highly recommend the book Refactoring if you want a deep-dive into the topic.↩
Business majors & managers recognize early on the importance of solving business problems. After all, their training is around organizing other people to solve problems they identify. (Although I feel they often focus overly on managing and not enough on problem identification.)↩
For a great practical workboard around Customer Discovery (which is the first quarter of Customer Development), I highly recommend Ash Maurya’s Running Lean. For a full overview of Customer Development, I recommend Steve Blank’s The Four Steps to the Epiphany.↩
Steve Jobs famously said he wanted to “put a dent in the universe”. And boy did he ever.↩