The Real Root Requirement and Precision in Language
It's reaching the sloppy end of winter here in MN. The snow that falls melts, mixes with the salt used to help it melt and then sprays all over the windshield of every vehicle on the road. As you can imagine (he says, hoping you live somewhere warm where this concoction does not cover your entire car), we go through a tremendous amount of windshield washer fluid.
Windshield washer fluid is sold by the gallon. And, as anyone who has filled the washer fluid tank in more than one car knows, most cars, even when empty, do not hold a full gallon.
I see people pursuing a variety of strategies to deal with this discrepancy. Some save the extra, leaving the jug in the trunk of their car to be used the next time. Some intend to do that and end up with 4 or 5 jugs with a little bit in the bottom, all sitting on a shelf in the garage. And, I've seen more than one person just toss the not-yet-empty jug into the trash by the gas pump.
Regardless of coping strategy, this clearly bothers people and is a problem worth solving for those building cars.
So, a few years ago, when I was shopping for a MINI Countryman, and the salesman mentioned that the washer fluid reservoir held a full gallon, that went in the "pro" column for my eventual decision to buy one.
After a bit of driving in some inclement weather, and depleting my first tank of washer fluid, the light on the dash came on, telling me to re-fill it. I happily bought a gallon at the nearest gas station, looking forward to my first ever completely empty washer fluid jug. I peeled the foil seal off and started pouring into the appropriate opening.
Then, as the jug was nearly empty . . . the reservoir overflowed. So, clearly NOT a full gallon, right?
At first, I was angry at having been lied to. But, then my software debugging experience kicked in and I wondered something. I had filled when the light came on, not when no more fluid came from the nozzles.
So, I kept driving. I'll admit I probably was more aggressive in keeping my windshield clean in an attempt to empty the reservoir.
The light came on and I kept driving. I kept washing the windshield. Until it ran completely dry.
I pulled into a gas station and bought another jug, with a bit less enthusiasm this time. I peeled the foil again and again started pouring. This time, just as the jug emptied, the reservoir just filled.
Fast forward a couple of years and, for reasons not relevant to this story, I no longer wanted to keep my Countryman and traded it in, for a Toyota RAV4.
Having bought the RAV4 in January, I fairly quickly went through the first gallon of washer fluid and the light came on. I bought a jug and started pouring carefully, fully expecting an overflow before the jug was empty. Imagine my surprise when that failed to happen.
Both cars have a capacity to hold an entire gallon of washer fluid.
However, the MINI will only hold* a gallon when it's completely empty while the RAV4 will hold a gallon when the light comes on.
Given what happens in a salty, slushy mess when you actually run out of fluid (salt forms a remarkably opaque film fairly quickly), this distinction is huge. If you wait for the tank to be completely empty, you risk unsafe driving conditions, which is the POINT of having the light in the first place (my first car was a 1953 Chevy, which, you can imagine, had no light).
This is the kind of thing that happens a lot during the design process. Whether designing physical items like cars, or software like the work management systems we implement for organizations, being precise about what is really meant and digging to what we call the "real root requirement" means the difference between something that actually solves the problem and something that doesn't.
Here's almost certainly how the requirement at both companies was originally stated:
"I should be able to put a full gallon of washer fluid into the tank."
By that criteria, the MINI can check that item off the list by including a 1 gallon tank. However, the real root requirement, the real intent of the customer request was that, when the car tells me it's out of washer fluid (which itself includes a safety margin), that I can put a full gallon into the tank.
Only by asking good questions about the request, to dig down to the real root requirement, and being precise in our language as we discuss the need, do we get to our real design parameters. And, to a solution that doesn't just check items off a list, but genuinely solves the problem.
In both cases, the actual thing being built is equally simple. After all, a reservoir is mostly empty space and a bit of plastic. I'm sure the difference in required plastic to make a 1.3 gallon reservoir vs a 1.0 gallon one in a mass manufactured car is less than a rounding error.
But, it makes all of the difference to the person standing in front of the opened hood with a full gallon of washer fluid.
*Acknowledging completely that they may have changed this design by the time you read this.