Avoid catch-22 situations - don’t try to store more than the current screen values
Enough is enough. Folks following me at Twitter may have noticed that suffering from an unchangeable, seriously painful all-red-in-red Twitter color scheme over weeks and weeks results in a somewhat grumpy mood of yours truly.
I’ve learned that Twitter’s customer support dept. operates a FINO queue. If there’s a listener assigned to the queue at all, it’s mounted to /dev/null. For you non-geeks out there: the Twitter support is a black hole. You can stuff it with support requests to no avail. Its insert trigger assigns the “solved” status automatically, without notice. The life cycle of a Twitter support request is a tiny fraction of a snowball in hell. Apropos Twitter operator from hell. If the picture on the right (showing the Twitter employee responsible for this pamphlet at work) is representative, I might apply for a job. Wait … reality sucks.
Ok ok ok, I’ve ranted enough, back to the topic: avoiding catch-22 scenarios in Web development. For the following example it’s not relevant how the weird user settings were produced (profile hacked by Mikkey, plain dumbfucked user actions, Twitter bugs …), the problem is that the Twitter Web UI doesn’t offer a way out of the dilemma.
Say you’ve developed a user control panel like this one:
Each group of attributes is nicely gathered in its own tab. Each tab has a [save] button. The average user will assume that pressing the button will save exactly the values shown on the tab’s screen. Nothing more, nothing less.
When it comes to Twitter’s UI design, this assumption is way too optimistic — IOW based on common sense, not thoughtless Twitter architectural design decisions. Imagine one attribute of the current “account” tab has an invalid value, e.g. the email address was set equal to user name. Here is what happens when you, the user, try to correct the invalid value, providing your working email address:
The Twitter-save-bug routine validates the whole user record, not just the fields enabled on the “account” frame. Of course the design settings are invalid too, so any storing of corrections is prohibited. This catch-22 situation gets even laughable worse. When you follow Twitter’s advice and edit the design settings, the error message is utterly meaningless. Instead of “Email address: You must provide a working email addy” it says:
“There was a problem saving your profile’s customization” easily translates to “You douchebag can’t provide an email addy, so why should I allow you to choose a design template? Go fuck yourself!”. Dear Twitter, can you imagine why I’m that pissed? Of course you can’t, because you don’t read support requests, nor forum posts, nor tweets. Would you keep calm when your Twitter UI looks like mine?
Not yet convinced? Here I’ve higlighted what you WebDev artists hide from me:
And during the frequent Twitter-hiccups you can make it even uglier:
So my dear Twitter developer … You might look quite classy, but your code isn’t sexy. You’ve messed-up the Web-UI. Go back to the white board. Either cache the attributes edited in all tabs per session in a cookie or elsewhere and validate the whole thingy on save-of-any-tab like you do it now (adding meaningful error messages!), or better split the validation into chunks as displayed per tab. Don’t try to validate values that aren’t changeable in the current form’s scope!
And don’t forget to send me a DM when you’ve fixed your buggy code, because –as you hopefully might remember from the screenshots above– the email addy of my account is screwed-up, as well as the design settings.
Share/bookmark this: del.icio.us • Google • ma.gnolia • Mixx • Netscape • reddit • Sphinn • Squidoo • StumbleUpon • Yahoo MyWeb Subscribe to ![]() ![]() ![]() |
Sebastian | Web development, Twitter, Crap | Related posts
GRRRREAT photo & even better post!
Twitter can’t find its very own support
Here’s the official statement from Twitter regarding all things ’support’:
Q: Dear Twitter, how can I hook up your customer support?
A: [Auto-reply] “We couldn’t find anyone named twitter support.”
After diving deep into the
Google groupsGoogle’s Code issue tracking system leaving a note at a somewhat unrelated place, a friendly Twitter developer has reset my color scheme. Thank you! They’re working on the bug fix, so other accounts (I know a few of them) might still be affected.I ran into the same lovely red, tried to change it back, and now have a merry mess on my Twitter page with part of it the way I want it and part of it not. Thanks for providing some enlightenment. I’m no programmer, but the words “bug fix” give me hope.
Apropos Twitter, FriendFeed, and whatnot. What do you think about Cyber-Sixty-Niners?
For a definition of “cyber-sixty-niner” please search the InterWeb for pictures of Ron Jeremy sucking his very own cock, or if you can’t manage this plain and simple task, then go to a cached copy of any social media profile maintained by Robert Scoble before August 2009.
NSFW warning: Some links in this comment are not safe for work!