My Philosophy:
I believe that user interfaces are best designed when the interface designers
and developers have some idea about who the users will be, what they are
like, what tasks they'll perform, and what environments (physical and software) they'll be performing them in. Software developers tend to think that they are human, and they tend
to believe that they are, therefore, representative of the target user audience.
And so they sometimes trust their own intuitions as to what will be usable.
This is a good strategy as long as their product/interface is to be used by
only folks who have actually worked on the product or interface. If, however,
the product is to be used by, let’s say, OTHERS, it is a good idea to
test others, before shipping or going live. And while I’m up on this
soap box, let me offer two more bits of my personal philosophy.
Cost-Justifying Usability
I believe that individuals and companies should NOT pursue a course of usability
engineering for their products because they want to be good citizens, or
because “it’s the right thing to do.” Employing
a user-centered design approach
is a business decision, best done only when the
benefits outweigh the costs. And those costs and benefits can be measured
and compared, with at least the same accuracy as lines of code, projected
sales, or other estimates on which companies and organizations typically base their decisions. Note, these benefits need not be only financial; a library or museum or website of a nonprofit might measure "benefits" in terms of usage or customer satisfaction.
The Dangers of Amateur Usability
In my 25 years in industry I often saw companies decide to forego usability
evaluation because they thought they could save the money and do the usability
work themselves. Or maybe they diverted a disgruntled tech writer, or a poor
software developer, over to do the usability work. The problem, in my should-be-humbler
opinion, is the following. If a software developer is a poor software developer,
he or she gets discovered at least by system test time. However, if a person
does a poor job of usability engineering, this fact doesn’t get discovered
until the product is shipped or the web site goes live and the customer support
phones start ringing off the hook. Usability engineering is a professional
discipline that, to be done well, requires competence in a long list of methods
for user data collection, the discernment to know which method to use when,
the ability to advocate for their collected data, and any number of other professional
skills.