Setting up a quality management plan is a worthwhile investment at the start of any project.
It is recommended to start filling it out at the beginning of a project. If you have a test engineer on your team, they might be a typical role to own this. When complete and agreed upon with your full team, it is best to keep this as a shared document accessible by everyone.
Here are eight steps for creating a quality management plan in your next software project:
- Create a shared understanding of what quality means for this project.
Facilitate discussions with your team and stakeholders on what an acceptable level of quality is. Try to sum it up as concretely as specifically as possible, like in this example with bug reporting:
Some questions you may ask to get this information from your team and stakeholders include:
- How important is performance (e.g., load times) of the product?
- How do we want to measure success? Is the result of a user story more important or are the details (acceptance criteria)?
- What are some of the most critical areas of the product that need to be quality no matter what (e.g., data-sensitive features)?
- What project controls do we want to maintain?
- Divide up responsibilities for quality management.
Decide who will be accountable for each key responsibility of the plan. This includes defining who will:
- Maintain a target device list.
- Write acceptance criteria for user stories.
- Approve a release to go out.
Here’s an example of how I list these activities in my quality management plan:
- Determine your target devices.
Your target device list is valuable, as it helps your development team focus on very specific aspects of quality. It is best to make this list as specific as you can and tie to any existing user personas.
This list should be visible somewhere (e.g., a shared wiki) for all project stakeholders, developers, and more to access.
The target device list may be based on criteria of your choosing, such as target:
- Hardware and age of hardware
- Operating systems and versions
- Web browsers and versions
- Screen resolutions
- Internet connection requirements
- The expected amount of concurrent users on any servers being used
- Write acceptance criteria.
Acceptance criteria are generally a feature-specific list of what your testing role will be doing when reviewing a feature. Good acceptance criteria are specific, but also broad enough to optimize for developer interpretation.
- Integrate unit tests into your code.
Unit tests are coded tests, generally written by your development team.
They are incredibly valuable in any quality management plan, as they can check to ensure the code is functioning as expected. As your project grows and releases become more frequent, this is an incredible time-saver.
The project manager is not responsible for integrating the tests, but if you’re managing the quality plan, you’re responsible for logging the activity and tracking it.
- Set up a deployment pipeline with optional quality checks.
This step is optional, however, if you can afford the time for your development team to set up an optimized development pipeline, it is worth it.
A deployment pipeline can allow you to set up additional automated quality checks, such as running unit tests and integration tests, through each deployment to multiple environments.
- Set up a regression test process for gating releases.
A regression test is a detailed test plan that often defines a few different “happy paths” your users may take. It is often used as a final test before a release to ensure there were not any “regressions” in expected functionality for existing users.
Generally, a regression test is run on each target device to help ensure optimal quality. This can become time-consuming as a project grows, at which point exploring automated regression testing may be valuable to your team.
This test is generally maintained and owned by a test engineer.
- Configure a process in your tool of choice to tie this together.
It is important to make sure everything in this process runs smoothly for both your project and the team. With your project management tool-of-choice, it is recommended to set up and configure any processes and automation possible to help your team focus on quality management.
Automation is valuable here. A few examples:
- If you are using Jira, you can configure defined workflows to prompt quality checks when needed.
- If you are using Asana, the tool offers similar functionality for when a task is moved to a new column.
- If you leverage Zapier, you can automate reporting from task movement in your tool of choice.
- Monday.com supports numerous integrations, including the ability to automate capturing Zendesk tickets into your development backlog.
- Slack’s new Workflow Builder can help tie together multiple data points into a single, seamless communications workflow.
Useful Quality Management Tools
While creating a quality management plan requires a time investment, there are a significant number of worthwhile tools out there for creating, maintaining and tracking your work. Some examples include:
- Google Sheets: Great for regression test management.
- Asana/Jira/Similar Tools: For facilitating your quality management process.
- Intercom: Great for connecting directly with your users to obtain manual feedback.
- BugHerd: Helpful tool for collecting stakeholder feedback.
- Heap: Valuable analytics to determine if the quality of your user experience and product flows are resonating with users.
These are just a sampling of tools available for helping your quality management plan. There are far more alternatives and niche tools than just these that can help you in ensuring quality throughout your project.