All templates

How Theory of Constraints Scaled My GCC

September 1, 2026

Like
How Theory of Constraints Scaled My GCC

How Theory of Constraints helped me scale a GCC by identifying and fixing the real bottleneck, not just adding more heroics.

My CEO expected me to have 10 hands.

As a GCC Lead, every problem somehow became my problem.

Delivery.

Escalations.

Hiring.

Stakeholders.

Quality.

Cost.

Transformation.

And whenever something went wrong, the question was almost always:

“Can you fix this?”

I could.

But there was a problem.

I was becoming the constraint.

Every decision came through me.

Every escalation came to me.

Every cross-functional issue needed my intervention.

The more successful I became at solving problems, the more the organization depended on me to solve them.

That wasn't scalability.

That was a single point of failure.

So I stopped trying to become the person who could handle everything.

I built a GCC that didn't need me to.

And the framework I used was surprisingly simple:

Theory of Constraints

The principle is straightforward:

The performance of an entire system is limited by its constraint.

You don't improve a system by making every part of it slightly better.

You find what's actually restricting the system.

Then you fix that.

  1. Identify the constraint

We started by asking a different question.

Not:

“Who is underperforming?”

But:

“Where is the work getting stuck?”

We mapped the flow across the GCC.

Demand.

Intake.

Execution.

Quality.

Approvals.

Stakeholder review.

Delivery.

Escalation.

And patterns started appearing.

Some teams were overloaded.

Some were sitting idle.

Some issues were repeatedly escalated.

Some decisions were being made at levels far too senior for the problem.

The problem wasn't that everyone needed to work harder.

The system had bottlenecks.

And those bottlenecks were creating work everywhere else.


  1. Exploit the constraint

Once we found a constraint, the first instinct could have been:

Add people.

We didn't start there.

We asked:

“How much more can we get from the existing constraint?”

We removed unnecessary work.

Reduced interruptions.

Standardized recurring activities.

Clarified priorities.

Eliminated duplicate reporting.

Automated repetitive tasks.

And most importantly, protected the bottleneck from work that didn't actually require its attention.

The objective wasn't to make people run faster.

It was to stop making them run in circles.


  1. Subordinate everything else

This was probably the biggest mindset shift.

Individual teams naturally optimize for themselves.

A team wants maximum utilization.

Another wants more requests completed.

Another wants every issue perfectly reviewed.

But optimizing every function independently doesn't necessarily optimize the GCC.

Sometimes, it makes the bottleneck worse.

So we changed the question from:

“How do we keep every team busy?”

to:

“How do we keep the entire system flowing?”

That meant upstream teams couldn't simply push more work into a constrained function.

Priorities had to reflect the constraint.

Processes had to support the constraint.

Decision-making had to happen closer to where the work was happening.

The system came before individual optimization.


  1. Elevate the constraint

If we had exhausted what the existing process could achieve, then we invested.

Technology.

Automation.

Additional capacity.

Training.

Process redesign.

Better decision rights.

The important distinction was that we didn't throw resources at every problem.

We invested where the constraint was limiting the entire system.

That made the business case much easier.

Instead of:

“We need more people.”

It became:

“This constraint is limiting throughput by X. Here's what it will take to remove it.”

That's a very different leadership conversation.


  1. Repeat

And this is where Theory of Constraints gets interesting.

You remove one constraint...

And another appears.

That's not failure.

That's progress.

Once one bottleneck was removed, we went looking for the next one.

The GCC became a system that continuously asked:

“What's limiting us now?”

Instead of waiting for the next crisis to tell us.


What changed?

My CEO didn't suddenly have fewer expectations.

The business didn't suddenly become easier.

There were still escalations.

Still deadlines.

Still demanding stakeholders.

Still unexpected problems.

But something fundamental changed.

The GCC stopped depending on me to absorb every problem.

Decisions moved to the right level.

Teams had clearer ownership.

Recurring problems became process problems instead of people problems.

Automation removed repetitive intervention.

And escalations increasingly became exceptions rather than the normal operating mechanism.


The real lesson

For a long time, I thought being a great GCC Lead meant being the person who could solve anything.

I changed my mind.

If every important problem needs you, you haven't built a high-performing operation.

You've built a dependency.

The goal isn't to become indispensable.

The goal is to build a system that can perform exceptionally well without requiring you everywhere.

That's what Theory of Constraints taught me.

Don't optimize the firefighter.

Remove the reason you need a firefighter.

And no, I never grew the extra eight hands my CEO seemed to expect.

I just stopped building a GCC that required them.

Comments

Be the first to comment on this post.

Sign in to leave a comment.