There is some kind of tradition which says that user interfaces designed by developers just plain sucks, and from my, albeit limited, experience, it has been proven true too many times.
We, developers have two main issue with interface design:
- We kinda look down on interface design, we think it’s too simple and not challenging enough (this is kinda stupid because if it was so simple we wouldn’t suck so badly at it) and mistake it with graphic design
- We plain suck at it, because it involves different skills that were never taught to us, and more human interaction, it require a different approach, it involves understanding the client, and we already have a hard enough time understanding the client when we develop for him, leave alone designing his user interface !
But, as I have found out, designing user interface is, not only critical, but actually fun, consider the following:
- Interface design’s goal is to make the user interaction as simple and efficient as possible, with a focus on user experience and interaction, graphic design (logo/branding…), the job of a designer, might be involved in making the application engaging, but it’s not the same as interface design
- Interface design is a purely scientific process, with trial and errors, akin to software development, it involves maybe a little more human interaction and the focus shift a little from software development, but it is basically the same process.
- Interface design is fun; technically it’s easy and straightforward but yet thought challenging. If you dig into interface design, you’ll learn a lot of interesting stuff about human behavior that can be used to improve your product.
- The quality of the User Interface can make or break an application, you have spent months developing this application perfectly, great code, great architecture, portable, scalable… and you are going to throw it into a quickly built user interface, the only thing your users will actually see and use to judge your application ? I think not !
Ok, with a little luck I managed to convince you to get into interface design, but how does one get better at designing user interface ? I have come upon the following resources, that I hope will help you as much as it is helping me :
First we identify and understand our flaws in our approach to interface design, and try to correct them :
What can go wrong in interface design: Tells us about the reason we utterly fail at designing. Identifying our shortcomings is a good first step in resolving the problem. The author advise us to leave interface design to the professional, which is, to a certain extent, a sound advise, but it cannot always be applied depending on the situation, and I think overcoming our shortcomings and coming closer to our users point of view, will make us better developer in the long run.
User Interface design for programmers: about the logic behind user interface design, this reasoned approach points out several fundamental mistakes developers make in Interface Design, and should convince you that UI design is purely based on reasoning.
Then, we must learn about interface design, much like we learned programming, there are rules that we must learn. Interface design is technically easy but it doesn’t mean you can do it without any kind of learning
Google User Experience: an interesting read about how google design their user experience
Boagworld: Blog for designers/developers, with a huge focus on interface design of web sites/applications
And then, if you really get interested in interface design, you can look for more abstract readings about human behavior to shape your approach to interface design. Unfortunately I have no definite source of information, I just find bits of interesting stuff while reading blogs/twitters. One site that I often read is LessWrong. If you, by any luck, have any resources on the matter you would like to share with us, feel free to write a comment.
If you have some money to spend, they are many books that you can read about interface design, but if you have to buy only one book, buy this one : “Don’t make me think” by Steve Krug, it’s short, to the point, with lots of useful information, it’s the embodiment of a great interface.
What about you, what do you do to get better at interface design ?