Software as social hacking
Finding out how you site/app/whatever is being used and percieved by the users is as important (or more) as your original specifications for it. This is what Grupper (a social service that sets up up drinks between 3 men and 3 women) discovered when they realized that cancellation rate for their events was extremely high.
On paper, they had done everything right. They had made cancelling an event very easy in order to provide a great customer service. What that meant though was the their system was allowing people to cancel for insignificant reasons. While this is was convenience for the person who was cancelling, it was quite the opposite for the other five persons who had their plans cancelled on them. So, if you could "sum the experiences", for each one good experience Grupper was creating, it was also creating five bad ones. And that terrible for the entire service, which could easily be end up being characterized as "site filled with %#%%!" ;) In the end, Grupper made the cancellation process personal, by forcing people to call up and announce themselves their change. That dropped cancellation rates 90%
One might argue that this is just the case of a social site, and it can't be applied elsewhere. But the point is understanding how your users are actually using your software (application, site, anything), what they expected to do and what they thought they got from the result. For example, consider a search form in a database with 40 category choices. Presenting all 40 options to the user sounds like the way to go. But if 60% your data is in 5 of the options, this means that user will start clicking on options and mostly get few results. This instantly is a bad experience, blamed on the system ("I tried it but I got no results. The system is broken"). Obviously, there should be a better way for the interface to allow the user to get the data he was looking for.
In the end, it's good to remember that it's not you that is using the software, it's the user. ;)
Google+: View post on Google+