“Irregular Verbs” in Software Design

(This post implements my new year’s resolution of sub-titling my sections so as to make me look like I know what I’m talking about.)

At MailOnline, we have no development process. Well, that’s not entirely true, we use Programmer Anarchy. The developers decide for themselves which “table” they want to work on, and can then leave to join another table at any time. A table is roughly aligned to one or more projects.

But the main thing as far as I’m concerned is that anyone can – and does – have an opinion about the UX of the product. This is because, well,  it’s Anarchy. A large part of my role is therefore to persuade people that I’m worth the time (and my salary) as a UX designer. This makes for a refreshing change to the command and control culture of previous environments I’ve been in.

That’ll Work!

In a situation in which developers are free to ignore me, one of the things I’ve noticed that sets designers apart from non-designers is the phenomenon of “first solution” design. This means that typically, the developer will think about the UX problem until the first workable solution presents itself (this is also part of the philosophy of “minimum viable product”). They then implement that, and move on. I then discover their solution on the integration build – and facepalm.

Even if the solution isn’t the first one that comes to hand, just because a particular design works in a particular context, it doesn’t mean that in the context of the application as a whole, it’s a good design. In fact, it may well produce an actively bad UX. 

What’s Your Job – and What’s Mine?

I like to think that part of my value in the workplace is the fact that I’m allowed a good deal of time to think about the user experience. I have time to think about how best to construct an application so that it exhibits a sort of “architectural consistency”. Either by evoking standard patterns that exist in other applications, or in establishing repeatable methods by itself,  using one function in the app should ideally teach you how to use others of the same type. This is a challenge of course, because you often don’t know what features will be included in the application later on. Furthermore, grouping up and “homogenizing” things in the UI in a way that makes sense to the people who use it is not a trivial task. So I’m lucky I don’t have to worry about things like writing code, Internet Explorer, namespace pollution or merging branches – for I am a designer, and design takes time.

Irregular Verbs

But do the Anarchists appreciate this? In re-designing the MailOnline CMS front-end, I think we’ve seen two clear examples of first solution design so far. They may not in themselves be bad ideas, but they are inconsistent. The user will need to remember how to invoke or use the function because it’s different – just as with  an irregular verb in a language that’s already hard to speak. Make it regular, make it fit in with a general model of how a group of things work (objects placed on a canvas, content that populates these objects, etc.), and the application has consistency of navigation; it achieves a consistency of design. And in being consistent, you have a made a great step toward usability.

This “irregular verbs” phenomenon is often compounded by the fact that nobody likes to have their designs criticised negatively. So I find I’m slowing down the development process by fighting to preserve the integrity of the application against people who are putting it in danger. Usually what happens is the all too common response, “Let’s do it both ways!” While this might seem a good compromise, it’s also a bit dangerous if people discover the  irregular verb first, and so needlessly feel they need to remember that rather than its regular form. The edict “Don’t Make Me Think” is then violated.

It Depends – But Only Sometimes

Note that this architectural consistency isn’t an excuse to make absolutely everything consistent. Don Norman points this out in his essay “Human-Centered Design Considered Harmful“. Incidentally, Ralph Waldo Emerson was not talking about about interaction design when he said, “A foolish consistency is the hobgoblin of little minds…”, even though it sounds like he might have been.

Lastly, if you analyse an existing application that you observe is hard to use, try identifying the irregular verbs and you’ll see what I mean. Big or small, most applications get a lot of their difficulties from this. I wonder if those things are a symptom of agile or similar development environments that have little or nothing to say about the integrity of the user experience?