One of the principles from agile and lean software development is transparency. Making things visible helps teams to decide what to do and to collaborate effectively with their stakeholders. It can also help to increase the quality of software. This post provides ideas how you can do that.
Developing software with sufficient quality is something that many organizations are struggling with. Bad quality software manifests itself in many different ways, for instance by complaining customers, angry stakeholders and unhappy developers.
Insufficient quality also leads to high maintenance costs and missed delivery dates. It hinders product innovation. The conclusion is that you pay a high price for low quality.
Quality is in the eye of the beholder, i.e. the stakeholders and customers. They will be the judge if the quality is good enough. At the same time they are also the ones that can help agile teams to deliver better quality. All it takes is to make quality visible so that teams and their stakeholders can join forces to improve it.
Visual management in agile
How can visual management help to increase the quality of the products when agile software development is used? By visualizing what is meant with quality to create a shared view and to agree in the team and with the stakeholders what will be done to assure that the delivered products will have the right quality.
Here are some suggestion for using visual management to increase quality:
- With user stories the quality can be defined with acceptance criteria. They are a great way to explicitly state the quality that new functionality needs to have and to reach agreement on how the quality will be validated.
- Teams can use their Definition of Done (DoD) to define quality criteria that apply to all user stories. It helps to have the DoD visible at all times, e.g. by sticking it on the task board.
- The demo (or sprint review as Scrum calls it) can be used to check if the quality of the delivered product meets the needs of the customers. Where applicable teams can highlight quality aspects and ask for feedback from the attendants of the demo.
Visual management empowers teams to increase quality. It enables them to take good decisions on what to do and not to do to deliver high quality software.
Using user stories for quality improvement
If quality is built in from start and teams and stakeholders pay attention to quality throughout product development, that’s great. But sometimes quality is sacrificed and then you need to catch up and do an investment in quality.
User stories can be used to define and plan work that is needed to improve the quality of the existing product. Such a user story would have a qualified requirement. Some examples are:
As a business owner of product xx I want the yearly downtime to be less than 5 minutes because that is the industry standard and expectation of our customers.
As a user I want the system to respond within less than 1 second in 95% of the cases so that I can do my work effectively.
The system should log all major outages (longer than 1 minute) and provide complete information so that the maintenance team can investigate them and take preventive actions.
When writing user stories for quality improvement always make sure that the business needs are clear. You don’t want to do improvement for improvement sake, there needs to be a solid reason to invest time and money. Make sure that your requirements drive quality.
Visualization drives quality
You can apply visual management to make potential quality issues visible early and to prioritize solving them. The examples that I provided explain clearly why quality matters and how visualization can be used to establish, maintain and even increase the quality of software products. For more ideas on how visualization can be used, see Making Quality & Process Improvement Visible
This blog post is part of the book What Drive Quality? Understanding Software Quality to Prevent Problems, a book that is based on the successful series What Drives Quality. Understanding what drives quality enables you to take action before problems actually occur, saving time and money.