Do you love your users?

Alan Rusbridger, the editor of The Guardian newspaper, was recently asked by a UK home affairs committee investigating the Snowden leaks, “Do you love this country?” This is not a question I will answer, but I do find myself asking a similar question of software developers – “Do you love your users?” Or, put another way, “Why do you hate your users?”

As the developer of Archi, the free ArchiMate modelling tool, I’ve put in many hours of my time, and much soul-searching, trying to create an application that works simply and elegantly, hiding complexity from the user and, above all, not crashing. I’ve thought deeply about what users want and what they probably don’t want, and I’ve listened to, and responded to, user feedback. So my answer to the question, “Do you love your users?” is unequivocally, “Yes!”

I’d like to illustrate this with an example of the process of thinking about usability in my software, and finish with an example of “user hatred” in another piece of software.

Show me the love…

I just implemented a new feature in Archi – to let the user define the line colour of a selected object in a diagram. This wasn’t too difficult, I just followed the standard presentation in the Properties pane. But then it got a bit more complicated when I added an additional option to derive the selected object’s line colour from its fill colour. Again, this wasn’t too hard, but it did present a usability challenge – one option negates the other. If the latter option is selected in the application’s global preferences, then any user line colours are ignored. So how would this look in the object’s Properties pane?

Archi Properties pane

Why are they disabled?

The problem is that the line colour selector buttons are always disabled. Whatever you do, they remain disabled since the global preference is set to derive line colours from the object’s fill colour. So why on earth are the buttons there? Perhaps the user needs to do something special to the selected object to enable them? Search in the user manual? Perhaps phone the help-desk? As it stands, this is a perfect example of the software designer hating their users. It’s the equivalent of inviting someone to dinner and then hiding the food in the cupboard.

So let’s show some love and try and solve the problem. Let’s kindly explain to the user that if they want to set their own line colour, they should have not been so stupid to have set it in the application’s preferences in the first place:

Archi Properties pane - better

Hmm…why should I?

Well, why should the user have to do that? They can’t even remember where the preferences are, let alone which preference to look for. Out with the manual again!

Perhaps the better solution is to not only explain why the feature is disabled, but also to offer a link that will open the preferences dialog window and take the user to the preference that will solve the problem:

Archi Properties pane - much better

A bit better, but…

Clicking the link takes the user to the Preferences dialog window:

Archi Preferences dialog

Preferences dialog – set it here

This is not a perfect solution, since the user has to think about whether to disable or enable the option. However, it’s a lot better than before. But wait…

…why not just completely hide the colour buttons in the Properties pane when the feature is not available? This way you wouldn’t even need to show an explanatory text and link. Well, I thought about this and this creates a different problem – the user might never know that the line colour feature exists. By greying out the buttons I’m providing a hint to the user that the feature is available under some circumstances. The additional explanatory text and link then takes the user to the preferences dialog so that they can see for themselves how and why this is an option – coaching and coaxing the user.

Even this solution sucks. There are just too many buttons cluttering up the screen. Back to the drawing board.

This is better:

A better solution

A better solution

Here I’ve combined all buttons into one control – the colour selector, as before, and the “Default” and “Preferences” into a drop-down menu available from the right of the selector. I even re-used the control for the Font selector. Nice.

And now for something completely different…

That is a small example of the process I go through when demonstrating the love I have for Archi’s users. But what about software developers who seem to hate their users? I give you Protégé, an open source ontology editor from Stanford University. Here’s the opening screen on Windows:

Protege - WTF?

Protege – WTF?

This just broke Software Rule #1 – Don’t Throw Shit at the User.

Ok, how about simply opening a file in the current editor window? Here’s the result:

Protégé - oh dear...

Protégé – oh dear…

Protégé also has a menu item called “Refresh User Interface“. Really? You don’t get a dog and bark yourself. Come on, this is supposed to be Stanford Frickin’ University.

You know what? I think the Protégé developers hate their users.

The Designer Mind

P.J. Oneri has put together a list of tips for the developer thinking about transitioning to the field of design.

Tip #3: Design everything you do

During my first internship out of college, Stella Lai gave me this tip and it has been the best professional advice I ever received. Try to practice this tip as literally as possible. The obvious areas are how you dress and how your house/apartment/room is organized. I would suggest not stopping there. Your emails should be written/composed clearly and beautifully. Your conversations with individuals should be designed through how you listen, how you maintain eye contact, how you respond (both spoken and unspoken). Everything you do should have a reason, no matter how small. Design requires constant practice, this is a great way to keep growing.

This is profound advice, and reminds me of the practice of Mindfulness (not that I regularly practice this myself, if at all). It’s the “Designer Mind” and, like the discipline of Mindfulness or a daily meditation, as Oneri says, requires constant practice.

In conversation this focus can lead to a more powerful voice. I’m reminded of how David Lynch speaks. When Lynch speaks, he very consciously and deliberately chooses his words, which I find clear, plain and muscular. Lynch is a film-maker, writer, producer, and director who also meditates daily.

Synchronicity – as I write this, Lynch’s voice comes on the radio, talking about meditation and creativity.

This is Lynch demonstrating how to cook Quinoa:

Eliminate every element that’s not doing useful work

William Zissner, writing about writing in his classic book, “On Writing Well”:

With each rewrite I try to make what I have written tighter, stronger and more precise, eliminating every element that’s not doing useful work. Then I go over it once more, reading it aloud, and am always amazed at how much clutter can still be cut.Writers must therefore constantly ask: what am I trying to say?

This is also applicable to design. When you know what you are trying to say, or convey, you can eliminate the unnecessary. Is a skeuomorphic element necessary?

Flat Design is Honest Design

Totally agree with this from LayerVault in which the author describes simplicity and flatness in design as honesty:

We interpret recent shots taken at skeuomorphism as a sign of the coming of “Honest Design”. Much like we were not too long ago, designers working for the web are getting fed up with the irrational, ugly shortcuts being praised as good design.

While one side of the mouth yells “good design is how it works”, the other side mumbles that great aesthetics mean realism. It doesn’t need to be this way. Designing honestly means recognizing that things you can do with screens and input devices can’t be done with physical objects – more importantly that we shouldn’t try copying them.

Two of Dieter Rams’ ten design principles:

Good design is honest – It does not make a product more innovative, powerful or valuable than it really is. It does not attempt to manipulate the consumer with promises that cannot be kept.

Good design is as little design as possible – Less, but better – because it concentrates on the essential aspects, and the products are not burdened with non-essentials. Back to purity, back to simplicity.

I remember seeing flat design in the first version of Ableton Live back in 2001 when everyone was refining their bevels and highlights, and thought then that it looked and felt pleasing. The latest Windows Metro UI attempts this at the OS level, though this needs more refinement. Now that Jony Ive has greater influence on Apple’s software, iOS might catch up soon. Go, flat design!