This is the first of a series of three posts in which I’ll be talking about design and usability as part of the run-up towards World Usability Day 2008(www.worldusabilityday.org) which is being organized in Lahore by the Interaction Design Center (www.ixdc.org) on November 13, 2008. To learn more about design and usability, you can also visit my blog at Experience Matters (www.experiencematters.pk). In this first post, I’ll look at some of the underlying problems that lead to poor quality software.
There is a lot more that goes into making a successful product than just making it functional or pretty which unfortunately is the normal approach with most apps being built by folks in Pakistan. This state of affairs is true for products produced by both amateur web developers and large multinational corporations alike. Let’s take a closer look as to why this happens:
First, the ‘functional’ part. Most software developers are guilty of this, i.e., just making functional software. They are good at coding and programming. Their minds have been – excuse the pun – ‘programmed’ to think in terms of bits, bytes, constructs, procedures, data models, etc. Applications built by them are functionally sound – they might be feature-rich and even bug-free. But that’s about it. Software developers and programmers take a lot of pride in believing that they belong to a special class of people because they are able to do work that involves some level of technical complexity.
But they usually lack one key trait: empathy for the user. And this problem is somethimes compounded by an unhealthy dose of arrogance and contempt for other disciplines. Of course, the ‘FAST types’ can code, add features, but what they produce is usually undesirable. Why? Because, they have been trained to think in an ‘implementation manner’, and not through the prism of the user’s needs and way of thinking. In addition, just building features into an application doesn’t make life simpler for the user, in fact, it actually adds complexity.
Second, the ‘pretty’ part. Here’s a very typical scenario: a software company needs to build a web app, so they need to hire people, right? So here’s what usually happens: for the back-end: "Let’s hire a couple of ace coders from FAST" – these types end up ‘developing’ the app. What about the front-end, i.e., the user interface? "Well, let’s hire an artist from NCA" – these types end up ‘designing’ the app.
Having a degree in fine arts is good. It trains people in designing nice logos, creating fancy images, decoration, and helps in deciding whether the color of an element should be ‘neela’ or ‘peela’. Such people know how to make something ‘look’ good. Making something look good generally means making it aesthetically pleasing. But just looking good isn’t enough. A case in point: just because a person is pretty or handsome doesn’t necessarily translate into good behavior and a wholesome, friendly personality. It’s quite possible for a good-looking person to turn your life into a terrible nightmare. In the same way, just because a user-interface looks good or pretty, doesn’t necessarily mean that it works and behaves well and is user-friendly. There is a big difference between the two, i.e., between ‘looking good’ and ‘being good’.
A painting, a piece of sculpture, a graphic image, a movie, are all artifacts that people look at or view, but not use. Pieces of art, such as these, need to created in such a manner that they elicit some sort of emotional response and establish an emotional connection with people. Software and web applications, on the other hand, are artifacts that people both look at and use. That’s the difference. No one says ‘I’m using a painting’, but people do ‘use’ software. Software apps have features. They have information. They connect you with other people and places. Software and web applications enable users to complete tasks and fulfill needs. So, not only should interactive products look good, but they should enable users to achieve their goals in a user-friendly manner.
And that’s why most artists – the ‘NCA types’ – usually fail at producing web apps that work well for its users because they’ve been trained in a manner that makes them focus more on form rather than function. Such artists are guilty of neglecting users by producing designs that look good but don’t fulfill the needs of its users. As for software developers, enough already said.
Okay, so I know that some of you are now going to say that, well, you know, art students also study communication design and product design. True, but not many of them are multi-skilled and trained well enough to design interactive digital products which requires a slew of many other different skills, methods, and techniques.
So, currently, on the one end of the spectrum we have functional software. On the other end we have something that is pretty. What we really need is software that is usable, in addition to also being functional, and aesthetically pleasing.
What is usability? Usability can best described in terms of two abstract concepts – ease of use and usefulness. A software app’s usability can also be measured by the extent to which it fulfills key usability goals: effectiveness, efficiency, safety, utility, learnability, and memorability. All of these goals can be achieved by focusing on user needs during the design process – this approach is known as User Centered Design (UCD). Unfortunately, software developers and artists are, by and large, not equipped with these skills.
Please note that I have nothing against the great folks at NCA and FAST – they were just quoted as very generalized example to illustrate and highlight the deficiencies in our approach towards designing interactive digital products.
In the current state of affairs, the user-interface is just slapped on as an afterthought which leads to poor usability. So what to do now? In my second post, I’ll be looking at the different disciplines and skills required to ensure usability during the design process. I’ll also be looking at experience design.
What are you’re own experiences with usability and user-interfaces? Who usually ends up ‘designing’ the user-interface in your team or organization. What problems do you normally encounter? I’d love to hear from you.