Effectiveness matters more than efficiency
Efficiency
Efficiency means being able to do something faster or cheaper. If you can do something in 10 hours, and you improve so that you’re able to do it in 9, you’re 10% more efficient.
If you’re a frontend engineer, and you improve your efficiency, you’ll be a better frontend engineer. You could be promoted to Senior Frontend Engineer. There’s a time and place in our career to focus on efficiency. There’s nothing wrong with it. At the beginning of your career, efficiency gives you the most growth. But once you reach a certain point, focusing on efficiency won’t take you any farther. For example, a frontend engineer won’t become a full-stack engineer by focusing on efficiency. Nor a lead. What got you here won’t get you to the next step, but as long as you’re focused on efficiency, you’re obsessed with playing today’s game better, and you don’t have the mindspace to think about tomorrow’s game.
Efficiency is about asking questions like:
What should I do?
How do I build this feature?
Efficiency is an excellent thing to focus on — if you’re a machine, like a generator that can generate more electricity for the same fuel. Or you want to be treated like a machine, such as in third-rate companies that threaten, manipulate or cajole you into delivering the maximum output every day:
Efficiency is a rat race: if you can reduce the time of a task from 10 to 9 hours, someone else might do it in 8. Efficiency makes you replaceable.
Efficiency has diminishing returns: you can reduce the time a task to an extent, but not beyond that.
Efficiency is about looking inward.
Effectiveness
Effectiveness is being able to do something you couldn’t previously do. It’s about the outcome, not about the time or cost it takes to achieve that outcome.
ROI = Outcome / Time or cost
When you focus on effectiveness, you optimize the numerator, ignoring the denominator. Instead of spending 9 hours instead of 10 to do a task, you ask what the task is trying to achieve. Maybe nothing, in which case you can skip it. Maybe there’s a completely different task you can do that takes 20 hours but adds a lot more value. Effectiveness is about global optimization, rather than just local, as with efficiency. Effectiveness makes you go upstream, making decisions that affect the work of people focused on efficiency. This naturally puts you in a position of power, rather than be dictated to by others.
Effectiveness is about looking outward.
Effectivness is about leveling up to a whole different game, not about playing the same game better.
Effectiveness gives you the most growth over a decade or longer. If you spend time experimenting with various technologies like low-code, Firebase BaaS, FaaS like AWS Lambda, and serverless like Google App Engine, it’s unlikely to make the current project go faster. Effectiveness is a long-term game.
Effectiveness is about asking questions like:
Why do we need a distributed database?
Whether we should build an Android app?
Where are we going?
When (Let’s build an Android app after our idea is validated by our iOS app).
There is nothing so useless as doing efficiently that which should not be done at all.
- Peter Drucker
Focusing on effectiveness gets you rise a lot in your career, such as from Software Engineer → Senior Engineer → Tech Lead → Architect → CTO. Companies don’t hire a CTO because he can code up the same task in 1 hour instead of 10. It’s about the value he can generate.
Effectiveness lets you opt out of the rat race and get to a position of luxury, where the company no longer tries to extract every bit from you 1. You get to define the kind of companies you want to work with, and what you'll do over the course of your career.
Even if they try, you can push back, and this will work out better for you since the company needs you more.