My girlfriend is a fantastic cook. When she cooks, the kitchen seems outright chaotic — five different things going at the same time. Yet, every time, everything magically finishes at the same time. That's because good cooks understand limiting steps.
Imagine you're a cook in a diner. You get an order for eggs, toast, and coffee. What determines how you should structure your production? The limiting step is the task that shapes the entire production flow — it might be the longest task or the most important. Since the coffee is already in a pot and toast takes a minute, making eggs is the limiting step.
To make sure everything comes out on time, you need to work backward. First, you need some time to put everything on the plate. Then you need to get the egg from the boiling water, the coffee from the pot, and the toast from the toaster.
To create good processes, we need to understand the limiting step. For example, in data analysis, the limiting step might be cleaning the data. No analysis can come before a data scientist cleans the data. For software engineering, the limiting step may be the compilation of the program. In developer experience, we call this the inner loop. Making code changes and verifying them locally on your laptop may be done quickly, but the software deployment pipeline (if any) to put them into production might take significantly longer.
Limiting steps are the best place to innovate. Changing parts of the process that aren't limiting doesn't have an impact on throughput. There are two ways to innovate with limiting steps. First, you can tackle the limiting step head-on. Find a quicker way of making eggs. Or, you can change the whole production equation. Hard boil the eggs ahead of time. Serve overnight oats instead of eggs.
Andy Grove wrote about limiting steps in his High Output Management, a must-read for any manager (it's not your average fluff piece, Andy had a unique way of looking at the world). He talked about how managers should identify the limiting steps in their schedules.