Everything Is Still Broken07 January 2020
Photo: Unsplash - chuttersnap
Happy New Year!
Or is it? I don’t want to start the new year with a negative post but the ongoing state of software is unsustainable. It is also unfair on paying users to expect them to put up with it. Products are being released that are unfit for purpose, insecure and unreliable. This is at a time when people more than ever have bought into the tech dream. They are sharing on social media and managing their life with a large number of apps. Everything from managing their shopping lists, consuming their entertainment to family planning.
And yet as an industry, we expect them to put up with terrible UI’s, bugs, breakages and security breaches. All the while we expect them to continue paying a subscription fee so we can build more features for them to endure. As users, we never ask for our subscription fee back if it goes wrong. Why? If you are paying for fine dining and your food was under or overcooked, you would complain. If you arrived on your holiday to find that your hotel was a building site, you would get your money back. So why are we happy to accept broken apps?
Scott Hanselman wrote a pice eight years ago called Everything is broken and nobody’s is upset. I will wait here for a moment while you go and read it.
How many of you can relate to what Scott outlined in that post? Not so much the actual software and services that were breaking. More the common thread that every app you try somehow has an issue or lets you down.
In a similar approach to that article, here are the stupid issues I have had to deal with this week:
- Notion. On mobile takes three attempts to open and takes nearly a minute to load the first page. On any platform, it will not allow me to “Duplicate” a page with a lot of subpages. It tells me that the page is too big.
- All 4 mobile app. It stopped playing every time it needed to play a commercial.
- American Airlines Payment Page. I upgraded some seats and wanted to give them £300. Their payment page will only allow you to enter an American address. A preset state and required zip field blocked me from doing so.
- Chromecast. It never streams a whole film without failing even though I am casting from a Pixel 3. It’s not just my phone either. My wife has a Moto G and my son an iPhone and they both suffer the same.
- My Fitness Pal seems to show ads fine but when you are searching for foods to log it regularly causes the app to stop working.
- Station. Adding many Google accounts doesn’t work. It looks like it has worked but it confuses the accounts when you try and switch between them. Also if you keep pages open to read later (their core USP) then say goodbye to your RAM. At one point this week it was eating 45% of mine.
- Bluetooth. Four sets of headphones and one Android phone. Every time I turn on a pair they can not reconnect without repairing.
- Visual Studio Code. On Manjaro, every time I try to use it after hibernation the UI breaks. I get random UI elements all over the screen and have to restart it.
I will stop now as I am boring myself.
So why have things not improved since Scott wrote his piece eight years ago? I am not alone in thinking about this. Nikita Prokopov recently published a great article on Software Disenchantment. In it, he talks about badly designed, slow, untested software. He also talks about why companies allow their products to go out in such an unfinished state. It’s a very worthy read.
As an industry we have some growing up to do. I can not think of another professional group of people that behave in this way.
We need to start by focusing on users. Every user is unique but we treat them as a defined standard. We give little thought to users that are older or who have disabilities or accessibility issues. Teams spend excessive time focusing on creating UX journeys that result in conversions. Few teams spend equal time on defining enjoyable experiences. Nor experiences that are enjoyable and seamless for all their users. User-centred design is key to a successful product. Great UX experiences will result in conversions.
We need to realise that while MVP’s are a perfectly good idea they need testing. A common thread in the startup mentality is that a developer can do everything. Build it quickly, release it and the users will come. We have seen this with the idea of Devops and it is not working as sold. Great developers write code and solve problems. Great testers ensure that what developers produce works and are fit for purpose. Great Infrastructure teams ensure it is working in an optimal fashion 99.9999% of the time. Teams need to have the right balance. It’s not right to expect one or two people to do it all.
The tools used for developing products need improvement. It is over 75 years since Plankalkül was designed. That’s a long time for such little progress. Languages and stacks today vary in quality and achievable productivity. They all still allow you to write code that results in basic errors. Why? Vast numbers of programs are CRUD based database front ends. Why is this not a solved problem? Why do we focus on disagreeing on the difference between language X and Y? Or the difference between object-oriented and functional programming? Let’s set about building a common framework of solid, risk-free tools that enable fast development of common functionality. Let’s also focus on making that framework work across the most common OS’s and hardware.
We are lucky enough to have some immensely intelligent minds within our industry. We also have a large number of people that do care about users and stability and experiences. Let’s embrace those people. They don’t want to slow down projects. They don’t want to prevent revenue generation. They want to be proud of the technology they build and they care what users think. Their knowledge, idea’s and passion will result in far more happy users and revenue as a result.
Think back to the last website or application that made you feel surprised or happy from using it? Now think about the experiences in the last few weeks that were negative. Is it not time to expect more of the former?