To consistently deliver quality software that meets clients’ expectations, your organization should consider defining a quality strategy. What does quality strategy mean? It’s a set of quality activities that will be carried out with every sprint and release cycle, and everyone approves. An effective quality strategy blueprint includes all facets of testing (automation, manual, reviews, and acceptance criteria to name a few), which help reduce risk and tighten release cycles. Invest in Great User Stories
Start right, end right! Everyone needs to recognize one of the most important elements of building better software with quality — great user stories. For those not doing Agile and who may not know what a user story is, it represents a small slice of a requirement which benefits the user or customer that can be delivered in an iteration.
Well-formed user stories will meet the criteria of Bill Wake's INVEST acronym:
How do user stories relate to a quality strategy? I strongly believe designing great user stories really lays the foundation of better software and happier customers.
Understanding the Quality Blueprint
When designing a quality strategy blueprint, it is important to list all activities that will be carried out for a single user story and meets the team definition of the Done Checklist. The quality blueprint increases collaboration and communication early in the user story design, not waiting until the end. It provides faster feedback early and allows the possibility for iterations during the sprint.
Sample Activities (everyone’s list will vary)
- User Story Approval
- Testing Approach
- Testing Tools
- Risk Analysis
- Reviews and Approvals
Image Credit: Eternal Sunshine of the is Mind
Turning Things Around
Building a quality product that everyone marvels at isn’t easy. It only takes one incident to kill your product image. (For example, if Company A is accused of being aware of the security gaps in their product.) I doubt it will put Company A out of business, but it could take many years of hard work to turn things around. Company A will need to rebuild its image. Every company has quality issues that need to be addressed. The most important step is to admit them and identify them. It’s more than just a QA problem. There are many issues related to quality and most are out of QA’s control. Let me highlight a few that I have observed over several years of working in software development:
- Badly written user stories
- No team collaboration from start to finish
- Lack of domain and technology knowledge
- Unrealistic goals and schedules
- Cutting corners by ignoring processes already established (Definition of Done Checklist)
- Badly engineered software
- Lack of reviews for user stories, code, and testing strategy
There is no “I” in team. Everyone must participate in the process of building a well-defined quality strategy (expectations, goals, processes, proposed solutions). To build out the strategy, a technique called mind mapping can help. Mind mapping is one of the best ways to capture your thoughts and bring them to life in visual form. Beyond just note-taking, mind maps can help you become more creative, remember more, and solve problems more effectively. Whether you're new to mind maps or just need a refresher, a mind map is basically a diagram that connects information around a central subject.
Image Credit: Target Process
The Most Important Asset
Keeping high performers is vital to a successful, healthy, and growing organization. The most productive and happy employees take pride in their work. Enabling employees to build quality will drive morale and productivity. How can an organization keep them around for the long term?
- Give them visibility
- Have a voice any team decisions
- Give them ownership of their work
- Be clear about goals and expectations
- Reward, recognize, and appreciate
- Without a clear strategy, you will likely not have quality built into your product.
- Poor software quality is actually very difficult to maintain, and it could lead to losing your most important assets to a company with a better reputation.
- Be a company that has a reputation for building quality software.
- Focus on faster feedback and defect prevention, rather than defect detection.
Building great user stories is one step in the right direction, but ultimately, it takes solid strategy to achieve quality.
Greg Sypolt (@gregsypolt) is a senior engineer at Gannett and co-founder of Quality Element. He is a passionate automation engineer seeking to optimize software development quality, while coaching team members on how to write great automation scripts, and helping the testing community become better testers. Greg has spent most of his career working on software quality, concentrating on web browsers, APIs, and mobile. For the past five years he has focused on the creation and deployment of automated test strategies, frameworks, tools, and platforms.