17

As programmers we can solve very complex problems, but then, when we have to design a user interface we tend to fail on making them easy to use.

In small companies they can’t afford having designers and UX experts, programmers have to do almost everything in the software. But these interfaces are rarely intuitive (the classic example).

What is the problem? How can developers improve their skills in designing good user experiences?

jmservera
  • 599
  • 3
  • 13
  • 7
    We? Do you have a mouse in your pocket? Please dont group all developers into this, because frankly, its not only not true, but developers are certainly better at creating GUI's than your typical non-developer who walks in off the street. – GrandmasterB Oct 08 '10 at 20:43
  • 1
    I think that you'll find that this comic fails the comparison with many of their other products that aren't google.com search or the iDevice. Both the first and second frames in the comic represent 1-way communication. The third is not. All 3 are exaggerated. – Steven Evers Oct 08 '10 at 21:09
  • 2
    @GrandmasterB, don't take it so seriously. I edited the title anyway to avoid excessive generalization. – jmservera Oct 08 '10 at 21:45
  • @SnOrfus, for example, Google's adwords interface is downright painful. – GrandmasterB Oct 08 '10 at 21:48
  • FYI: I've found a similar question in the UI site: http://ui.stackexchange.com/questions/1863/as-a-programmer-how-do-i-move-into-user-experience-design – jmservera Oct 16 '10 at 06:31
  • By reading Joel Spolsky's blog? – Yam Marcovic Oct 08 '11 at 17:21

3 Answers3

9

I have encountered this problem many times in my career - the trick is to first be aware that it is a problem, and acknowledge it. Once you've done that, it's easier to stop making overly complex interfaces.

The user interface is also a part of software engineering, but perhaps for many software engineers not as much interesting. However, there are many interesting challenges related to this, and they can probably be as interesting as more technical challenges, in my experience.

Usability, user experience design (UX), human-computer interaction (HCI) - it's not magical, and it is a part of the software development process.

My tip is to:

  • acknowledge your limitations
  • ask and listen to people who claim to know about these things
  • when unsure, google it and look for authorative answers

By following these simple principles over the years, I have actually accumulated useful information on how to build user interfaces, how people interact with software, and how they think when they're using it. I am by no means an expert, but I probably know a little bit more than your average programmer.

Tl;dr: KISS

Vetle
  • 2,185
  • 15
  • 19
  • Some people naturally care about simple UI; others could care less and do not want to waste their time. – Job Aug 16 '13 at 04:40
6

It's biological.

  • UI and all other design related tasks involve the right brain.
  • Programming task involve the left brain.

They have different purposes.

It's very rare to be good in both. At least at the same time.

brain

UPDATE: I recently learn that there are others factors such as experience. In addition to some inherited factors, you develop mental capacities depending on how you are triggered in your childhood. For example, abused children are on average are more creative than the control group because they learn to disconnect from their awful reality in dreams.

Stephen C
  • 25,180
  • 6
  • 64
  • 87
  • 1
    Can you support "It's very rare to be good in both. At least at the same time." with studies/articles that say so? – c_maker Oct 07 '11 at 21:23
  • 6
    "Broad generalizations are often made in popular psychology about one side or the other having characteristic labels such as "logical" or "creative". These labels need to be treated carefully; although a lateral dominance is measurable, these characteristics are in fact existent in both sides, and experimental evidence provides little support for correlating the structural differences between the sides with functional differences." From wikipedia article http://en.wikipedia.org/wiki/Lateralization_of_brain_function – c_maker Oct 07 '11 at 21:28
  • Also, this does not answer the question at all, unless it answers 'What is the problem?'. This answer suggests that you cannot be good at both which is not true at all. It might be hard*ER* because people do not have enough practice at it, but it is not hard. – c_maker Oct 07 '11 at 21:37
  • @c_maker: unfortunately, all my psychology courses are in french. But I can mention the studies that are mentionned in them: Gazzaniga 1976, Sperry 1968, Zaidel 1975. –  Oct 08 '11 at 10:35
  • While I respect that you can support your argument, I have to say those dates were a really long time ago. Much has changed since then. We still know very little about our brain but we knew a lot less back then. – c_maker Oct 08 '11 at 12:21
  • In response to your update. Your post still only underlines what are some factors behind deciding what profession someone might choose (left vs right brain oriented). I do not like this post because it is the cop out answer I hear all the time. It is like saying "My parents are fat so I have the fat gene, I won't even attempt to lose weight". Just because you gravitated towards math and sciences does not mean you are bad at arts and creativity, it just means you do not have experience in it, therefore think that you are not good at it... cont – c_maker Oct 08 '11 at 12:52
  • @c_maker: all sciences are based on pretty old basic stuff. Unless you provide me with recent studies that proof the inverse, I'll continue to trust my university professors. The course I mention is from this academy year. –  Oct 08 '11 at 12:55
  • @c_maker: I'm not saying that. I point out the fact we all evolved differently and that some skills, such as creativity, can be stimulated, but certainly not gained from nothing. –  Oct 08 '11 at 13:21
  • This answer is balls. – theringostarrs Aug 21 '13 at 23:16
  • This answer is just totally misleading (although nice pictures). You need hard analysis to make a good UI. Of course you need also creativity and intuition but with just that you don't get anywhere near a good UI. – clime Nov 19 '13 at 01:26
4

I suppose you could argue about how programmers and designers have different mindsets or different personalities, or argue about left-brain versus right-brain and creative versus logical, but really, there are three fundamental issues:

  1. Programmers' work is their software. They care about it; they devote their attention to it; they can get excited about it. Users' work is something else; the software is only a tool to facilitate doing something else, and they want to spend as little time as possible paying attention to it so that they can instead focus about what they do care about. As long as programmers misunderstand this, they're going to make the wrong tradeoffs in UI design. (For more on this topic, see Joel Spolsky's "Controlling Your Environment Makes You Happy" or David S. Platt's "Fundamental Laws".)
  2. Programmers know their software intimately. They're comfortable with its detail and its complexity; they understand why it acts the way it does because they have a complete mental model of it. Users don't have the occasion (or the interest; see point #1) to learn every detail, and it's impossible for them to have a complete mental model because they don't have access to or understand the source code. (For more on the importance of mental models, you could perhaps read Donand Norman's The Design of Everyday Things; although it's not specific to computers, it's a good book on interface design.)
  3. Programmers' tradeoffs are different than users. A programmer can easily decide to leave a feature overly complex or only semi-automated or otherwise less than usable because for the programmer it's easier to deal with the lack of usability than it is to code it properly. The user doesn't care (much) how much effort it takes the programmer to code it properly and would rather have it fully usable.

The third problem can be solved by having enough discipline to not take the easy way out. I'm not sure that the first two problems are solvable; the closer you are to your work, the harder it is to see it the way an outsider does. That's why usability testing - even simple, informal stuff like grabbing someone in the hall and sitting them in front of your app - is so important.

Josh Kelley
  • 10,991
  • 7
  • 38
  • 50