Grocery checkout is not a hard problem. Scan, bag, take money, print receipt. There are a few odd cases, things like produce that generally has no barcode, but these are easily handled. People do it quite well. It doesn't even take them long to memorize the numeric codes for everything from apples to jicama to zucchini. The people that work check-out at my local grocer long enough that I recognize them from trip to trip can identify hundreds of different fruits and vegetables from around the world and key in a code. And yet people are expensive, sometimes hung over, periodically surly with customers, occasionally late for work. Wouldn't it be great if we had a coolly efficient machine, cheap and reliable, available 24/7, fast enough to eliminate lines in the 20-or-less (sic) aisles? The problem is that, as Kaylee might say, the machines appear to have been made with longing. Made by a person really longed to see what a grocery checkout line is like. There are basic usability practices that crop up virtually everywhere in life, not just at grocery stores, and yet these machines are programmed in a way that ignores virtually all of them. The fixes are simple, requiring only some minor code tweaks, and yet in the years since they began to be popular, I have seen no evidence of improvement.
There is one main problem from which most of the others follow: the machines in no way correspond to how actual people scan and bag groceries. They have a fixed cycle of scan, bag, verify weight, scan, bag, verify ... which isn't too bad when you buy things one at a time. But what if I buy two bars of baking chocolate? There's no way to indicate that I have two of something. And I can't scan them both and then bag them because the machine insists that the first be bagged before the second can be scanned. And I can't skip bagging on the first one because the machine will then complain that I've bagged both. That's right, it knows I bought 2 chocolate bars, and it sees the weight of two bars in the bag, but rather than handle it intelligently, it locks up and summons a manager. You can imagine how special this makes me feel when I've bought six cans of tuna.
Since the designers apparently never buy more than one meal at a time, it falls to me to work around their ignorance. After scanning an item, I can tell the machine to skip bagging for it, which should fix a lot. This presents two problems though. The first is a general complaint about the machines: they're incredibly slow. It takes several beats after I've scanned an item before I can select Skip Bagging, so I might as well scan and bag my six tunas individually like some sort of broken robot, since it'll be just as slow but at least I'll have something to do other than stare at the LCD, waiting for the button to appear. The second problem is that if I skip bagging for too many items, the machine again locks up and summons a manager. There's just no way around the inefficiency.
Produce is always going to be a problem because it's generally poorly labeled (no barcode, and there are many different kinds of apples that are tracked individually) and requires some sort of look-up on the customer's part. When you put an item on the scale, the machine guesses what it is based on weight. That's a good idea. In practice, it doesn't seem to work terribly well, but it's a good idea anyway because of how painful the alternative is. There should, of course, be a number keypad where I can enter in the produce code. Most people won't know it but it's incredibly efficient for those who do, and presents no real downside to everyone else. Besides, most of the produce signs are hand-done anyway, and there's plenty of space to write the code on there too, in case the shopper wants it.
There should also be a keyboard where I can enter the first few letters of my produce's name. Instead, I get a series of tabs. A-D, E-G, H-M, N-Q, R-Z. Sorry, but I can type JIC on a tiny on-screen keyboard faster than I can figure out that my jicama is under H-M. Of course, once I hit H-M, I get a long list of possible produce options. The entire experience mimics how the machine organizes the data rather than how a person does. These machines run Windows, so there's obviously enough CPU power behind them to run a keyboard such that a row of icons for the 10 best partial matches updates with every keystroke. With just a J, I should get jalapeños and jicama pretty quickly, whereas P might take a second or third letter to narrow the field among parsnips, persimmons, peaches, pears, plums, papaya, plantains, and peppers of several varieties. And yes, jalapeños should be under J, and P for pepper, and C for chile. But I guess that would be hard. Might take an extra hour or two of programming. Cry me a river.
I assume the slowness and inability to queue multiple scans before bagging are a result of stupid or lazy designers. For this there is no excuse. Maintaining a list of the last 3 scanned-but-not-bagged items is easy; figuring out which item is missing based on weight of the missing item when it comes time to prompt the user for it is easy; complaining when you get to a 4th unbagged item is also easy. It's possible that it's deliberate though. Maybe somebody thought that if you had to scan and bag individually, it would make stealing things harder. And the slowness not-so-subtly pushes you in that direction since you can't save time by being less mechanical about it. If that's the justification, I'd have to file that under the stupidity column as well. Let's ignore the many easier ways there are to steal things from a grocery store and concentrate on these machines. I'm unloading and loading the same cart. I've skipped bagging on a big box of cereal and a bag of chips, both of which immediately go back into the cart because there's no other place to put them where they won't be caught by the scales and cause the machine to lock up again. Back in the cart they go, conveniently obscuring the couple jars of expensive jam, or shampoo, or over-the-counter meds. I guess I can steal after all.
And there's really no excuse for not being able to run my six tunas through with one scan, particularly since the master console for each group of machines has that capability. Try it: next time you buy a tray of tomato soups, ask the machines' caretaker to enter in the quantity for you so you can scan just one. That really epitomizes the entire experience: features that are obviously useful, easy to implement, and not available to the user.
These machines are either designed for pedantic security that wastes my time and doesn't actually make theft any harder, or they're just badly designed overall, tempting me to steal things for the 5 angry minutes it would save me. Automated checkout is a great idea, but I'd rather spend time standing in line learning about new advances in airbrushing while waiting for a checker than spend it fighting with a machine with such an aggressively bad user experience. If you can't design a machine that works better than a bored teenager making minimum wage, go back to the drawing board and call me when you've seen the light.