... So we're driving out to my daughter's softball game in Hopkins, Michigan, and I choose to go straight instead of turning left at the shortcut. We've got plenty of time, and if I go straight I can turn past Sacred Heart Mission, which is a nicer drive.
My wife points out that this is not the fastest route. This is not the first time I choose the slower route; I commonly turn out the driveway to go downtown instead of taking M-89. Why is that?
Have you ever had one of those moments where you realize there is no right answer? Where the other person asks "why" or "couldn't you just...?" but they actually mean "There is no good reason" or "You should"?
Again, I Pause.
Carefully choosing each word, I say something like "well, I'm reluctant to answer. A proper answer would take a long time. But the short version is this: I suspect that I do not value efficiency as much as you do."
That did not go over well.
So let me share with you the longer version, that went over better.
Efficient ... or Effective?
We tend to use these terms interchangeably, but when you look them up in the dictionary, they mean subtly different things. Efficiency is a measure of utilization; we might say a gas furnace is highly efficient if most of heat goes out the heating ducts and into the house -- as opposed to out the exhaust, or heating the basement. A 100% efficient furnace would let no heat escape. When it comes to technology workers, we typically mean a team is 'efficient' if everyone is working, all the time. To do this with clerical jobs, we can create an always-filling inbox, but with knowledge workers we typically need to have them work on multiple projects at the same time.
Effectiveness, however, is different. Effectiveness is how good we are at accomplishing the task at hand. Consider the typical fire department. Couched in these terms, it is not efficient - 95% of the time a paid staff is sitting around, training or cleaning the equipment. Yet when we do have those 5% of emergencies, we need someone to respond quickly.
In that case, the fire department has a conflict between efficiency and effectiveness. And, for the sake of public safety, they'll choose effectiveness every time.
Likewise, all over the world, there are fighter pilots and entire airborne brigades standing at the ready, collecting salary. 99% of he time, they'll be sitting around playing cards. But you want them standing at the ready, don't you? I sure do.
In some jobs designed a certain way -- perhaps on an assembly line -- efficiency and effectiveness can be interchangeable. Not so in software.
This isn't my idea; Tom DeMarco explains how administrative assistants need a quick response time, thus they need to have built in slack in his book by the same name. Eli Goldratt, creator of the theory of constraints, talks about having factory employees waiting for the instant that the machine is done in order to load quickly in his opus The Goal.
But what's that got to do with driving to a softball game?
Well, it has to do with optimization. Optimization is another word we like to use a lot, and it ties back to efficiency or effectiveness. Optimization doesn't just mean doing a better job at the work. It means pushing the work toward the best possible way of doing it -- the optimal way.
The things, I find that optimal is generally best for a given way of thinking.
When we do the building project, and we get to the point that we are trying to save a penny on each brick, someone will say "hey, with ten thousand bricks, you are starting to talk about real money."
I yawn. Or, more accurately, when we get to an optimization problem, I start looking for a different way of thinking. For example, if we are near the best we can possibly get for brick, let's look into concrete or some other building supply.
Optimization, in my experience, is often a lot of work to squeeze out a little more reward.
I'm not excited about it.
In a similar way, if I'm water-sealing my deck, and I'm moderately fast at it, I don't look for a faster system of using a paint brush. Instead, I'll look into using a paint roller. I don't want to optimize paint-rolling, either -- I discovered spray-on water seal.
It's the same thing in software. Oh, sure, it's good to write a batch script to save us some typing. It's good to have an automated setup of our test environment instead of manually configuring. Don't get me wrong. But there's something that happens -- some tipping point, where we are spending a lot of mental energy to eke out an improvement from 95% to 97.5%. Me, I'll just leave it at 95% and look for something else to improve.
In some cases I just don't find any more improvement. Until hovercraft, low-flying aircraft, or the teleporter become popular, the fastest way to get to Hopkins from Allegan is going to be taking A-37.
It's going to take at least 55 seconds longer to get there if you take 20th Avenue.
Forc me to choose between efficiency and effectiveness and I'll choose effective every time. Yet even when the two align, sometimes the difference in approaches is round-off error. And, when that happens, there are other things to consider, like Aesthetics.
20th Avenue is a drive I haven't taken a thousand times, and it has it's own special charms, including Fat Blossom Farm and Sacred Heart Hall.
I think I'll take it.
Schedule and Events
March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email: Matt.Heusser@gmail.com