Most, if not all, software teams want to deliver a high-quality product. And most, if not all, face a wide range of big challenges that get in the way of this goal. In the day-to-day work to fulfill business and customer priorities, improving quality seems an overwhelming and/or overlooked activity.
My teams’ quality journeys
Over the past few decades, I’ve been lucky to work on several teams that achieved our realistic quality goals – eventually. Looking back, there were a few components to this success. First, everyone involved in delivering the software product had a conversation about what quality meant to us. We committed to achieving that level of quality, knowing that we’d keep running into obstacles in our way. Then, we identified our biggest current obstacle.
Next, we identified a practice that would help overcome that biggest obstacle. We learned that practice and experimented to see if it helped us towards our goal. For example, “We lack a deployable artifact to test and release. Continuous integration should solve that problem for us. Let’s learn how to implement it and get it done,” When that obstacle was no longer the biggest thing in our way, we identified what to improve next, and what to try to get that improvement. “Our database design is causing us lots of web app performance issues. We believe that hiring a database expert into our team will help us learn ways to speed up performance.” Rather than try to multiple problems at once, we took baby steps one at a time, measured progress, and retrospected frequently to see where we were.
Answering the question: Where are we now in our quality journey?
Identifying the biggest quality constraint can be complicated, confusing, and messy. I am happy to say that Janet Gregory and Selena Delesie have come up with a new Quality Practices Assessment Model (QPAM) that provides a straightforward path. Their new book, Assessing Agile Quality Practices with QPAM: Enabling Teams to Improve, is a step-by-step guide to understanding the competency a team or organization has in ten key quality practices. Then the team can decide where to focus their quality improvement initiatives.
High quality usually requires a pretty significant investment in people, learning, time, and infrastructure. Most organizations don’t have endless amounts to invest. It’s important to work on the improvements that deliver the biggest results.
The goal is not to achieve the top dimension in each agile quality practice. It’s to understand which practices move your team towards its quality goals, and what behavior patterns the team needs to achieve in each practice. Focusing on one or two practices at a time leads to consistent quality improvement.
Evaluating quality practices with QPAM
I’ve been fortunate to conduct an assessment for a good-sized development organization using QPAM. I facilitated process retrospectives for different feature teams in the organization. Together we identified all activities in a typical iteration along with who worked on each activity. We captured all the development (including testing), delivery and operational practices used. I also interviewed the testers, the development managers and directors, and the executives responsible for software delivery. In all of these sessions, In each of these sessions, I asked many questions from QPAM aimed at evaluating where each team and the organization as a whole were in each of the quality practices.
I distilled the resulting data (a bit overwhelming, I admit!) and used it to evaluate which dimension the organization currently achieved for each of the ten quality practices. I created a report of my observations and recommendations, along with a “quality radar” chart visualizing the current dimension level in each quality practice. The organization could then use this information to decide which quality practice they should work to improve first. They can (and plan to) repeat the assessment regularly to gauge progress towards their own quality goals.
Jump-start your team’s quality journey
If you want to help your team or organization achieve your desired level of software product quality faster, take a look at the agile quality practices in place, and how well people are doing with each one. QPAM is a super effective way to do this. Janet’s and Selena’s book explains QPAM and how to use the model, so an organization can do this for themselves. For example, if you have a quality practice lead, that person can lead the assessment process.
It’s important that everyone participating in the assessment feel free to be honest about what they are doing within each practice. For example, if the team is supposed to be practicing test-driven development in order to provide quick feedback via unit-level tests, but they’re struggling because they don’t really know how, they need to feel safe to admit this. Having someone from outside the organization conduct the initial quality practices assessment may be useful.
I would love to help more organizations by leading their quality practices assessment, so please do contact me if you’d like to know more!