Technology and modern user experience
When you work with software and user experience, a lot of interesting things are discovered. For instance, it feels like the tolerance of issues with software is much lower than say five years back, despite the fact that people in general are a lot more computer savvy today.
Desktop applications and web sites are supposed to work perfectly, and if they don’t, people say “sigh, it’s 2006 and I cannot even book a single airline ticket online” and perhaps move on to another site which hopefully works. Modern user experience demands a lot of things of today’s software. It must be intuitive, beautiful, bulletproof and always ready to serve.
Meanwhile, the complexity of software has forever been on a steady increase. Just imagine how many lines of code you execute every day by logging into web applications, playing games, reading email and so on.
The high user demands comes with a price. There really are no small applications anymore. Even the tiniest of tiny tools for normal users require a lot of effort put into functional analysis, interface development and the testing phase. A lot of things are pre-made today in forms of APIs, graphic libraries and controls, but these things are also complex stuff even though they were created by another person.
A very simple sketch would illustrate this:
…where the yellow line is software complexity over time and the red line represents tolerance over time (no pun intended with the crossing).
There. I’m not saying it’s acceptable with buggy software. But remember that most of the code lines are the brain child of a human being, and humans make mistakes. It’s in the human nature to make mistakes. Add the fact that common estimates show that every 100 lines of released code contains one to three bugs, and you begin to realize the fragile foundation of the technology we all rely upon every day.
12 years ago, I read a quote by Gerald P. Weinberg: “If builders built houses the way programmers built programs, the first woodpecker to come along would destroy civilization”. That statement is just as true today.
Computers and internet have gone from nerdy toys to essential daily tools in only ten years. This kind of information exchange and technological acceleration has never been accomplished before in human history. There has been a lot of hype regarding the information revolution, but we’re actually living it today, whether we want to or not.
There is an obvious way out of this futile war in the trenches. We meet in the middle. Users accept the fact that software is a very complex construction created by humans, and developers accept the fact that their software is going to be used by a lot of people that deserve respect and a solid user experience.