Thursday, January 06, 2005

Great Moments in Bad Programming

I hate bad programming. Bad programming is simply blatant evidence of laziness.


Here's an example. We have a cafeteria here in our corporate HQ. Everyday, I go get breakfast and lunch at the cafeteria. Everyday I pay with my MasterCard. Often the lady at the register has to run my card through the machine twice because she inadvertantly pushed the VISA button instead of the MC button and the system comes back with and "invalid card" error.


The system can obviously tell the difference between a MC, VISA and AMEX. There are also well established rules about teh format of these numbers. So the machine should just allow the cashier to swipe the card and the program should figure out what kind of card it is and proceed accordingly.


Other people have gotten this right. If you go to a gas station and pay-at-the-pump, you just push the credit button and slide your card. You dont have to tell it what kind of card you have, it'll figure it out.


The programmers of the cafeteria's POS system were probably debating whether to add the code for detecting the card type but figured it'd be easier for them if they didn't and besides, "the cashier can just look at the card and hit the appropriate button," right?


Wrong! What they didn't count on is the fact that these register jockeys are only about half a step up from a (poorly) trained monkey. I swear this lady will look directly at my card, then look at the screen and press VISA even though the card clearly has the MC logo on it.


The moral to this story? When writing code, never underestimate the stupidity of your users and always put in the extra code to cover their idiocy. Trust me, if you do it right, your program is going to be WAY smarter than the average food-service employee.

0 Comments:

Post a Comment

<< Home