April 19, 2023
I often hear people talk about how good engineers are “lazy.” This always puzzles me, as it doesn’t quite seem to fit what I understand about successful engineering efforts.
After some thought, I realized that this is a misunderstanding of the scaling effect. In other words, good engineers find ways to create output that doesn’t require (or requires very little) their regular input.
To illustrate this point, let’s consider the example of a bricklayer. The bricklayer’s output (bricks laid) is always proportional to their input (hours worked). A good bricklayer can lay more bricks per hour, but this has a low and hard ceiling.
In contrast, a software engineer can potentially scale their output exponentially. For example, a software engineer can write a script that automates a manual task, freeing up their time to work on other things. This is a clear example of how good engineers can find ways to create output that doesn’t require (or requires very little) their regular input.
Another example of this is horizontal scaling in cloud infrastructure. Instead of having to manually configure new instances whenever your service reaches capacity, you can set up the configuration once and the job is done automatically. This is a great example of how good engineers can use technology to their advantage and free up their time to focus on more important things.
So, are good engineers lazy? Not at all. They are simply smart and efficient. They understand that their time is valuable, and they are always looking for ways to use it wisely.
If you want to be a successful engineer, you need to learn to think like a lazy engineer. Don’t be afraid to automate tasks, use technology to your advantage, and find ways to scale your output. By doing these things, you can free up your time to focus on the things that matter most.