Why are User Interfaces difficult to design and develop?

  • You are NOT the user: You know how the application is built, so you know more than the user does.  Most of development process and structure is centered around communicating with other developers. The documentation we write is for other programmers to understand our code. We write specifications to keep programmers on the same page.  However, few programmers actually ARE the users they are developing for, so it’s hard to imagine and forget what you already know.
  • Usability problems often go undetected. Microsoft has ways for users to send “error reports” to them whenever an application crashes, but how many companies actually have reports on usability problems…let alone how many users actually acknowledge that there is a usability problem with their system and not with their fall for the user interface failing.
  • Users often do not know what they want, which can be difficult to predict by the programmers.
  • People are diverse and have unique backgrounds and life experiences. So designing an interface to fit across a group of diverse people can be challenging.
  • Poor user interfaces are easy to spot, whereas great user interfaces often can go unnoticed.
  • There are many aspects to creating a solid system besides usability: functionality, security, cost, performance etc. Trying to find a balance for the different aspects to the system can be difficult for the already time crunched developer.