ASP.NET Security Consultant

I'm an author, speaker, and generally a the-way-we've-always-done-it-sucks security guy who specializes in web technologies and ASP.NET.

I'm a bit of a health nut too, having lost 50 pounds in 2019 and 2020. Check out my blog for weight loss tips!

Why User-Centered Design is absolutely vital for the success of your software project

Published on: 2012-02-12

Most custom software I've encountered is designed pretty poorly. The primary problem stems from the fact that user interfaces are typically designed by one of two groups: software developers and/or graphic designers. Both software developers and graphic designers play an important role in the completion of a successful software product, but neither make great interfaces. In general, software developers make interfaces that are easy to create, while graphic designers focus on creating interfaces that maximize the initial "Wow!" factor. But in both cases, the interface is typically cumbersome and unintuitive.

Earlier, I had written about how technologists need to know more about marketing. Since needing to know more about marketing is a rather vague goal to strive for, it's important to know about the next best thing: User-Centered Design, or UCD. What a specialist in UCD does is interviews probable end-users, watches them complete their tasks, and interviews business stakeholders in order to fully understand the needs of the users. Once these needs are met, a User-Centered Designer would create the outline of a software solution that would be easy for the users to understand and more fully meets their needs. It's essentially just marketing concepts applied to software design.

Typically, a business person looking to create custom software doesn't want to spend the cost up front necessary for a thorough UCD effort. However, these costs are almost always worth it in the long run. Consider these:

  • By having a thorough understanding of the user's needs, you can maximize worker productivity
  • By knowing how the typical user goes about completing their tasks, you can minimize user training time
  • By knowing the end-goals of all parties involved, you will minimize the amount of rework after the product starts being used
  • By increasing productivity and decreasing training time and rework, you will increase overall satisfaction and acceptance

When put in these terms, it's tough not to put forth the extra effort up front in order to increase the odds of your project being adopted successfully.

This article was originally posted here and may have been edited for clarity.