Imagine: you are in a restaurant, on the menu you have found your favorite dish and you ordered.
Unfortunately, when you get it, the quality is not the expected one, something is VERY wrong. You call the restaurant manager and tell him that you are not satisfied.
Here is his answer: "Sir this food is not a poison, will feed you without any medical problem!".
This approach would be considered foolish in most worlds, but is quite common in software. Programmers are like that: they often do not care about the easiness of use, they care a lot about the availability and correctness of functions.
Putting a check mark on the field “available and tested” in the long list of product functions is their reason of living.
This, tragically wrong, mentality is very often pervasive into the project team.
When deadlines are approaching and there are, as usual, some delay usability is totally forgotten. This is the main reasons why too often we see horrible pages where usability (or sometimes we should better say UNusability) choices are almost impossible to understand.
Very often the usability expert's team is considered a useless way of spending money and delay the project, The mentality is "let's have a general OK so that finally we may work on the project without further disturbances".
This is VERY wrong!
First of all usability is NOT a pertinence of a special group in the project, usability, like correctness, is something that should be considered matter of ALL the participants to the project. Of course some usability restricted general meeting will be important to homogenize the approach.
Second: usability has to be constantly checked and rechecked all over the project. Initial decisions may be good, but a nice garden, if not cultivated, will very soon be overrun by weeds!
Part of the problem comes from the fact that often usability is totally outsourced, some rules and indication are asked at the beginning of the project and, at best, some test is done at the end. Indication at the beginning are ok, but not enough, check at the end will for sure end up in costly and time consuming corrections.
Usability activities MUST be conducted all over the project life, from the paper prototype to the final code all pages must be checked for usability!
Outsourcing the leadership of UX (User's Experience) Design could be a good idea, outsourcing usability is NOT, somebody may help you, but total outsourcing is a very good way to get into a disaster.