Our biggest UI constraints aren’t our tools.
I was just riding with someone whose name shall be withheld to protect the guilty. We were in her new Prius, upgraded from an earlier model. She tried to turn on the air conditioning, (it’s mid-October in Phoenix and A/C is still very much a necessity,) but she couldn’t get it to work the way she wanted it to.
“Is this broken already?!?” And she angrily pushed a bunch of buttons until it did something close to what she wanted.
In truth, the air conditioning is working just fine. More importantly for this discussion, it works AS DESIGNED.
The problem is, the climate controls in her newer model work differently than the ones from her previous model, and she had no patience to figure out those differences.
This interaction is not an anomaly. Not just as a software developer, but as a user, I’ve seen people routinely complain about how a piece of software (doesn’t) works.
This imposes two distinct sets of constraints on us as software designers.
First, we are constrained by user expectations set by their history of use of the platform and other software on it. In an action dialog box or alert on your platform of choice, is “Cancel” the button on the left or on the right? If you don’t know and create such a dialog / alert with it reversed from the norm, or worse yet, you have a personal belief that the usual placement is wrong and intentionally reverse it, you’ve created a situation that’s going to irritate a bunch of your users and cause them to think less of your software. Enough such annoyances and they’ll stop using it entirely.
Second, we are constrained by our own interface decisions. Have you figured out a better way to organize your interface for greater productivity? Do you already have a version of your software out in the wild? You might want to reconsider your “new and improved” interface design. Just like my… driving companion, if your existing users expect things to be set up a certain way, and you change it on them, no matter how superior your new design is, your existing users may see it as broken, or at least bothersome. They may not stick around long enough to adapt to your changes.
This leads to one important conclusion.
I’ve seen others recommend to developers that the most important thing is to get a first, functional version of your app out into the world, and then to refine it later.
I’m going to have to vehemently disagree.
Have you seen the stats on the percentage of users who abandon a mobile app after three sessions or less? They’re staggering. You really don’t get a second chance to make a (good) first impression. In the world of software, you may not get a second chance to make ANY impression.
So make sure you get the interface right the first time through. Follow conventions. Adhere to standards. Make workflows function in as few clicks / taps as possible. Reign in your desire to “Interface Different”.