June 5th, 2007

Compatibility constraints of the water cooler

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.

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.