How to be successful
The individuals that deliver outsized impact to the people, processes, and products around them all share a few key traits.
I’ve interviewed and worked with hundreds of software engineers, product managers, and designers. Those that delivered outsized impact to the people, processes, and products around them all shared a few common traits that can probably be generalized to life as well:
1. Leave things better than you found them
In everything you to do, there’s always an opportunity to make an improvement, no matter how tiny. Are you doing the bare minimum to accomplish a task, or are you using the task as an opportunity to improve some part of the process? This can come in many forms:
- Fixing documentation that you just read
- Cleaning up nearby code when implementing a feature
- Teaching a better mental model of approaching a problem while reviewing a pull request
- Help someone that you see struggling
Small improvements accumulate into major impact. The reverse is also true: large impacts can be broken down into many small improvements. For instance, I once did an experiment called “Refactor-a-day” in which I spent 30 minutes every day identifying, implementing, and delivering a single refactor to the codebase. These were tiny edits — a dozen lines at most — that made incremental improvements to the codebase. At the conclusion of this 3–6 month experiment, I had completely rearchitected and improved the web routing layer of the core product, something that never met the threshold as a dedicated project.
2. Do what you say
What is your do-vs-say ratio? Do you do everything you say you’ll do and by when you said you’d do it? If you want others to trust you, having a high do-vs-say ratio is essential. Nothing erodes trust faster than someone who needs constant followups to get something done. Be the person that others go to to get the job done.
This doesn’t mean you need to do a lot. Not at all! Rather, it means you need to be honest — with yourself and others — about what you can do and by when. It’s easier to work with others whose volume and velocity are known and consistent than with those where it’s inconsistent and unreliable. Low volume and velocity is an easier and better problem to solve than unreliability.
Of course, things can happen that affect your ability to deliver what you said you would. When this happens, the key is to communicate early and align on updated expectations. Don’t wait until you’ve broken your commitment before communicating and renegotiating it.
3. Be proactive
Finally, the common thread in all of this is proactivity. Do you wait to be told what to do or for others to start, or are you the one taking initiative and setting the tempo? The most successful individuals are impatient and refuse to wait for others. A good measure of this is if others are asking you to slow down. If no one is telling you to slow down, you’re probably not being as proactive as you could be.