Good software doesn’t happen often or easily. It’s a combination of optimized code, someone who understands design, and someone who understands how humans work. Anyone who knows me knows I hate when people take something great they’ve made and manage to screw it up. It particularly grinds me to see a GUI that used to be great go sour.
It’s confusing to me why people in the tech community insist on the hardware they buy being theirs (being able to run whatever OS they want), yet that that same ferocity doesn’t extend to the apps running on said OS.
For people like me, the internet and our computers have become a major part of how we live, and dare I say where we live and spend our time. Your computing environment is organized to your needs just like your home is. The difference is, your home environment doesn’t change without notice. Why should your computer?
What if you walked out of work today and your car was a different color? What if someone reorganized everything in your home, and even removed some of the stuff you regularly used, or permanently moved it to another room? I’ve come to realize lately that while I may get to determine what OS I run on my devices, that doesn’t mean much anymore. Any major app (or even app store) these days has some kind of auto-updating mechanism, and that means when they change their mind, they change my environment. Auto-updating is great if I’m still in control, but increasingly, I am not. Software is part of your daily workflow and automatic updates / unnecessarily requiring internet connectivity takes control away from consumers. It means you can’t set up an environment today that you can come back to a year from now. 5 years from now? Forget it. Some offenders that that come to mind are Spotify, iOS apps, multiplayer games without LAN support, and Chrome. I’ll talk a bit about my experiences with these.
Before you burn me at the stake for saying auto-updating Chrome is a bad thing, don’t get me wrong. I’ve no issue with Chrome making updates to security automatically. In fact, I’d even go as far as saying that because of their outstanding session-resuming functionality, I’m even alright with them remotely restarting my browser if it’s security they’re updating, but more often than not it’s not – it’s the GUI, and unnecessarily. I hate that. Everyone hates that. It’s like someone redecorating your home without your consent. Yes, the product they made is theirs to change.. that’s great.. but now it’s part of my environment. I bought or chose it as it was at install time, and I don’t like my stuff messed with – especially when it impacts how I get work done.
A few quick instances that come to mind. (I’ll add screenshots for these soon.)
Google Chrome – Implemented non-native huge context menus a while back trying to appease to touch users. Users on PC hated them. Chrome eventually reverted.
Google Chrome – Changed the simple (but not perfect) “new bookmark” dialog into a confusing mess. Required a chrome://flag to turn it off. Normal users = screwed.
Spotify for Windows – Completely redesigned their GUI, eliminated the widely-used “star” functionality turning it into a playlist instead, app was noticeably slower. Also once again we’re now faced with unnecessarily-large padding so you can only see 1/3 of the songs you used to per screen. Previously, this was one of the best-designed and fastest applications I’d ever seen. Spotify used to be outstanding software.
Cloud apps are now part of our daily workflow too – even Gmail has had major UI issues:
GMail – Gmail was redesigned a few years ago (along with a slew of other Google products) to mimic Google+’s all-white design. This provided no functionality improvements, once again added an assload of padding such that like 10 email items were now displayed on your screen at time instead of 30, and changed all the previously-text mail action buttons to unrecognizable symbols, such as an Octagon for “spam”. The developer spoke about the changes and ignored all user backlash, calling hundreds of upset users simple “user aversion”. Jono from Mozilla Labs did a great writeup on this called Designer Arrogance and the Cult of Minimalism. Highly recommended reading, with screenshots!
I’ve only mentioned apps that auto-update themselves thus far, but the same issues apply even with apps that let you press the button yourself:
Microsoft Office 2007 – Introduction of the ribbon, a poorly-organized, standard-breaking change that spread to all MS products. They destroyed the simple File > Save and Edit > Copy methodology that they and every other application had been using since 1985, and that most still use to this day. They replaced it instead with a cluttered mess that always leaves me hunting-and-pecking for that damn button I haven’t used in a few weeks. You might argue that you don’t have to upgrade, but a new XML-based document format introduced at the same time and made the default meant that now that’s what everyone else is using, so now you’re forced to as well.
Microsoft Windows Vista – Giant title bars and buttons, removal of icons on the righthand side of the start menu for no reason, horrid ugly skin literally making use of cyan when Aero isn’t enabled or supported.. terrible. Again, you don’t have to upgrade.. but what if you bought a laptop during that time? Unless your OEM was nice enough to provide you with XP drivers, you were stuck.
iOS 7 – For average consumers, the phone was completely changed with no warning. A nice glass and drop-shadow centric OS with one of my favorite UI designs ever suddently changed to making everything “flat” or blurry transparent gray panels, glaringly-white backgrounds, tiny thin fonts, horrid icons and colors, ’98-era neon gradients, buttons became unidentifiable text.. what a mess. If you wanted to run the latest and greatest apps, upgraded just to try it out, or bought a phone post-release, you’re stuck. “Downgrading” was not allowed and still isn’t.
iOS and Mobile Apps – Most mobile apps are a shell for a site and can change at a moment’s notice. They also like to make use of the latest OS’s modern features, or in the case of iOS, a new language entirely, meaning to continue to run them you’ll have to update to the aforementioned iOS update or perhaps an entirely new device! Even banking apps are guilty of poor backward compatibility.
iTunes – iTunes on all platforms has undergone several iterations which massively change the GUI. The latest two iterations changed the icon of the app twice within months, and removed Cover Flow – one of the nicest-looking features on the application, defaulting instead to a completely useless Cover Art tile view that nobody in their right mind would spend all day scrolling through. Want to use something else? Too bad.. if you want to restore phones, manage backups, add movies to your phone, you’re stuck.
Internet Connection Required
A last thing I want to mention is unnecessarily requiring an internet connection. This applies to software activation / DRM, multiplayer games that should be playable on LAN and instead are forced to use third-party server matchmaking, and even cloud-based software. These things are evil for two reasons: (1) Your uptime is now my uptime, and your enemies are now my enemies. (2) The software I just “bought” now has an unnecessary self-imposed lifetime on it, based solely on your pocketbook and willingness to keep old servers alive. I’m no longer buying software, I’m investing in your company, licensing software, or renting a server – however you want to look at it – for an unknown period of time.
Probably the saddest effect of these we’re already starting to see is the death of online services for old console games. How are kids of today going to re-live their childhood memories with friends when Xbox Live goes offline one day? This is already happening.
I buy multiplayer games to play them with my friends, sometimes at the same house – not with strangers online unless of course I have no friends with the game. The death of LAN multiplayer gaming has been really, really sad. Games like Command and Conquer 4, an RTS, (which are always traditionally played as part of LAN parties) got the always-online forced-internet-lobby treatment and sold very poorly. Gone are the days of reliving Age of Empires and Starcraft LAN parties from when you were a kid. Now once the servers go dead, so does the ability to re-live childhood memories.
“That’s Life”, and the myth of User Aversion
At this point you might be thinking “Come on Drew, that’s life, things change”. I agree with you. I get that – things move forward. But this is the first time in consumer product history where you’re dragged along for the ride.. where the product you purchased changes color unexpectedly, or even depends on the manufacturer’s survival to continue even functioning, and I don’t think that’s right.
Others say users always hate change, “user aversion” is part of the design game. Again, you’re right to an extent, but user aversion is a myth. The numbers don’t lie when people are presented with a choice. People like good ideas. If they aren’t even given a choice, just because people didn’t take the time to find the proper channel and complain doesn’t mean you did the right thing. Once again Jono’s article touches on this.
Alright, so what’s the answer?
I don’t know – but I have ideas. We need to get talking and thinking about these problems.
One solution is using your customers as resources to determine what kind of updates you should be working on. GUI is usually the last thing that needs to change. If your product is already popular, people already know how to use it and you really shouldn’t be changing how it looks unless the new design has a massive acceptance rate. The Windows Insider program was a great step forward for Microsoft. I didn’t pay much attention because I didn’t have the tech preview installed, but the idea is sound in theory. Let your customers type in what they’d like to see changed, what they encounter problems with, integrate a good forced-search engine before posting new topics, and allow other customers to +1 already-reported problems. This system seems to work well, except that (a) only already-popular posts tend to be seen first (good search can help here), and (b) your development team needs to respect customer feedback and be vigilant in actively re-prioritizing based on customer needs and findings. This is more difficult than it sounds.
I think these issues can be remedied. I have yet to see a perfectly-designed customer feedback system that doesn’t make it into a popularity contest and at the same time doesn’t discount quick-but-important fixes. Maybe things like listing suggestions chronologically, combined with good pre-post search, a +1 system, and allowing devs to enter a “how long would this actually take” response for each one would help.
Another solution might be a “proposed changes” blog before rolling out new features, allowing users to thumbs up or thumbs down the changes before a deadline. This could even be done with new ideas long before they’re coded, saving lots of time developing a feature nobody wants.
Yet another idea – Re-skinning your entire app? Cool! Lots of apps are CSS and HTML-based now. How about giving me the option of staying on the old one, or voting on the new one beforehand? Native app and no CSS you say? Well, separate core code that might have security updates from design and layout code. This is what OOO and MVC is for. If you’re doing a whole GUI redesign, keep the old views/foms in as a skin option. Unless you’re removing entire functions, I could keep my old GUI.
I don’t have anything great to say in closing on this subject, except that there doesn’t seem to be an end in sight unless we spread awareness and start a following who wants their control back. Share your thoughts with me, share this article, and let me know if this bugs you too. #RegainControl