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:
* We want to be able to develop in any sequence ... * Independent of order of user story delivery * Independent of internal and especially external dependencies
* Avoid too much detail; stay flexible so the team can adjust how much of the story to implement * Use non-specific language * Explain the intention, not the implementation
* Value is clear to everyone * Persona matches ‘benefits’ and ‘goals’ and will deliver the benefit * Avoid technical/role-specific language
* The team must be able to use stories for planning * Clear and concise explanation
* Large stories are harder to estimate and plan * The story should be able to be designed, coded, and tested within the iteration * Easily fits into a sprint (i.e. < 20% of velocity) * Not > 33% of velocity
* Document acceptance criteria, or the definition of done for the story * Can be automated * Avoid external testing/ long test suites
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.
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
Reviews and Approvals
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.
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.