I’ve used the Praha Hlavní Nádraží luggage storage three times in my life. The first time was way back, when you handed your stuff over to a grumpy lady through a hole in the wall and got a paper receipt, in exchange for which they’d give you your stuff back. Obvious downside for the user; if you lose your receipt, you’ll have trouble convincing Teta Aparačiková that your stuff is really yours. Of course if you lose your ticket because you got pickpocketed it’s even worse as the culprit has a brief window in which they can reclaim your luggage for themselves, before you’ve had time to realise and take action.

Downside for České Dráhy (or whoever financially runs Prague Central Station); they need to pay for a member of staff to be available at all hours.
So the solution is, of course, software. It’s no good to have a mechanical machine which distributes physical keys to lockers, as keys will go missing at a high rate and you can’t just replace the missing ones at the end of the day with spare keys as there exists the distinct possibility that they went missing on purpose, and whoever has stolen the old key now has access to the locker. So the entire lock needs to be replaced whenever a key goes missing. Software circumvents the need for physical artefacts and as such has none of these drawbacks. Obvious downside: software developers tend to be g*****m f*****g b******t idiots who seem congenitally incapable of considering the ways in which their products might fail. I know this because I am one.
Even if the Prague Luggage Storage system worked the way it was imagined, it is a profoundly stupid design, but it’s so, so much worse in practice. Here’s how it—presumably—was pitched:
- It’s the 21st century, everybody has a mobile phone.
- When people pay for a locker, we’ll send them an SMS with 6-digit pin code.
- They enter the first three digits into the touchscreen terminal, which will pop open one of the lockers.
- They put their stuff inside and close the locker.
- Then if they want to open the locker they enter the full six digits and the locker pops open for the second and last time.
- Bohuslav’s your uncle.
Prague Central Station is an international station. Trains come in from Austria, Slovakia, Germany, Hungary, and Poland at the very least. People on these trains are often going to be foreigners. Their mobile phones might not work in Czechia. Their mobile phones might be out of battery after a long trip. This disqualifies them from using the system, although they’ll probably only find out after paying for the privilege. Worse, their phones may run out of battery while day-tripping in Prague, so unless they wrote down the pin code on a piece of paper when they had the chance, opening their locker may involve both finding an outlet and cold-starting a phone, all of which can take a good fifteen minutes. Fifteen minutes which did not feature in their plans between picking up the suitcase and catching their train.
The system as designed is also very particular about open locker doors. I can’t think of a good reason why this should be so, but I can think of a lot of potential problems. Only a single door is allowed to be open at any one time per block (about 100 lockers or so form a single block with a single touchscreen terminal), meaning:
- You cannot request a locker while someone else is using theirs.
- You cannot access your locker while someone else is using theirs.
- You cannot interact with the terminal at all unless all doors are closed, and people tend to leave their door open after they are done using it.
- If the door sensor on any of the lockers breaks, all the lockers will be unusable, including the ones currently storing luggage.
This is how I almost missed my train the first time I used this system. A woman had accidentally closed her locker after only retrieving one of her two bags. A single payment only allows for the opening of the door twice; once to put your stuff in, and once to take it all out. Her remaining bag was now stuck in a locker deemed ’empty’ by the system and no longer associated with a pin code. It could thus not be specifically opened. Very lucky for her, when she rented another locker, the terminal assigned her the same one again, so she was able to get her second bag out. However this had left her understandably feeling very shaky and very angry for having paid the extortionist price twice. She was on the phone with tech support trying to negotiate a refund, and refused to close the locker door, thus holding all the other lockers hostage, one of them being mine. In the end I made my train with 5 minutes to spare, despite getting to the station 45 minutes early.
The second time I used the system (last week) I was delayed even more. Having arrived a full hour ahead of time just in case I ran into difficulties again, I only made my train with seconds to spare. This time, the fault was not just the bad design of the software, but bad implementation. I had already noticed at the time of storage that the locker I was assigned (E2) did not match the locker number in my SMS (E31). I should have taken a photo of the actual locker, but by the time I realised the discrepancy I had already closed the door, and by the time I finally got it open again I was only thinking of getting to Nástupiště 5J as quickly as possible.

When I get to the luggage room, it is more full than usual with travellers looking cross. A discouraging sign. Three of the terminals, including the one on my block, are showing error screens. There’s a Cancel button and a Language button. Pressing the cancel button merely reloads the error screen, although I do have the luxury of being metaphorically slapped in the face in the language of my choosing. It takes me 5 minutes of rising panic before I realise that all terminals are in fact able to open lockers in all blocks, so not all hope is quite lost yet. I type in my six digit code, the terminal informs me that this successfully unlocked door E31, yet both doors E31 and E2 remain steadfast in their determination to keep me out. I enter the code again. And again. And again at a different terminal. Each time the system congratulates me on typing in the correct code and each time the doors refuse to budge.
I call the tech support number displayed along the bottom of the terminal which of course is experiencing higher call volumes than normal and would I mind waiting? I wait for about 10 minutes, being repeatedly informed that I’m next in line.
I give up and start looking for a service point at the station. I talk to the ticket lady, she has no idea where I should go or whom I should talk to. After more aimless wandering I find the lost luggage office. You’d think if anyone could help it would be them, but no.
Back in the luggage storage room with about 15 minutes to spare before the last train of the day to Munich departs I decide to call tech support again. Victory! It’s hard to hear tech support since there’s a very loud tannoy right in the luggage room, so whenever trains are arriving or departing, we have to stop talking for 30 seconds. Thankfully I remembered my 6-digit pin code from trying to enter it umpteen times, because you can’t actually browse your phone while on a call without accidentally hanging up. Once the confusion regarding E2 vs. E31 is—if not cleared up at least conveyed—the very helpful man on the phone triggers the door mechanism and I have just enough time to run to the platform and jump into the nearest train door. There is no time to look for my carriage from the platform.
Why is software so often so incredibly bad? Is it incompetent programmers? Is it incompetent managers? Is it suffocating committees? Is it strict adherence to stupid company rules? Is it poor comp-science education? Is it poor communication between departments?
I’ve written my fair share of bad crap, and I’ve seen people around me write bad crap, and none of the questions above seem to really cover it. At least I’m very lucky to work at a company where one is allowed plenty of leeway to fix bad design, to keep returning to some feature which can be improved. In fact at McNeel & Associates we have a whole category of bugs referred to as paper cuts which we’re expected to find and fix. But the Prague Luggage Storage doesn’t suffer from paper cuts, it suffers from guillotine. It can’t do the one thing it’s supposed to do. They took a system which worked; identified a single weakness in it; and then replaced it with an utterly broken mess which still has the same weakness. I’m pretty sure the guy on tech support is just as costly as an attendant would have been.

Leave a comment