Involving users in the software development process
The key question concerning this issue is – “How to involve users in the development process?”. After some study I realized that user involvement is something that needs to be well planned. Involving users it’s key to projects success but only in the right amount.
There are two ways in which users can be involved in the development process:
- In a passive way, where they are information providers to usability teams;
- And, in an active way, where users assume responsibilities and participate on decision making activities.
Involving users passively
In the passive there is an usability team that is responsible of gathering and analyzing user requirements, designing the user interface, and assessing the interface. They are in continuous communication with users to make sure the system is being built according to their needs and wants.
Making part of this usability team there are:
- Usability Engineer, who is responsible of gathering and analyzing user requirements, as well as studying the system’s users. This role’s main goal is to capture the users’ mental models of their work.
- User Interface Designer, who has the responsibility of expressing the users’ mental model as closely as possible within the constraints of the data and technical architecture. The UI (User Interface) Designer must be versed in usability principles and employ these principles while working.
- Usability Evaluator, who is responsible for testing the product design, analyzing and documenting the results, and presenting them to the development team.
Working together with the usability team there may be Product Analysts, who are domain experts with long time experience in their field of work and incorporate their knowledge about the users’ workflow and the organizational settings users operate in. They protect the users’ interests during the project and gather information about users in an adequate way. These experts are always readily available to the team.
Involving users actively
Another way of involving users in the development process is in a more active way. Active user involvement requires users deep commitment to the project. They assume responsibilities and participate on decision making activities. One technique for active user involvement is to put the users managing requirements . Users participate in monitoring the project progress and controlling the requirement management process. They cooperate with the development team in an attempt to lead to positive results.
It’s important to notice that involving users actively doesn’t discard usability teams, instead they are involved in other type of activities. While on the passive way they are deeply involved throughout all usability activities, on the active way they focus on evaluation activities.
So how to know which way, active or passive, suits better your project? To help decide the best approach I defined a set of variables. They are:
- Product type: Is you product a standard off-the-shelf product or a specific product for a specific customer?
- Diversity of users: Does your system has to deal with many different types of users?
- Development team organizational culture: How does development team organization sees user involvement? As a money saving activity or as a money making activity?
- Customer and users availability: Is the costumer and/or users willing to participate or provide the means to user involvement?
Considering the graphic below, for values near the centre it’s better involving users actively. And, the other way around, for values in the periphery passive user involvement works better.
Of course these variables are not to be considered some kind of recipe. They’re only the ones I found more important. However there other aspects that need to be considered like project duration.
Thanks for reading. Hope it was helpful :).
 C. Clavadetscher, “User Involvement Key to Success“, 1998