Imagine you were getting your house custom built by a contractor. You tell the builder about your family and life style, your must-haves, your budget, your ideal blueprint and a lot more. Now the contractor completely disappears for the next six months, hard at work on your future home, trying his best to build features that would satisfy your requirements and even delight you with a few little extras. At the end of those six months, when the key to your home is in your hands, how close would this home be to what you had in mind? As ludicrous as this example sounds, its not all that implausible in software development.
Users are the most important part of market research and requirements gathering. Users’ delight is the primary gauge of a product’s success after product release. Then why not loop them in during the most important and evolving parts of the project – design and development? Why not involve them while we still can correct course? Instead of delivering products at the end of huge release cycles spanning years and hoping that the requirements were gathered, interpreted and implemented correctly, agile development projects can benefit hugely from customer engagement often and throughout the development cycle.
There are several ways that the customer can be involved in the process of building your application. During the initial stages of the product, involve the users in validating the overall vision of the product using rapid prototypes like paper prototypes, low fidelity mockups. This helps communicate, validate and solidify understanding and agreement of the project vision across end users, stakeholders, developers, testers and product managers. As clear as the vision and requirements seem, this process clarifies the scope and nails questions and inconsistencies like no other.
As you get a little further into development, engage the users in validating your product’s periodic progress in design and implemention of the features. One method that is cheap and works out great is using remote connection meetings with one user at a time to test your progress. There are several tools like web-ex or SAPConnect to connect you to the user and if you can add a webcam to the mix, it will help you gauge and capture the user’s emotions like confusion at a particular design etc. It is very important to not turn this kind of session into a demo or an educational session. This will influence the user’s thinking and bias them towards your design. Instead, put your product in front of your user, give them control to play with the tool while your development team watches the user’s interaction and navigation through the project. Also avoid making this a group activity with several users involved at a time. This kind of format biases the group and the most dominant user in the group can completely influence other users’ reactions to the product. So one user per session would be ideal.
There is immeasurable value in observing actual users play with your product – in understanding their typical actions, in observing their reactions to the various screens, in realizing where the confusing aspects are and adjusting the product to ease these areas of difficulty and finally in the most rewarding experience of seeing the user discover and express thrill for a innovative idea that you implemented. As a developer not exposed to much user feedback in my early days, this is an experience that I think every developer will benefit from, in always having the user as the center of your design.