Since I work from home, I make it a point to go out for lunch at least once per week. It helps to keep me from going a bit nuts staying in the house all day, especially during cold, snowy Minnesota winters.
This week I visited a local fast food joint that happens to have a new loyalty program via a mobile app. You visit eight times and you earn a free combo meal. To log a visit, you tap a button in the app, and it displays a QR code that they scan at the register, or if you forget, the app can scan a barcode on your receipt. I’m … not exactly a fan of QR codes, but this seems like a pretty good use for them. I had never seen their system in action so I decided to check it out.
So after placing my order, I ask the employee at the register if he can scan the QR code in the app, and he looked at me like I was born on Mars.
I looked around the restaurant. On every table, there’s a table tent advertising the new app. There’s a giant, backlit poster right next to the ordering counter advertising the new app. This is clearly a pretty big push for them.
But he had no idea what I was talking about.
So the poor employee at the register shouts to his manager, who shouts back to do it manually. I didn’t quite hear the exchange, but as I’m watching the screen, I see that he’s trying to give me a free meal. So I protested, as I wasn’t about to accept a free meal I hadn’t earned. I was also starting to grow a little embarrassed as it was lunchtime and there were hungry people waiting to order behind me. I asked him to reverse the discount, and I would just pay for the meal normally and scan the receipt barcode later.
Well that didn’t work either. Even though the barcode was printed on the receipt very clearly, the app refused to scan it. I had to enter the numeric code below the barcode manually.
This got me thinking about the things people – especially software developers – completely forget about in software projects.
It’s far too easy to fall into the trap of writing code for code’s sake, and forgetting that for the code to be successful in solving a business problem, so much more is usually needed. You need usability testing, good documentation, marketing, training, or a hundred other potential other things for software to really be successful.
In the case of my lunch visit, a little bit of employee training would have gone a long way. Hopefully this was just an isolated incident of a new employee just learning the ropes and some miscommunication. Otherwise, a lot of money spent on app development was a wasted investment.
So just remember, the code isn’t everything.