Sunday, December 1, 2013

How to fuck up your UI in one easy step

No, this is not going to be about the questionable utility of Yet Another Fuck A Stranger App.

Step 1: Build the app.

Step 2:  Admit in public that you have no idea how users would . . . well . . . use it. Or what they would use it for. If you find yourself suggesting that additional applications are probably necessary to get anything done with your app, throw the fucking thing out and start over.

I know innovation is hard and all, but goddammit, if I had to fire up emacs on the side to get shit done with Visual Studio, I would Not Use Visual Studio. Designing the layout for the user interface on an application is hard enough when you have a clear vision of what the thing is good for. If it's such an amorphous mess or you haven't talked to your (potential) users to find out what they really like, then you are probably going to fuck things up terribly. Looking at you, Mozilla.

Now, I don't think that the Gmail UI is the best thing ever, but Google does try to get this stuff right.
You're using an email application? Great! Notice that the 'compose' button is the big red one? That is not an accident. All the individual messages on the right? Of course you can click those to read the whole thing. Google wants to plug their silly-ass Google Plus nonsense - there's a little link for 'Circles' on the left under all the other folders.
Now, if Google had no idea what the hell people were going to be doing with Gmail, I will guarantee that those buttons would not be in the same place, or even present on the main Gmail screen. And imagine how much of a pain in the ass a mail app would be with no compose / new message button front and center. This is the kind of crap that gets overlooked when you don't know what the fuck people are going to do with your shiny new program|service|whatever. Congratulations! You just wasted a bunch of development time to piss off your userbase and have to spend time 'fixing' the stuff you should have been paying attention to from the beginning!

Without letting this turn into a 50-page manifesto: You can't know everything that users are going to want to do with your program, but you should have a really, really good idea about the core functionality and make that easy to use.