Okay, now that I’ve grabbed your attention…
If you’ve ever worked with me in person, you’ve probably (often) heard me say something along the lines of “technology sucks”. Obvious troll is obvious, but there is definitely some weight behind that statement.
You know that time you’re sitting in a somewhat hot room — not boiling but not comfortable either — your hair is slightly too long and it keeps poking your eyes (and you forgot your hat at home), your shirt is slightly too tiny so your keypresses cause a Rube Goldberg-like effect on your sleeves which then pull at your shoulders and neck and everything is just slightly annoying…
Then all of a sudden a single, minuscule gnat flies into your eye, which sends you over the edge, and you just fucking lose it?
Bad UX is that gnat.
Let me run you through a bad UX scenario I faced just this last week.
Act 1: LastPass App and Extension
About a month ago I signed up for LastPass for my personal life. It was great for about 5 minutes — the auto-reset password feature was about as good as you could ask for the web; a wall of proprietary APIs and the fact it’s automating several tasks at once made that a nightmare to make, I’m sure.
Then it was time to install the Chrome extension and Android app. Since that point, I had nothing but issues with it.
I’m paranoid. I’ve been breached before. Whenever I can, I make sure I have to enter my password every time I want to do something. Luckily LastPass allows me to force a master password entry for every site I log into.
However, in doing so, it switches back to the right-most tab, even if that tab isn’t the one I was signing into. Then, to add insult to injury, this “handy” little dialog box pops up on every single textbox on the Android app.
That’s just the beginning; the foreword, if you will. Ophelia hasn’t even started singing yet, but oh boy is that ditch coming.
Act 2: Enter 1Password
After battling with LastPass for about a week, I was referred to 1Password by a number of colleagues.
“Sweet”, I thought. Maybe it’ll be better. Maybe it will solve all of my woes.
I hastily went to export my data from LastPass. I logged in, and was met with the menu on the left. Just the icons. It took me a good 20 seconds to figure out I needed to click the menu button to expand the menu.
Why? Who is staring at the LastPass interface for so long that they need to collapse the menu down to nothingness?
Anyway, a few eye rolls and a “We’re sad to see you go” email later, I’m fully onboarded onto 1Password. Time for the apps!
I installed the macOS app and was pleasantly surprised to see a screen-reading QR code scanner to transfer the credentials from the site to my desktop client.
Unfortunately, it refused to scan.
I ended up using the “recovery PDF” credentials to log in instead.
Once logged in, I scrolled through my accounts before deleting my LastPass account. Everything seemed to be in order.
Except that my 1Password account was in the
Act 3: The Plot Thickens (LastPass isn’t looking so bad anymore)
I wanted to see if GitHub was working after the grand migration, so I went ahead and signed out and then back in.
1Password seems to have its own idea of how users are using it. Just searching the site and clicking on it seems to open another tab at GitHub.
Turns out you have to hover, wait a few seconds, click a tiny down arrow next to your masked password, click Copy, and then paste it into the box. Manually.
LastPass is definitely better in this department.
I ultimately got my GitHub password, clicked Sign in and needed to two-factor authenticate.
Act 4: 2FA Makes the Principal Character Cry
So as I mentioned before, my Android died a few days ago. I got a fancy-shmancy new (RED) iPhone 7+. Which means I just set up all of my multi-factor authentication keys within the last few days — after all, the last few days on GitHub have been pretty important.
So I hop over to my Authy app and punch in the little code for GitHub.
Alright, I say. Maybe it’s a fluke. I waited 30 seconds (since Authy has no “new code NOW” button — not sure if that’s Twilio’s fault or the standard’s) and tried a new one.
Rinse and repeat 3 more times.
Alright, I guess. I’ll just have it send a backup code to my phone, sign in, and re-configure 2FA.
Well, since I’m using Google Fi which doesn’t really like iPhones (not to mention it has some hilariously bad UX problems of its own), it appears they postscript some wonky identifier to the end of all of my messages. That’s cool.
Alright so I’m in. I go to the security settings and generate a new QR code, scanning it into the app. I verified it worked, et voilà. I could finally sign in.
But now I had two GitHub accounts on Authy. No matter, I’ll just delete one.
It was then that I was greeted with this masterpiece of UI design.
Apparently I don’t get a choice on whether or not I get to delete my account, and I have to wait 48 hours before I can.
Not only is this annoying, I’d go so far as to say it’s a security concern.
Act 5: Recursively Bad UX
So the next bit of fun was encountered after sorting my accounts by the strength of passwords — weakest to strongest.
Top of the list was Twitch.
I logged in, went to the change password form, generated a password from 1Password (maximum everything — I’m not fucking around), pasted that sucker into the form and was pleasantly surprised to see that 1Password allowed me to update my existing account in a sane, unobtrusive manner.
Until I tried to save.
Alright, definitely a bug.
I figured I’d send in a report to 1Password. I went to the little gear in the “mini” extension they have (their words) and clicked “Report Website Issue”.
It then redirects me to an error page that tells me to do exactly what I was doing to report the “Report Website Issue” as a bug.
Welp, off to Twitter I went. 1Password offers support via their Twitter account, so I figured I’d let them know of the compounding frustration that was ensuing by way of DM (direct message).
You have to be kidding me. Twitter removes URLs at the end in lieu of some open graph card bullshit?
To add insult to injury, I tried to send them the screenshot of the error page. I didn’t get it just right, just in the little tiny box and my browser decided I must want to leave Twitter and view the image by itself.
I sent a nice message describing what problems I was facing, they responded with genuine concern, and they were very nice about the whole thing.
As it turns out, this whole Twitch bug was actually Twitch’s fault.
Act 6: Oh, It Gets Meta Alright
Alternate title: Bonus Points
So after this egregious amount of UX failures, I set off to write this article.
If you didn’t notice earlier (I don’t blame you, I’m lazy too) I didn’t actually put in the real 1Password QR code. I generated one off some site and replaced the base64 blob via developer tools.
I wanted to verify that the end result was indeed the fake QR code and not my sensitive information for the sake of this article. I downloaded a quick QR scanner on my phone and saw that it had a ton of ads — including an interruptor ad upon every QR code scan.
So of course I went to write a bitchy review because that’s what exasperated people do. Here’s what happened (keep an eye on the send button).
Whatever. I just closed out and went to uninstall the app altogether.
iPhone 7’s force touch feature had other plans.
On a serious note, I can’t even begin to imagine someone with the slightest motor skill handicap trying to use this foreign and intensely bizarre input mechanism.
To make matters worse, writing this stupid article required oh my god so many gifs and recording and shit. Medium would fail with extremely vague errors about 3 minutes after uploading them.
I finally figured out it was because the gifs were too long in duration. Are you serious right now?
I’ve got nothing. I have no solution for this. This was, for all intents and purposes, a rant. There is nothing I could say or do to change the way these companies approach UX design because I am not a well-versed, authoritative voice on the subject nor am I well acquainted with the field.
I am simply an end user that gets highly annoyed more than most.
Until next time. ❤️