- Posted by SondreB on January 30, 2009
-
For as long as I can remember, I’ve said that design is half the solution when you’re building software. The same can be said to sound and music in a Hollywood movie: The experience of the sound is essential for a good experience.
Some people tend to think that design is not important, a lot of the time these are old developers that has a history of making incredible poor user experiences. In a recent article in InfoWorld, a journalist put forward a hypothesis that good design is hampered by the current economics crisis. My opinion is that this is false, and that good design is even more important today when there is less economic freedom. It’s when the times are good, we can afford doing poor design.
What I tend to hear a lot from developers, is that interface on internal tools, internal software and management application doesn’t matter. They take it for granted that the individuals that will be using their tools knows or easily learns how to use what they are building. Additionally, we tend to think our application that won’t be used often, so we tend to take shortcuts. I’m as much guilty in this as anyone else.
Good design is important. More so in software that is used on a regular basis and with a large user-base.
(Photo by wasabicube, licensed under Creative Commons)
Why is design important?
Let’s track back a bit and see if we can figure out why design is important and why it’s essential that it’s good. To really understand what’s going on with us on a physical level, we have to look at the esthetics of our software. Aesthetics is the study of our reactions to sensory input, how we are mentally effected by the experience of art, music, nature and so forth. Aesthetics(!?), you might ask? What does that have to do with building computer software?
Everything.
In today’s society, computer software is being used by virtually everyone on the planet. We use it to fill out our tax-returns, reading email, keep in contact with family and friends, fill out time reports at work and play computer games. Every time you use any piece of software, we have an experience, one that is shaped by how the application works and performs. If the application is sluggish, slow and crashes, you will have a negative experience. We all know how infuriated we feel when our computer crashes and freezes up. This infuriating feeling can be spawned by the smallest of things. A button on the wrong location, the wrong text in a dialog, error messages when you didn’t do anything wrong, and so forth.
There are many steps and guidance that can and should be used in a project that develops computer software, that is unfortunate beyond the scope of this article.
Another aspect of the human psychics is our pretentious tendencies. When we do the same tedious tasks over and over again, we tend to avoid reading all the text in dialogs, windows and even error messages. We’ve seen them before and our brains recognize them and categorize them accordingly. Have you ever experienced closing a window dialog, only to quickly realize that you have no idea what you actually accepted or declined?
To show an example on how we prejudiced from our experience and living on a society, have a look at this homework assignment turned in by a 1st Grade Student:
(Image taken from the following reference)
What was the first thing entering your mind when you saw the drawing? Many of you probably draw the same conclusions. That is how we are wired and there’s nothing negative about that, the only important thing to realize is that our first impressions and our prejudice shouldn’t be a deciding factor on your opinions, whether it’s another human being, a company or any other entity.
Use time for design
It’s important to use time and resources to work out a good design for any computer software. How much time and money should be decided by the user-base of your software. The more widespread it’s use will be, and how many hours a day it will be used by those users, is the two metrics you should use.
Every second you can shave of the time a task inside your software takes, that is seconds saved by the individual and the corporation that is dependent on your software. If you make a design that doesn’t follow industry standards, your users will require specialized training to be effective. Additionally there can occur situations that’s “attributed to human errors”. Human errors costs billions of dollars every year and it’s a reason for thousands of humans deaths every year (Looking at the human society as a whole, not just specifically the software industry).
Saved time is money saved.
What worst possible case is when an employee’s job is to use a piece of software that is so bad, that they won’t stick around for long. Would you be able to keep calm and quite if you wasted hours every single day due to computer software problems?
This might possibly strike a nerve in one of the problem spaces in computer software engineering – we don’t share our customers pain. It’s a demanding job to successfully and fully understand the problems of a customer and user, and it’s often not a prioritized task. Especially not on the list of developers, who in many instances is not allowed to communicate with the customer or is separated to be able to concentrate on the task of developing the software. That can end very badly. It’s essential that developers understands the needs, requirements and wishes of their users.
Make sure you have time for design and it should not be an afterthought, it should be the first thing you do in the process of developing any software that is directly used by a human being. There are many industry processes for capturing user requirements through mock-ups, wireframes and so forth, all of which is beyond the scope today. My suggestion is to find some good articles and books that teaches the practices of building good user interfaces and how to capture the user requirements.
Why should you care?
So the moral of the story is, design is equally important to function. If those are in unbalance, the chances of problems are increasing. If your functions are lacking and poor, it doesn’t help if your application has an amazing and fancy interface. It will probably help you sell more licenses, but in the end it can become extremely costly – both for you and your customers.
And I want you to care (as a developer, project manager, decisions taker, designer, etc.), because as a software engineer I take pride in the work that we do. Yes, I said what we do. We are all together in this and together we are progressing, and moving forward.
Everyone can make a difference and if you’re currently in a project that is lacking in design and focus on usability, make yourself heard and everyone will be more happy with the end results.