The ultimate arbiter of whether a piece of software “is good” is the customer. The person who will be using the software to achieve a goal: whether that is to write a letter; calculate an insurance premium; or enjoy a game. Often though, this valuable resource remains untapped in the realm of software development. Methodologies such as Behaviour Driven Development seek to integrate the end user into the development process, but this tends to be towards the front end of the project. In what other ways can we draw on the customer’s feedback throughout the project and beyond to improve the overall usability and quality of the product?
Every software solution should be designed with the end-user in mind. They are the ones who interact with the software daily, making their insights vital to your product’s development. Feedback from real users helps identify faults that may have slipped through other testing steps. It can bring attention to usability issues that might causing real world problems for the end user. There are accepted methods for gathering this type of feedback before a product is released: User Acceptance Testing and Beta Testing
User Acceptance Testing is a method where software is tested by the intended audience under real-world conditions. UAT can highlight problems that may not become evident until the application is used in the environments it was designed for. Beta testing involves releasing a near-final version of the software to a select group of users to gather feedback. This can be used to fine tune a product just before launch.
Feedback is Essential
Outside of formal testing processes how else can we establish what the customer thinks about the software? Surveys and user interviews are invaluable tools that offer a direct line to your users’ thoughts, experiences and perspectives. They can yield authentic, qualitative data that offers crucial insights into your software’s strengths and weaknesses. Going beyond simple “this works, that doesn’t” responses they can illuminate what aspects of your product resonate with your users and what aspects don’t. Furthermore they can suggest what improvements the development and testing process in itself has suggested.
Regularly conducting these surveys and interviews is an effective way to keep your finger on the pulse of your user base. They allow you to track how perceptions and experiences change over time, and as updates or modifications to the software are released.
Outside of proactively pursuing your customer’s thoughts, the Customer Support function can be a gold mine of useful information. Each support ticket provides an insight in to how the software is used in real-world scenarios. These insights can range from minor defects to the user experience to major technical issues with actual functionality. Support tickets can also illuminate usability issues that are hard to pin down. These can, for example, be confusing features in the interface that don’t present as an actual defect but are causing problems for users while they are working. The volume of information held as tickets also allows analysis over time to see recurring issues that may not have been dealt with satisfactorily.
There are clear benefits from listening to your customer’s feedback and acting upon it. The optimum strategy is to build a system for regular, ongoing feedback from users and indeed making it easy for them to report defects or suggest improvements at any stage.
A strong iterative feedback loop ensures you are consistently meeting customer needs, improving user satisfaction, and enhancing the quality of your software. This constant feedback loop is essential and ties in neatly with the iterative nature of software development.