The sorry state of software UI/UX

Can you tell the time?

Totally normal clock face

Nope, you aren’t looking at a programmer’s attempt at being funny. This was the official clock app on Android.

This was actually an attempt at improving an earlier iteration, which for some godforsaken reason stuffed the hours from 13 to 24 into the clock face displaying 1-12:

Why settle for one clock face when you can have two?

Inexplicably, 00 is included in the inner clock face, meaning the inner clock face actually goes 00 -> 13 -> 14 -> 15 (and so on)! I’m perplexed this was released to customers. And why would you even want to update a “clock” app? Surely, it can’t be improved anymore… or can it?

Why is software UX so bad?

Most software engineers are completely alien to the idea of user experience (UX). Heck, I myself did not know how it differed from the user interface (UI) until a colleague who was an excellent UX designer patiently walked me through what UX is, why it matters and how UI ties in to it.

In the last decade, with organizations growing and mixing in more product managers in an attempt to scale, software engineers are either not expected to or not allowed to take ownership of the product. This is in part driven by the commoditization of software as engineers end up being given smaller and smaller roles so that trying to do the right thing takes exceptional effort to even attempt to convince the decision makers. As an organization gets larger, there is a growing disconnect between the product being built and the people doing the building. In addition, getting promoted or rewarded is so opaque and at times disconnected from quality and the effort put into building that this kills motivation and the desire to learn or innnovate. Launching a “new” (but possibly useless) feature is much likelier to get you promoted compared to fixing a few important bugs that improves the UX long-term. Most individuals will pick the path of least resistance to get the greatest reward - it’s the rational thing to do.

Businesses are built to return a profit. Quite often, there is a lot of short-term thinking here, and a great desire for profit in the short-term. If good UX comes in the way of this, or cannot be proven to help, it falls by the wayside. Software also suffers from “feature-itis”. The addition of “new” features above and beyond everything else, in (a usually futile) search for new business models, means the UI is further stuffed with unnecessary features in the hope the customer clicks on it. Unfortunately, we’re all driven by dopamine, which means we are biologically programmed to click on shiny new features. This means it is plausible that engagement and other metrics increase, until years later the customer finally comes to their senses, breaks free of their dopamine addiction and deletes your app altogether.

Lastly, large corporations are likely monopolies, and without good regulations, a monopoly won’t listen to customers or build good products anymore. There are many examples of customer complaints, but unfortunately they fall on deaf ears

What does good UI/UX look like?

A good UX makes it easier for the customer to do the right thing. The right thing here means whatever the customer opened the app/software to do, and not what the app/software may want to trick the consumer into doing. Good UI enables such UX. In addition, good UI makes it hard for the user to do the wrong thing. The book “Design of Everyday Things” has a few non-software examples.

Good UI/UX example: The old Square Cash app

A good UI/UX can seem deceptively simple

Here’s a screenshot of an older version of the Square Cash app. See how it launches you right to the payment screen, and clearly presents two options (Request & Pay), which are likely all you need.

This is a seemingly simple product, but look at how one of their competitors went about it:

A social-financial app?!

In this older version of the Venmo app, it’s near impossible to find out how to do what I likely opened the app to do (which is make/receive payments). On the top right, the small pen/paper icon is what one needs to click to get to the relevant screen. The home screen, inexplicably, is a social feed of random transactions - mostly of strangers. Admittedly, this may have helped them win and keep market share thanks to network effects, but it’s worth calling out that a product that is used more is not always a better product (as alluded to in the previous section). In the newest versions of the app, the social feed persists, but is limited to friends-only (with many choosing to make their transactions private) and the Pay/Request button is front and center.

Unfortunately, it looks like Square Cash (now just “Cash”, which is in my opinion one of the worst name changes ever*) is beginning to lose its wonderful UI/UX to “feature-itis” (as described above):

Note the increasing number of tabs at the bottom

The reason why companies force what should be different apps (for buying stocks and getting a debit card in this case) into an existing app is to attempt to drive growth. People are unlikely to download an app that they don’t need, but if you force it onto one they may already be using, you may get more users! (Note to reader: Please do not emulate)

Good UI/UX example: The official Android Clock app

The only tick-tock app you need

In a dramatic twist, it looks like the loser of this post is also its winner! In the latest version of the Android Clock app, the weird clock face has been removed, and replaced with a more sensible UI. This UI is also used for the “Timer” tab in the Clock app, which has some brilliant features baked in.

The Timer tab comes with some preset named timers, and while you may not be doing those exact things, the fact that they are set to different time periods (2 mins, 15 mins, etc.) means they are likely useful for some tasks you were using timers for anyway. For example, I use the “Brush teeth” 2 minute timer during my workouts to take a 2 minute rest between sets. Timers being named, and saved locally, means I can use these for different purposes repeatedly (as an example, the 30 minute timer I use while practising guitar is shown above), which should drive the “right” metrics up.

Remind me again?

And if that wasn’t enough, the Clock app can also now notify you if you have an alarm that’s about to go off in the next 15 minutes. This is especially useful for those rare days when we might wake up before the alarm goes off, only for it to announce itself in the middle of a meeting. I think most of us would rather not let our colleagues know when we intended to wake up.

Lastly, it’s the simple, subtle touches that - like icing on the cake - ties the whole thing together. The app icon updates to show you the current time! Now, that just b"ring"s me so much joy!

What does the future look like?

Now that I’ve laid out the bad news, I should say, “Fear not, all is not lost!”. Software engineering can (and I hope will) return to its glory days when people were floored with what you could do with a computer. Here’s the good news, dear reader: The future is up to you! Write/read/share/talk (even casually) and hold each other to a higher standard. We got this :)

Readers’ comments

I think one big part of UX design is a user-study that most people decide to skip over and UX designers kind of push their own biased designs. For everything small one cannot do a study, which is when some prior experience is useful. But, that experience - similar to subjective debates on code reviews - can lead to biased implementations too. - KB

I definitely think software developers need to have more ownership. They don’t want to take it. - MN

As a horology enthusiast I really liked this article! I saw a video recently showing how the 12 hour analog clock is not universal.. In Africa (Kenya?) the hours start at bottom of the dial, not top. Some place has 360 degree dial for 6 hours so 4 full rotations for 1 day. Also one culture where it goes anticlockwise.
Also good insight into what kills kills motivation and to innovate.. The opaqueness in rewards is a big challenge in helping developers do their best. - PY

Loved this - “A product that is used more is not always a better product”. This is a gem. Something I’d actually print out as a poster and put up in software dev offices.
Look into the practice of “Human Centered Design”. At my last job, I was part of this process for an application. It was amazing how much detail we went into to understand what people wanted/needed, over a dozen or so interviews. It is essentially a new name for something some people have always done (like ‘intermittent fasting’), but at least it gets people talking about the importance of sensible software. - GM

*: I once bought a board game from someone after confirming they take “Cash”. I meant the app. They meant… cash.

NB: I haven’t managed to fit in a paragraph about UX changing based on “experiments” showing different UX-es to different customer bases, but many companies set significant portions (or their entire UI) this way nowadays. This may work in some cases, but in many cases I’ve seen “worse” UX return positive metrics (per the experiment). I’d chalk this down to dopamine hits (similar to selling sugar) as mentioned in one of the paragraphs above.