The Importance of Design When Building Complex Software

Dec 25, 2017 9:05:00 AM

shutterstock_412583725.jpgWe’ve all seen examples of bad design in our daily lives: appliances that break on first use, floor plans that are difficult to navigate, and of course, computer software that makes tasks harder, not easier.

Why is there so much bad design out there? The problem of bad design is the failure to understand the needs of the end users and anticipate all the ways actual users will employ the item being designed. This can be deliberate, where the item is designed for the convenience of the designer and not the user, or it can be accidental, where despite the designer’s best efforts, one or more important uses are not considered. Either way, bad design makes for unhappy customers who take their business elsewhere.

Good Design Starts with The User

The end goal of any device or software should be to make someone’s life easier. Among the jobs of the designer is to figure out who that someone is and the specific problem that is making processes difficult. Only when the problem is thoroughly understood can it be solved.

The methodology approaching design from this perspective is called user-centered design, and it’s the foundation of all we do here at AndPlus. The essence of the user-centered design process can be described as follows:

  • Understand the user: Who is the user (or users)? Where and how do they work? What knowledge do they bring to the task? To what constraints (physical, environmental, economic, legal, regulatory…) are they subjected? What are their needs and goals?
  • Understand the problem/process: Most business problems involve processes that would be easier to follow if there was a tool to automate some or all of it: Understanding the problem involves understanding the business process behind it. This part is tricky, because many business processes are fundamentally flawed in some way, and no software, no matter how well designed, can overcome a bad business process. An important part of understanding the problem is asking the right questions, which usually start with “Why….” If the root of the problem turns out to be a bad process, the customer needs to fix the process first, before applying any kind of software tool or automation. In some cases, the customer might be able to eliminate the process altogether.

A major red flag is when the customer has a preconceived solution in mind. Such customers are often unwilling to consider alternatives or examine the underlying process for flaws. They should be gently reminded that at this stage of the process, all stakeholders need to have a solid grasp of the “what” (What is the problem?) before delving into the “how” (How can we solve it?).

From Understanding to Design

An important step in this process is documenting “user journeys”—that is, step-by-step stories of how the user will accomplish each task in the system. These journeys should be validated with the customer before actually designing anything.

With thorough knowledge of the user, the process, the problem, and with validated user journeys, the designer can make intelligent choices in the design. For example:

  • Make it intuitive: By getting inside the user’s head, the designer can design a user interface that is intuitive, one that follows the user’s mental model of the system supports the process. The user should not have to consult a process manual to accomplish any task.
  • Make it mistake-proof: Many software systems suffer because they give users enough rope to hang themselves—that is, user interfaces offer so many options and choices that it’s easy for users to make mistakes. Simplifying the interface and disabling or eliminating irrelevant controls and options prevents errors.
  • Make it enjoyable: By making the system easy to understand and use, and by eliminating redundant and cumbersome steps in the user’s process, the end product will be something the user enjoys using, and is then more likely to use.

Good design is not usually difficult, and it can be time consuming. But it’s worth the extra time to make sure the design addresses the right problem and provides the right solution.

Topics: Software Design

Brian Geary

Written by Brian Geary

Brian is a true believer in the Agile process. He often assists the development process by performing the product owner role. In addition to his technical background, he is an experienced account manager with a background in design and marketing.

Lists by Topic

see all

Get in touch



Honeywell Logo