A User’s Experience: Food Delivery (Or Not) Via GrabFood

I ordered GrabFood last night. Usual thing: ‘We’re finding you a driver’… ‘Driver on the way to pickup’… ‘Driver at restaurant’. 

(Context, for those outside Malaysia who may never have heard of it: Grab is a near-ubiquitous mobile-app-fronted service here in Malaysia, and in Asia more widely, that provides a whole range of logistics-related services to consumers, encompassing for example taxis, couriers, shopping delivery, household services, e-payments, and the subject of this piece, takeaway food delivery.)

Then: ‘We’re finding you another driver’. Ok, I think, no biggie. Will my food be delayed? But soon enough, ‘Driver has picked up and is on the way’.

Except: a few minutes later, well before it was physically possible for the driver to have reached me, even travelling well above the speed limit or even the capabilities of any car yet invented, ‘Order delivered’. (And wallet charged, and would I like to rate my delivery?)

Errrr…. no it’s not. My order has very definitely not been delivered. So I’m thinking maybe there’s been a mistake and I’ll get a message or call shortly. But no. I wait ten minutes… nothing. I’m hungry of course so I’m wondering whether I should just re-order (but what if the original order then turns up?). And what do I do about a refund? How many hoops will I have to jump through to get it? All I really want to know is, is my food coming or not? But there’s no communication and the app tells me it’s already here (it’s not).

So I go through the process of contacting support (which initially caused me to think ‘Oh no, here we go, it’s one of those “We don’t really want you to contact us so here’s a bunch of options for you to navigate through first, but oh ok we’ll let you send a message if you really must” things’ – but in the event wasn’t actually too bad). But the response tells me they’ll be in touch in 24-48 hours. Which is no use to me at all right now.

So I go find Grab’s Twitter account and ping them a message. To their credit, they reply fairly quickly, and confirm that the food wasn’t delivered so I’m being automatically refunded. And sure enough, when I check the app, the money is back in my wallet. That’s useful, but doesn’t change the fact that I’m hungry and my food has gone AWOL.

So I go to re-order. But now the restaurant is showing as ‘Unavailable for delivery’ (which gets me wondering whether that was the reason for non-delivery – has something happened and they cancelled the order? But then why does the app tell me it was delivered, rather than ‘Cancelled by restaurant’ or some such?)…

I start browsing around for alternatives, but you know how it is, I had my heart set on that one, and nothing else really appeals, blah blah blah, so I resign myself to rustling up some dinner from an old packet of cup soup I keep for emergencies. Not quite the experience I had been hoping for ;-)

As it turns out (I later got a phone call from customer support – so top marks to them for proactively following up), the problem came about because, apparently, the driver mistakenly changed the order status to ‘Delivered’ prematurely. Apparently he did subsequently deliver my order to my condo and left it with the guards – unknown to me. Presumably he no longer had access to my details or any way of contacting me as, apparently, no-one knew who to call to come down and collect it (despite my unit number and phone number being in the app, along with, you know, the whole Grab messaging system).  And presumably the driver had no way to undo his mistake, otherwise we wouldn’t be in this mess and I wouldn’t be writing this… Sadly by the time I found out about it, the food had been sitting downstairs for over an hour and had gone cold and inedible.

I don’t blame the driver. With my UX hat on, I’m wondering – how did the system allow the driver to make such a simple yet significant mistake, and not be able to undo it?

Was there, perhaps, a big ‘Delivered’ button in the driver’s app that’s maybe just a little too easy to hit accidentally when the vehicle is moving, perhaps while the driver’s checking the navigation map? Was there not an “Are you sure?” step? Were there not other checks and balances, such as keeping the button/option disabled when the driver is clearly miles from destination? 

Obviously that would seem to be primarily a UI issue. But it likely goes beyond that (as UX usually does), potentially into business process:

Why was there (presumably) no way for the driver to communicate with me, or retrieve my contact details once the status was changed to ‘Delivered’? Why was it so difficult for me to find out what was going on, so that I could make decisions about how to solve my immediate problem (“I’m hungry”)? What’s the use of promising a 24-48 hour response when this particular situation (and I imagine it’s not a unique one) requires immediate action? (Incidentally, I tried phoning Grab – nightmare… ;-) Why was the restaurant suddenly ‘Unavailable for delivery’? (It occurred to me later that perhaps this was because the system thought I already had an order in-progress from there – which would actually be quite clever, though only if that’s clear to the user; that would be a useful message to include in the app, if indeed it is the case – i.e. “Unavailable for delivery because we’re already delivering an order to you from this restaurant”.)

I am assuming of course that the explanation I’ve been given is indeed the correct one… If it’s not, that’s a whole other business process issue! ;-)

I’m also assuming that the driver has been given training as needed and knows how to use the app, and what processes to follow. That may not be the case, of course. It may be that the driver just doesn’t know what he’s doing. Perhaps he was new. Maybe he hadn’t been given enough training. Might he have a learning disability and need more support to learn the ropes? But again, a business issue (and quite possibly also a design issue) to be addressed.

And perhaps I should emphasise – what I’ve described here has been my experience and my thought process. Other users in the same situation may well have different thought processes, different questions, different reactions. That’s why we should always test with a range of users ;-) But the end result is ultimately the same – what’s needed is clear communication. And better still – prevent the problem from occurring in the first place.

Fixing this ought to be a nice little quick and easy UX job for someone at Grab, I would have thought. That said, I wouldn’t be surprised if it turns into something much bigger – amazing how many UX projects are actually business transformation projects. Also amazing how many start out being something seemingly as simple as a poorly designed button ;-)

But assuming my experience isn’t unique, it will be costing Grab (or someone…) money – I got my refund, and presumably the restaurant got paid (they did supply the food, after all). I hope the driver wasn’t made to pay for it. Depending on how common the problem really is, all those refunds add up. I daresay there’s a cost-benefit analysis to be done as to whether it’s worth spending money to fix it – but ethically, morally, and for the sake of good customer experience, it needs to be fixed. Meanwhile, I’m thinking – if I can’t rely on Grab to deliver my food, maybe I should be looking elsewhere…

About Jonathan Hirsch

I've been working in the interactive media industry since 1995. I'm a problem-solver with a multi-disciplinary skill set. I work on a freelance / contract basis. I help clients create great digital products.

Leave a Reply