Planning for failure - embedded systems
Last friday night, I was filling up my truck with gas, and I did the "pay at the pump" thing, using my credit card. After I filled my tank, the pump's display helpfully asked "Do you want a receipt? Yes / No". I usually say no, but I wanted to remember the price per gallon, so I said "Yes." Within 2 seconds, it said "Printer Not Available." Why did they offer to print a receipt if the printer is not working? A more helpful system would have simply stated "See attendant if you want a receipt," knowing that the printer was down.
To make this system more effective, they would have to:
a) know when the attendant had replaced the paper roll
b) remember that last time they tried to print, it didn't work.
c) reset the printer state when the attendant did a test print, or closed the access panel.
Perhaps cost was the prohibitive factor.