As a programmer, much of my job is eliminating the chance for human error by automating as much as is sensible. I don’t live with the mindset of “keep those filthy humans away” but I do know the value of keeping those humans (myself included) away from any process they don’t need to be involved in. It isn’t just the complicated things, but simple things as well. For example:
Are they clean or dirty? That has been the question in millions of households all around the world since the proliferation of the dishwasher appliance. When I was young, a simple yet clever solution was available in the form of a magnet. It was a little sign that said “clean” on one end and “dirty” was written upside down opposite that. The idea is that you have it read “clean” when they’re clean, then “dirty” after rotating the sign when you take out the clean dishes and start filling it with the soiled ones.
These little signs are still available, still useful, and still completely unreliable. If you’ve ever had one in your house, you probably already know the problem: the sign rarely gets changed at the right time. If the sign says “clean” you can’t believe it. If it says “dirty” you better ask someone before you add your grimy fork to the basket.
Today’s dishwashers try to be a little smarter. Mine has a small red light that comes on when the wash cycle completes (it’s labeled “clean” of course). If I open the door then close it quickly, it still says “clean” – smart! If I open the door and have it open for over a minute, the light goes off and so my little red sign effectively says “dirty” – not so smart.
Not so smart, but how much better could it be? I say that’s a pretty good compromise. At least now when the light is on, I know it’s clean. When the light is off, I’ll have to take my best educated guess. But what we have here is that no additional human interaction is required to change that “clean/dirty” sign. There is only the otherwise necessary action of opening the door to put the dishes away. That’s a good choice made by these designers.
This is a good place to get with software. If the system can determine the state of certain things, it should. Also, it should be the sole determiner. I’ve used a bug tracking system which allowed me to unassign a bug (remove the association to any developer) but it would remain with a status of “assigned” unless I specifically changed that as well. Obviously that is senseless and can (and did) lead to an unorganized mess where things get lost in the system. My action of assigning or unassigning should be the only thing which toggles the state of “assigned” in the system.
I still think we can do better with the dishwashers. You see, at least in my house, opening the door does not always signify that we’re taking out all the clean dishes. There is no way for this system to know absolutely that the sign should be changed to “dirty” unless they incorporated a scale perhaps (which would increase the cost unnecessarily). So I’ve changed the trigger from opening the door, to adding the detergent.
The little detergent compartment is always open at the end of the cleaning cycle (because it has to open to dispense the detergent) and is always closed immediately before starting the cleaning cycle (because it has to contain the detergent). Our rule now is to close that compartment after emptying the clean dishes. Filling it with detergent is optional (just be sure to check before running) so that the reset action is as simple as possible.
Yes, this is still an opening for human error. Yes, this is even more human action required than the built-in functionality with the little red light. But the red light assumes too much (reasonably so) and we’ve found this to be more reliable.Posted in: Nexcess