Builder Australia recently caught up with software design pioneer Larry Constantine to talk about usability and UI design in today's software.
Builder AU: To know what users want and use is a hard task for software developers. What are the best methods developers can use to find out exactly what users want?
There are two issues there. One is what users need and the other is what they want. This isn't necessarily the same thing. I like to tell developers to never ask users what they want. The most useful thing that a developer can do is to spend time watching users. This means watching them using their website or software and not asking them questions. That would be the easiest no brainier to pick up on.
What do you think of usability and user interface design in the free software and the open source movement?
I'll probably get into trouble for saying this. But, I think open source are good at a lot of things, but they are not good at producing good user interfaces. Partly because there doesn't seem to be many people in the open source community with the skill sets and the interest in usability and user interface design. That could well change but I haven't been impressed so far.
Free software on the other hand is a mixed bag. In shareware and freeware I have seen some pretty impressive UI design and on the other hand I've also seen a lot of awful things. I don't think you can say anything specific about that kind of software as it varies.
Where do you think UI design fits into the process of software development?
It needs to be upfront and early. I don't think it should be regarded as part of the requirements definitions stream as it is the in the Rational Unified Process, but it does need to be early. It can be done incrementally, there are agile variations of our approach that allow you to do incremental design. The only thing that is an absolute rule is that you have to design something before you code it. You don't discover the design by programming—that is inside out designing. It needs to be outside in.
How does UI design fit into emerging methodologies such as XP?
XP itself doesn't have much to say about users and UI so you have to do some extensions. There is more than one way to do it. Some customers have done a big design up-front and then have the design team take on the customer role within the XP process and work with the developers to write the user stories based on the design they have already worked out. That is not the only way but it is the easiest.
How does usage-centred design help designers and developers focus on what is important?
The whole nature of usage centred design is all advised to focus on those relatively few things that have the greatest impact on getting a good user interface design. The fact that it starts out as the user role means that you have already narrowed your focus from users in the broader sense to the relationship with the system.
The task modelling using task cases keeps your attention on what it is your users are attempting to do from their perspective. If you do this modelling process it leads you straight forward from nowhere to a design that will work well for your users.
What do you think of usability in handheld and wireless devices on the market today?
Designing for handheld devices needs to be addressed as a distinct design exercise. You can't simply take what you do on the desktop and then put it through some algorithms and automatically generate a good user interface for something like a PDA. I think almost nobody is doing it particularly well. It's tricky.
Do you think that some of the emulation tools are attributing to this and the fact that many developers may not have access to the devices to test?
The emulation tools are good. The problem I think is that too many of these applications are being designed without the help of good visual and interaction designers or they are being driven more by marketing and industrial design people. This is definitely the case with mobile phones which are just getting so complicated, with too many features and harder and harder to use because all of these companies are using industrial designers to do very clever things and differentiate themselves in the marketplace but what gets sacrificed is usability.
I've done surveys with large audiences and asked how many people use their mobile phone other than dialling and taking calls. It seems to be a small minority of people who have actually programmed their contact list in their mobile phones is very small. I ask those who haven't done this and a common response is -I can't figure out how to do it". What makes it a concern is that people at these conferences are bright people!
How do developers go about learning good user interface design?
I think there are lots of different ways and it depends on the developer. I think its good to get hands on training from a university or one of the commercial organisations but then you have to practice. That means ultimately doing designs that see the light of day and getting them tested and deployed to real users. Doing exercises is good for a start.
Not everybody is cut out for visual interaction design, just like not everyone is cut out to code in C#. People who are good at visualising things and visual problem solving have a head start on doing user interface design.
Linus Torvalds said earlier this year that he hates UI design..(Interupts)
Yeah I'd believe it. There was one colleague of mine at the university who, at every seminar on UI, would at some time raise his hand with the same question:
"Hasn't the best universal user interface already been designed?"
"The UNIX command line!"
The thing is that for him that really is. But for most of the people in this world that is not the best user interface.
As more systems are getting connected via XML and other technologies what do you think will be the biggest issues in usability and UI design in the next five years?
I think one of the biggest challenges in usability is going to be dealing with changes in technology that is beyond of our control. At this point we have only some preliminary glimpses of what the user interface of Longhorn release of Windows is going to be. The truth is of course that we are all going to have to live in that world. Who knows what Bill Gates has in store for us?
There are similar challenges in technology in other areas. For example more mobile phones have colour screens, higher resolutions and larger screens and there will be no doubt that this technology will keep changing and get better. The trick will be keeping up our methods and techniques so we can make appropriate use of this technology. I don't see anybody in the mobile phone world doing a good job of using the technology they have at the moment.
If you had a golden rule in UI design for software development what would it be?
It would go back to you or not your users. Extrapolating from your own experience is invariably a mistake. That means you have to learn about your users, it's not something that you can intuitively guess at.