Number one bottleneck in IT ?
“Any improvement not made at the constraint is an illusion.” – Gene Kim paraphrasing “The Theory of Constraints”
What is the constraint in IT?
The constraints in IT are
- Provisioning environments for development
- Setting up test and QA environments
- Architecting development to facilitate easy changes in code
- Development speed
- Product management input
Meaning, until the first constraint is eliminated it is pointless and even potentially counter productive to tune the following constraint.
The first constraint for most organizations to tackle is thus the speed and agility with which they can provision environments for development.
The above list comes from Gene Kim the author of The Phoenix Project. He lays out these top constraints in this interview Gene Kim interview.
In the interview Gene Kim talks about what causes the biggest delays in application development in IT. He says, starting around minute 6:45
“I’ve been trained in the theory of constraints and one of the things I think is so powerful is the notion of the constraint in the value stream. What is so provocative about that notion is that any improvement not made at the constraint is an illusion. If you fix something before the constraint you end up with more work piled up in front of the constraint. If you fix something after the constraint you will always be starved for work.
In most transformations, if you look at what’s really impeding flow, the fast flow of features, from development to operations to the customer, it’s typically IT operations.
Operations can never deliver environments upon demand.
People have to wait months or quarters to get a test environment. When that happens terrible things happen. People actually horde environments. They invite people to their teams because the know they have reputation for having a cluster of test environments so people end up testing on environments that are years old which doesn’t actually achieve the goal.
One of the most powerful things that organizations can do is to enable development and testing to get environment they need when they need it.
After that it’s about test setup time and test run time one that is eliminated .
After that is eliminated it’s typically about architecture. How do we make changes that don’t require 15 other changes simultaneously. How do we create more looser couplings.
Then after that the constraint moves into development or product management.
It is a very technical cultural obstacle is just making available environments for people who need it whether it’s production development or tests.”