Friday, November 16, 2007

Why users matter more than ever before?


Users always have been a big part of the software development process but recently I've been thinking that the role of users today is more important than it ever was.

In which phases and how should we care involving users?

1. Requirements. This is the most obvious one. Users are a key part of the requirements definition. This was true in the old times too, but today users know what they want in a very precise way. In the old times we were building systems for users that never used a computer system before. Users were 100% computer-naive (as opposed to today's computer-aware users).
When I studied systems in the late 80s users would provide the field knowledge, the "what", and engineers, analysts and developers would provide the "how to" part of the implementation. Today, the users are expert windows and web users, they know what to expect from a system, an interface and much more. I think users today know what they want and without losing our objectivity and obviously adding our own "know how" we should listen very carefully our users requirements.

2. User's ownership towards a successful system implantation. A system that was conceived and developed with user's ownership and commitment will be successfully implemented and installed. On the other hand, a system that fails to implant successfully will in most cases unveil that the users that should be committed to it were not identified and integrated properly. What users are we talking about in this particular step? for an internal or intranet system it would be: end users, marketing team, support team, sales team. For an internet system it is more complex and is explained better in specific literature such as "crossing the chasm", but basically it would be: alpha geek users, beta users, core users, vertical/extended users, mass users.
I had my own aha moment regarding this subjects in my early years when at the moment of rolling out a system, that from my perspective was just perfect, there were all kinds of obstacles and we could not get a successful implantation, and of course the users did not own the product, they didn't feel any commitment to it, they even felt menaced and challenged by the system and it just didn't work out.

3. Testing and system evolution. A system that is not used by users will never improve. What makes a system evolve is just one thing: USERS. You can plan to improve a system as much as you want, but what will really improve a system will be real people with real problems or real experiences on the system. That's why it's so important for systems to achieve a critical mass of beta-testers and core users that will push the product to its limits and make it evolve and grow. This is more true than ever also for web applications. Most of the users are educated in what they would expect from a system and they will ask for that, anonymously, with their names. No matter how, if you have a critical number of users you will get the feedback that your site needs to evolve.

So, more than ever before, users are a key part of the software development process and how much they're considered might make the difference between system's success and failure.

It might not be too far away that users can build their own systems, plus some people are already talking of self-improving systems, so things will keep changing ...

No comments: