For those of us who are not familiar with the Theory of Constraints, in simple terms it talks about identifying and removing bottlenecks from environments while trying to take an overall view of the system rather than optimize locally.
Local optimization is something we do in everyday life. I would rather not have garbage on my doorstep, but its alright if its on my neighbor’s, which still makes the neighborhood, and the city, stink.
When it comes to the workplace, we see examples of this all around us, both at our clients as well as inside our organizations. A sales team wants to meet or exceed its targets, a business division wants to get more of the organization’s customers to use its product, a local office wants to achieve its topline and bottom-line goals and so on. They don't stop for a moment to think of how their actions affect the larger organizational environment. If they did, it could be a very different story.
As examples, if a business division stopped to assess how the organization’s customers experience its existing products and services, they might find that rather than introducing a new product, they would prefer this one thing that would make their existing experience much better. If a local office realized that the larger parent organization will benefit more by moving its resources to help in another part of the organization, rather than hanging onto them in the slim hope they can get utilized locally.
This can be brought down to the IT project level as well. People familiar with story walls used in teams following an agile process would have often encountered a large pile up of stories in some column on the wall, usually tending to be testing. Why does that happen? Yes, local optimization. We normally assume development to be the bottleneck and a lot of planning is centered around it. So we end up optimizing for one part of the system rather than taking an overall view. Moves like pairing up developers and testers to deliver an end-to-end story with all necessary testing in place are a step in the right direction.
So how do we stop or avoid this behavior? It’s not easy to take a step back and see the effect on the larger system. It often requires an outsider to ask guiding questions that may help those closer to the issue to realize that they are optimizing locally. But this is going to be a skill that good managers need to develop in themselves and their teams. A fundamental question, which they need to ask themselves, is "what is your goal?” The answer to that can help them determine whether they are victims of local optimization.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.