Compatibility constraints of the water cooler

Raymond Chen

Raymond

One of the things you learn when dealing with compatibility is that
every single external detail is a potential compatibility constraint.

A few years ago, the water coolers in the buildings were replaced.
I have no idea why.
Maybe the new water cooler company put in a lower bid.
Who knows?
All I know is that I like the newer ones less,
and I’m not the only one.

The water cooler has three spouts:
one for hot water,
one for room-temperature water,
and one for cold water.
(Okay, so it’s also a water heater as well as a water cooler.)
The old machine positioned the spouts close enough together that
you could fit a cup beneath the last two spouts
(room-temperature and cold).
This meant that you could push both levers to dispense water
into your cup.
Now, the result was “somewhat cool” water, but the important thing
was that it filled your cup in half the time!

    Room
Hot Temp Cold
  |   |   |
  v   v   v
     |.   .|
     |.cup.|
     |.....|
     +-----+

The new water coolers has the same three spouts,
but they are positioned just a tiny bit further apart,
just far apart enough that you can’t use the “double-barrel” trick
any more.

     Room
Hot  Temp  Cold
  |    |    |
  v    v    v
      |.    |.
      |.cup |.dribble
      |.....|*
      +-----+*
             *dribble

The new water cooler is subtly incompatible with the old one,
in a manner that is not part of the specification
but rather is merely
a convenient side-effect of the implementation.

Raymond Chen
Raymond Chen

Follow Raymond