Premature optimization

Noise Between Stations has a quick piece on Premature optimization:

“Premature optimization is the root of all evil (or at least most of it) in programming.” — Donald Knuth

I think you can replace the word programming with the word design and that would still be true.

Similarly, I would say that if you replace programming with business, you get a key to the theory of constraints.  Look at the whole system before fixing it.  As a reminder

  1. Identify the constraint.
  2. Squeeze everything you can out of the constraint.
  3. Subordinate everything else to the constraint.
  4. Elevate the constraint.
  5. If you've moved the constraint, start over.

Update: Fixed broken link above.

7 Comment(s)

Scheherazade said:

I don't understand what "elevate the constraint" means.

jackvinson Author Profile Page said:

In step 2 (squeeze the constraint), you have already done things like remove unnecessary work from the constraint and made sure that the constraint is active 100% of the time, because any down time on the constraint is lost throughput.

So, in this context "elevate the constraint" means doing things like buying more of the constraint. If the constraint is a person, you find other people that can do the same work. If the constraint is a piece of equipment, you buy more of that.

Frequently this ends up elevating the constraint so far that it is no longer a constraint. Thus, step 5 tells you to go back and find the new constraint.

The other interesting aspect of this process is you can strategically decide to not spend the money on elevating the constraint because you like where it is, or because you can't really buy any more of that constraint. Goldratt calls this the correct application of strategy.

Jack,
How does theory of constraints differ from Queueing Theory, with us since 1909 and today commonly used, among other things in, staffing, traffic control, laying out manufacturing facilities, and capacity planning? If it is as close as it appears, why the new nomenclature?

In QT terms the steps could equally well be shown as follows:

1. Identify the constrained resource.

2. Remove constraint from the resource until the queue length is acceptable. (Your steps 2, 3, and 4, would all be included here as possible activities to consider for constraint removal.)

3. Identify next constrained resource.

QT Step 2. is where all the fun stuff happens including balancing between providing pure performance (increase resource speed or add a parallel resource) and providing adequate capacity to handle the largest request (increase resource size or capacity).

If you started with a "balanced system" performance for each resource, then by definition, increasing the speed or capacity of any given resource will almost certainly create a new bottle neck in the next resource. Therefore your Step 5, should not be conditional but should lead back to Step 1.

Also, more than a question of just an inability to spend money, the selection criteria for fixing any constrained node is often a balancing act between efficiency and effect. The former relates to optimal use of any given resource and the latter relates to how well the entire system serves a given business objectives.

jackvinson Author Profile Page said:

I don't know Queueing Theory very well, but I believe some of the genesis of the theory of constraints came about from reasoning around traffic flow. Since I don't know much about QT, I'll take this in a different direction.

Organizations in which the constraint moves frequently are chaotic. People don't know how to respond from day to day when the limiting factor in the organization moves. I think this is one of the confusing things about the five focusing steps. They aren't so much about daily operation as they are about a strategic method to manage the business.

Balanced systems are ripe for "wandering bottlenecks," because the system can never truly stay in balance. As soon as one resource slows down, it appears they are a bottleneck. Either everyone must slow to meet the new pace of the system, or the bottleneck must work extra hard to catch up. This hints at plenty of excess and unused capacity in balanced systems.

Efficiency and effectiveness are very important aspects of this discussion as well. In the desire to manage well, we are driven to manage each resource as if it contributes the same amount to the overall wellbeing of the company. If that is the case, then every resource needs to be working all the time. This ends up giving us lots of work-in-process and a lot of finished good inventory. On the other hand, for the whole system to be effective (and produce money), not all resources need to be busy all the time because we want them focused on supporting the throughput of the organization.

TOC argues that efficiency and effectiveness are secondary measures. It is much more important to measure reliability. Reliability is the answer to "did we do the right thing?" Have we met all our commitments? Did we deliver everything to our customers when we said we would and with the quality they demand? Effectiveness and efficiency are secondary measures. Effectiveness is a measure of "did we do the wrong thing instead of the right thing?" Did we produce excess inventory (tying up cash when we could have made salable products)? Efficiency is a dollars spent measure. Obviously, organizations should strive to improve effectiveness and efficiency, but never at the expense of reliability.

» Constraints are good from Knowledge Jolt with Jack

Pop quiz: Do you want a bottleneck in your business? Why or why not? Read More

efm said:

You always have a bottleneck in your business, though it may be external to your business. In this case, you don't have enough customers to accept all of your available capacity. Persuading more customers, through better marketing, advertising or pricing, will increase throughput and likely increase profits dramatically.

jackvinson Author Profile Page said:

EFM, Thanks for your comment. Nice to see these older article still spark some interest.

One thought about those "external to business" constraints... Pricing is so easy for the competition to match. What if one offered a service that the competition finds difficult to match? For example, offer guaranteed deliveries (on time delivery, or we pay a penalty). This is the core of the idea behind value selling: understand what your customers need, rather than simply giving them what they always get.

Leave a comment


About this Entry

This entry was published on April 26, 2005 10:01 AM and has 7 comment(s).

Trackback

Categories:

Related Entries

Previous entry: Physical chemistry

Next entry: KM and OL session at AIChE Annual Meeting

Find recent content on the main index, explore the full tag cloud, or look in the archives to find all content.

Powered by Movable Type 4.21-en
Picture a steaming coffee cup. Better yet, grab one and have a read!

KJolt Memberships

Blogarama - The Blog Directory