Why you should keep programmers away from your GUI.
Programmers generally do not design great user interfaces. I do not mean to cast aspersions in their direction. If anything, it’s a discredit to the project manager who insisted the UI is part of their responsibility. It shouldn’t be – it should be the job of a dedicated designer.

Programmers don’t understand the Mental Models of their consumers. They are so entrenched in the geeky details, that they can’t step back and look at the product through their customers eyes.
A user interface does not need to reveal the inner workings of the product. Rather, the user interface should expose feedback about the actions that the person expects to happen.
For example, a landline telephone uses a very different protocol for transmitting voice than a cellular telephone does. To the consumer, these are variants on the same product. They exist for the same purpose. However, many programmers would consider these to be entirely different products.
It’s important for designers to be involved in deciding what features should be implemented, as well as deciding how the interaction will work, before any technical plans/code are put in place. Otherwise, you may end up with a website indistinguishable from online-banking websites.
11 Comments »
Search
Popular Posts
- 50 Tips To A User Friendly Website
- How to build a Gantt Chart with the Google Charts API
- My Favorite Pomodoro Timers
- Why Flash is Mostly Bad
- Why You Should Outsource Usability Testing
- Sharing the Grid
- The difference between User Research and Usability Testing?
- 10 Tips to Better Google Wave Conversations
- How to Label Submit Buttons
- Goals for 2009


mgroves
Having worked in both situations (with a dedicated designer and without), I have to say that I very much agree. Not only does it result in a more usable product for the user, but I think it also makes development easier for the developers.
I think it’s also important that the designer be involved at the very beginning, and not brought in during the middle or end of development.
June 22, 2010
Josh Walsh
Matt – Thanks.
There are of course exceptions to this. As @stevehorn points out, I’m painting with a broad brush. Which, I completely agree.
There certainly are designers who are capable of doing both sides. In my experience, those people are also intelligent enough to realize that it would be more efficient to hire a dedicated designer.
June 22, 2010
Nate Klaiber
I disagree. I play both hats often. My goal is a programmer is to make sure the burden of the work is on *me* and not the end consumer. I don’t think you can make a blanket statement to say that:
“Programmers don’t understand the Mental Models of their consumers.”
I don’t believe that to be true. It may be true for the majority, but it’s not a sweeping statement across the board.
If that statement is true, then you aren’t a designer – because you have programmed in PHP/Rails/JavaScript, etc.
Thoughts?
June 22, 2010
Josh Walsh
Nate – Actually, I would argue that I’m a designer and not a programmer (something tells me you’ve heard me say that before). The projects I have been on where I’ve done double duty have not been ideal.
You are one of the exceptions to this rule in my mind, because you think of the customer first and the needs therefore. When you are a team of 5+ developers, where the customer facing decisions aren’t made by you, that gets harder.
June 22, 2010
Jonathan Penn
As a developer and designer, I would agree with your warning. It’s very difficult to do. And most people who claim to do it aren’t worth the money being paid.
However, I do both develop and design and have been successful at it, so I would argue that it’s not always the case. And even though I do build UIs, I still consult with someone else who’s UI design skills I respect to make sure I’m thinking sufficiently in the design realm.
June 22, 2010
Josh Walsh
Jonathan – I believe the situation where you do both sides is unique in that you are a one man shop building a an iPhone app for yourself (and for others who share your mental model).
That being said, if another company hired you to develop an iPhone app that you wouldn’t use directly, you would be wise to include a designer in the process.
June 22, 2010
Mark W Schumann
Design is such a demanding speciality but it’s deceptive. Everyone thinks they can do it fairly well but most are wrong.
It’s hard when you’re a solo developer–either you do the visual design and user experience stuff yourself, and it sucks, or the client does it… and it still sucks.
June 23, 2010
Nate Klaiber
Mark: Agreed – and it’s all how you perceive design. Design isn’t solely about the colors, typography, etc, as much as it’s about understanding the audience, context, and goals.
While I enjoy the design side of things, I always hire a designer for projects I work on – it makes more sense for both the client and myself. Then I get the enjoyment of collaborating with a good designer, as well as creating experiences from the programming perspective.
“Everyone thinks they can do it fairly well but most are wrong.” – That’s true, too – just ask Jonathan Penn.
June 24, 2010
Jesper Blad Jensen
While I partly agree with your statement, I must say that programmers actually very easy can be okay at UX (Design, like making it look good, is another thing)
The main problem is, that the programmer likes the inside on the product to look good, and makes the outside fit (they usually take it from the data to the user interface)
If you make them think the other way around, they actually do much better. Not saying that they are good compared to a specialized UX-Designer
“Programmers don’t understand the Mental Models of their consumers.” – is a completely wrong statement. Atleast in the regard that programmers very much know what there consumer wants (good programmers), but they know them at the data level – what the customer needs stored, and how this should be processed.
If you are in a situation where you can’t hire a designer, then force the programmer to design the application before they know anything about the data. Thats not ideal by any standards, but at least it tend to not produce what you show in your screenshot.
And just to clarify: A web-designer is not inheritable good at UX – in my mind a designer is just a bad a choice as a developer. Sometimes people tend to forget this. The UX guy/gal should be a third person standing in-between.
A person who understand the customer, the design, and the developer side of things – so every scenario is covered by the UX – without having a developers love for good code, or the designers love for small font sizes.
We started using a UX team (about a little year ago), and I can only say that it really pays off.
…And they are actually programmers, but they never touch the real implementation, and only work at the concept level. They sit in the same place as the designers, and that way we get the next-best to have a person specialized in UX, as they tend to be hard to find in Denmark.
June 25, 2010
Josh Walsh
Jasper – You bring up a great point that I did not make clear. When I say “designer” I am specifically talking about the UX-type, not necessarily a graphic artist/web designer. It’s a distinctly unique craft.
There are alternative development approaches for times when a UX specialist cannot be used. In my experiences, results vary pretty dramatically in those circumstances.
June 27, 2010
Modelos de implementación vs. modelos mentales | sortega
[...] Josh Walsh, de Designing Interactive, escribía hace unos días un post algo polémico sobre el trabajo de los programadores y la construcción de interfaces de usuario. [...]
July 9, 2010