Everything I Needed to Know About Good UX I Learned While Working in Restaurants
nngroup.com
nngroup.com
Everything I Needed to Know About Writing Software I Learned While Working in Restaurants (Kitchens)
Sanitize all inputs.
If you have a single point of failure, it will only be a problem when it matters most.
Your recipes will need to be constantly tweaked in alignment with the stars.
Users will always do things you don't expect, and will be upset when your system doesn't behave as they'd expect.
Expect many complaints about the lack of insert unadvertised feature here.
Team communication often trumps raw skill.
Snark aside, I do think that many people would be better off doing a tour of "civil service" in retail or food service before going off to fancy jobs. I really did learn a lot both as a line cook and in retail.
Everything I Needed to Know About Writing Software I Learned While Working in Retail
1. The user does not always know why they are there and what they want to achieve.
2. The user cannot guess what something does, so they rely on the visual clues, such as reading the box.
3. Users will need to undo something at some point (sorry, no refunds).
4. Two customers wanting the last stock item on the shelf causes a concurrency issue.
5. Under staffed and too many customers helps you learn about queuing systems and load balancing.
6. Getting access to stock from the main warehouse on a weekend reminds you of the importance of correctly configured user roles.
7. Disparity of prices from the mail order catalogue and in store prices tells you the importance of data propagation delay.
8. Not all users understand the concept of an automatic door and which direction they need to enter and exit. Receiving an error in this instance causes the user to experience huge embarrassment.
9. Users will attempt to steal something that isn't properly secured.
A thousand times, yes. I've moved into 'devops' from support, and it's just as clear on this side of the divide just how little esteem developers have for support staff.
One bit of schadenfreude from the past: I worked in a 2-person support team in a small company, and constantly had requests for improvements (both support- and client-friendly varieties) rebuffed, basically with the 'eh, what would support know about products' attitude[1]. I ended up leaving that place, and the other support guy had already booked a month-long sojourn on the other side of the planet, leaving the developers to now support their own product. The company ground to a halt and no-one could do a thing as the half-dozen strong dev team struggled to do support with the shitty environment they gave us to work with. Apparently on the other guy's return, better support tools shot to the top of the devs' priority list.
I also remember hearing about a wine distribution company in Western Australia where every new hire, regardless of position, spends a week half on support calls and half in shipping, so that everyone is exposed to the difficulties of packing and shipping wine, and dealing with customer breakage. I love this idea, and wish it was more widespread. Dealing with the public is hard, but there's not much you can do about that. Dealing with the undeserved contempt of your coworkers is also hard, and it doesn't take much to expose people to the more human aspects of the crappy positions in a company; raising empathy can really help.
[1] I've always found this bizarre, that the department that has the most client contact when something goes wrong is so routinely ignored when developing the product further.
I especially like your point about raising empathy -- I think that's a really important effect of having to try out being the person at the bottom of the totem pole.
(1) Write code
(2) Follow good software engineering principles
(3) Have a public profile
(4) Negotiate a higher salary
(5) Never forget that dispensing wisdom through perhaps tenuous analogies is an integral aspect of (3), and arguably also of (2).
I thought that it was a hallmark of American culture that you get to do that in college, before you get a professional job.
1. C:\> a {enter}
(a.bat starts c:\pos\pos.exe)
2. Pull-down menu: Transactions -> Sales {enter}
(Sales is the default selection)
3. Bill no: <last + 1> {enter}
(new id starts a new bill)
4. Item code: <4823> {4-digits+enter}
5. Quantity: <2> {2-digits+enter}
6. Item code: <blank> {enter}
(just one item; give blank to exit)
7. Menu: [Print, Next Bill] {enter}
(Print is default selection)
(loops back to 4, keying in a new bill)
Without a barcode scanner, a keyboard-centric interface takes the minimum possible number of keystrokes for a POS system. This efficiency was the norm in DOS-based text-centric systems, but with today's GUI interfaces, developers have to put extra effort to make things keyboard friendly. This is not done well enough in many cases, and is an instance of how the forced-advancement of technology makes things worse.The way it happens in places with low number of SKUs (< 10k) is people who're new typically search a lot in the beginning, but over time, they'll learn the most frequently used item-codes without any deliberate learning. They also get really fast at the keyboard. This was my experience building DOS-based POS software for small supermarkets and grocery stores.
If there are a much larger number of SKUs, or if the item-codes are provided by the manufacturer (like in the automobile spare parts business with 16-digit alphanumeric item-codes), you have to key in them manually.
A paint store I built software for had a huge number of SKUs, but they were renowned for their customer experience. This was made possible by putting new employees through a training whose qualifying test is to key-in a bill of materials at a really fast pace. They also chunked item codes into well-defined easily-learnable categories. This was the grouping: [Manufacturer, Product, Packing, Color, Code]. There would be < 20 manufacturers, of which only 4 or 5 are frequently used. Same for product. Packing and Color were more of attributes, but were easily learnable and helped uniquely identify a product.
I am having trouble imagining how a keyboard-centric interface would require less key strokes than the number of screen-taps for a POS system designed for a pizzeria. For instance, to add or remove a single ingredient to a pizza in the touch-screen POS system it required a single tap. In a keyboard-centric POS system, assuming the ingredients are identified by id starting at 1 through 75, most ingredients would require two keystrokes plus the enter key. My personal experience leads me to believe that specialized touch-screen POS systems certainly work well for some of the more complex restaurant menus.
Then the touch screens came out, so slow in comparison. The learning curve was faster but the operations were terrible in comparison.
I still remember Red Lobster POS codes from the 1990s. 2411, 2443, 901, ... Good times :-)
One of the problems you always have to deal with though, is that no matter how good the app is, the person programming in the menu can still be completely useless and make it annoying to use, so the challenge is to make programming in the menu as easy as possible.
Being iPad based means that we can actually utilise touch-screen actions, e.g. you can swipe items into a tab, rather than having to tap the item, and then tap again and tap some more, like you're describing.
We do retail alcohol in addition to restaurant food, so we have a lot of items on our menu. I don't like how the menu is organized, but it would be too slow and painful to reorganize at this point.
I would kill for an API so that I could make mass numbers of menu edits by script. I would require some sort of a testing environment for that, though.
There's also this kind of "blood sweat and tears" attitude with a lot of food service management, and so things they see as conveniences are a sign of weakness.
There's also the fact that switching POS/ordering systems requires re-entering the entire menu and all options, and it's often management who's expected to do that.
All of these things (again, in my observations) add up to a much smaller actual market for selling such devices than one might think at first blush.
Without trying to toot our horn, it's a lot better than any of the legacy systems out there.
So no, there ins't really a reason why there isn't a solution except that nobody has made one yet (except for us and a couple of other tablet based POS systems).
It's a massive cost to upgrade, because they'd have to upgrade everything.
Uhhh, no. Maybe it's a cultural thing, but here in England no restaurants have pictures. It's cheap and tacky, and it's a huge red flag when you encounter a rare one that feels the need to show you photographs of bowls of pasta/steaks. I defy you to show me any European restaurant that treats it's customers like children by showing them brightly coloured pictures of their food on the menu.
The only exception I can think of is the desert menus for Indian restaurants, but that's mainly because they don't really 'do' desert and just buy the ice cream and menus from some distributor as a package.
I would say try to be more objective because you may be missing out on opportunities to actually improve things.
It's helpful if you don't know much about what you're ordering (is it a curry? soup? stir-fry? etc).
I'm not sure if this is a thing aimed at tourists or not, who might have trouble reading the menu but can visualise the dish easily.
It's not. Even out where tourists don't go, beyond the reach of English menus, you will see the same plastic food samples. It is just nice to have an idea of what the dish is like.
Also surely the menu would be ordered logically, with noodle dishes placed under a 'noodle' section, same for soups and curry.
> I defy you to show me any European restaurant that treats it's customers like children by showing them brightly coloured pictures of their food on the menu.
Edit: Here is an online version of the printed menu http://www.kanpaisushi.co.uk/kanpai_sushi_menu/
We're talking about in-house menus given to diners.
Edit: you must work for Deliveroo?
When given an in-house menu, now days I pull up Yelp on my phone and look at the pictures of food that people have posted. It leads to me ordering things that sound boring on the menu but that look really interesting!
It also helps solve the problem of different people's understanding of what a dish is. I've seen a dish with the same name served boiled at one restaurant and fried at another!
Yelp's interface around this isn't exactly the best (not an intended use at all!) but the usefulness is amazing.
FWIW I eat at at a very diverse set of restaurants, so I often never know what I am going to get.
Higher class establishments don't do it in general but it's not like it's unheard of in the UK to use food images on menus.
I've only ever seen pictures on a 'proper' resteraunt menu once in the UK, it was only on the outside display menu. The food was beyond disgusting - I should have paid attention to the red flag.
I agree it's cultural in the UK that this is tacky but besides that, why is it a bad idea?
I used to be able to go through the drive through of a local taco place and order "2 Super Mightys, mild with sour cream", "Anything else?" "Nope", done. They've added a bunch of options to it and now I have to have a conversation: 2 Super Mightys... white or wheat? white... hot, medium or mild? mild... Would you like sour cream, guacamole or salsa on that? sour cream... Any chips? No... Would you like anything to drink today? No... Anything else? No... They always ask in the same order and I've tried giving all the selections at once in hopes they realize I know what I want and just let it be done, but they always ask the follow up questions anyway or they get tripped up and I have to repeat everything. Now, if I'm moody, I just go over to McDonalds and get the #1.
EDIT: Of course this applies to real restaurants, not mcdonalds style...
Uhhh, what? I'm struggling to think of a favorite or popular restaurant that has pictures on the menu or in the restaurant. That's a move generally relegated to cheap chinese or mexican restaurants. You'll find pictures on yelp and sometimes on the restaurants website. But, in general, no–pictures aren't what sells.
Edit: typo
But again, those are chain restaurants and not what I'd consider a favorite or desirable place to eat.
Red Robins and BP are definitely lower tier, but they still count as a "popular restaurant," at least in Edmonton they are very popular.
I like to spin jargon as a teaching opportunity: "Did you know that we call the large cup a 'venti' because venti is italian for 20, and the cup holds 20 ounces of coffee?" Now the customer feels like they've learned something about how we make coffee, will use our fancy jargon, and might even tell all their friends that we taught them a snippet of Italian.
Grumpy, I know. I just loathe obfuscation for the sake of marketing. Guaranteed to mean I'll avoid that store. And no, I don't use Starbucks.
Huh. The more you know.
1.) If you have to call in outside contractors, expect it to cost too much, and be done incorrectly, so you'll have to go over it again yourself.
2.) Investing in good tools saves a lot of time and money in the long run.
3.) If you let the cruft build up without cleaning it out once in a while, it can bring everything to a screeching halt eventually.
4.) Talking about doing things doesn't get things done. Somebody has to go out and get their hands dirty actually doing it.
5.) It's easier to schedule your work when there is a regular, defined schedule of interruptions (9AM coffee break, 12PM lunch, 3PM coffee break) versus random ad-hoc interruptions.
6.) Some operations really need locks to safeguard users and data - i.e. make sure you've locked out the circuit on the wood chipper before you climb in to replace the knives...
7.) Respect the old geezer who has been around forever and had their hands into every component of the system. They know not just how the system works, but why things are the way they are now, when that differs from the original spec. Ignore their wisdom at your own peril.
8.) Most people don't take a lot of pride in their work, and will try to do just enough to get by. If your life depends on something, make sure you trust the person doing it isn't in "good enuff" mode. Then check it again anyway.
9.) Paid overtime is a great incentive to management to have people get shit done during normal hours. Calling workers in off-hours should be expensive and rare.
Everything I needed to know about good UX I got from a book title: Don't make me think
The book helped too though.
I think this is great advice not just for UX, but also for when communicating technical topics across disciplines or to nonprofessionals. Of course, this is easier said than done -- many concepts are often not directly translatable, so it takes work to come up with near optimal approximations.
But if you think the UI for the end-user is bad, you should see the UI for the people who have to maintain and refill the machine. Having these things internet connected throws a pile of rotten eggs on IOT.
That they typically had only one each sugar free (usually diet cola) and non-carbonated option.
I think why people take so long is because it's their 1st/2nd time using the machine, and they want to try out something new. Or in the worse UI choice [2] there's a huge central button that takes you to the mixing selection, and once there its difficult to get back to where you'd select the standard drinks.
[1] https://i.ytimg.com/vi/kihGFB4XT60/maxresdefault.jpg
[2] http://www.bevreview.com/wp-content/image_coke_freestyle_nra...