At my local train station, there is a ticket machine with the logo of “myki”, Melbourne’s new transport ticketing system. On a warm spring morning, there are five of us lined up there to “top-up” our cards with credit. But the bright sunlight on the screen makes it unreadable. We try shading the machine with our hands, but the letters are still too faint. The screen is small and the colours of the software user interface do not have enough contrast. We can’t read a word.

There are no staff at the train station and there is no alternative way to pay. We are hot and frustrated. Five adults spend ten minutes trying to buy a train ticket – with absolutely no success.

This system cost more than a billion dollars, fifteen times what it costs to send a spaceship to Mars. On sunny days, under typical conditions, it will consistently fail in its most basic function. How did it go so wrong?

Time and time again, technology systems fail at the point where they interface with real people. Whether it is a billion dollar behemoth or a small website or app, a system that is simple and easy to use is the exception rather than the rule. The people who create these systems routinely fail to consider their end users. The “human factor” is dealt with as an afterthought, if at all.

And in the end it is all of us who have to bear the cost of the mistakes.

Melbourne’s transport ticketing system is a textbook example, but this is a global problem. Despite great cost, technologies routinely fail to perform when used by real people. Why is this the case, and what can be done about it?

Blame those of us who work in technology – designers, software developers and the like. Most of us are in this business because we love technology. But technology is only useful if it helps people. Unfortunately, we don’t think about people very much. Our project meetings are dominated by talk about systems, scheduling and technology – everything but the needs of “end users”. We focus on “things” but not enough on people. Even when we do consider users, we make assumptions about them. We think we know what they want.

We don’t know what they want. They know what they want – but we don’t ask them.

The solution is simple – we have to make people our priority. Every single decision to build something must provide a real benefit to the person who is going to use it. Every technology that changes the status quo must improve people’s lives in some way. Every designed solution must be tested as soon as possible in real world situations. If people don’t like it, we have to change it.

That’s not always easy to do. It means admitting to mistakes and learning from them. Right now, we are repeating the same mistakes over and over.

Bureaucrats and managers have to change their priorities too. Project budgets rarely allocate enough money to really understand users. Working on the “user interface” is seen as something easy, trivial and cheap – just a matter of creating icons and picking colours. Businesses and goverments spend millions on technology in the “back-end” but only a fraction of that at the “front-end” where people experience the system.

Expertise from other fields is also important. The typical project has people who understand technology, but no people who understand people. Where are the psychologists, sociologists and cognitive scientists alongside the database administrators, architects and engineers? Tapping their knowledge is essential to bridging the gap between people and technology.

The good news is that this is not a hard problem to fix. We don’t need huge investments or advances in knowledge. It requires mostly a simple change in attitudes. But without that change, it’s only a matter of time before we are living with the next billion dollar failure.

Shourov Bhattacharya is a technologist, writer and singer-composer with The Bombay Royale.