Multi-Team Focus on Quality: Pay For It Now or Pay 10X Later
By Team Lean Agile Intelligence
Pay For It Now or Pay 10X Later
Recognizing that continuous attention to technical excellence and good design is crucial for enhancing agility, the Agile Manifesto underscores the significance of quality as a foundational element for achieving business outcomes. Organizations that prioritize quality not only ensure better customer satisfaction but also enhance productivity by reducing rework, technical debt, and production issues, making it a vital aspect of long-term success. By fostering a culture of quality across multiple teams, you can significantly improve the overall efficiency and effectiveness of your Agile practices, amplifying the benefits of Multi-Team Focus on Quality.
In this post, we will delve into the best practices of Multi-Team Focus on Quality, exploring the foundational techniques at different stages of your learning journey and providing practical strategies to implement in your team. It's important to note, however, that Multi-Team Focus on Quality is just one part of the bigger picture. To gain a holistic view of your organization's current process status and identify areas for improvement, we recommend taking advantage of our free Agile assessment for Multi-Team Agility, which provides valuable insights to optimize your Agile practices for sustained success.
Multi-Team Focus on Quality and The Learning Journey
At Lean Agile Intelligence, we emphasize the importance of assessing the holistic commitment to quality in multi-team efforts and incorporating it at every step of the process. We call this approach the Multi-Team Effort Focus on Quality. Our learning journey comprises four stages - Developing, Emerging, Adapting, and Optimizing. In this post, we will delve into each of these stages, providing practical insights and strategies to enhance your skills in this area.
Source - Forget about agile: Keep the focus on quality
Developing
A Multi-Team Effort "developing" an understanding of the value of the Focus on Quality practice and adopting the foundational techniques should focus on the following improvements:
-
The What: The Multi-Team Effort has dedicated QA-skilled people (i.e., testers) assigned to teams
-
The How: Ensure that each team in the multi-team effort has dedicated QA-skilled people (testers) allocated to them. This can be achieved by aligning the team composition to include QA-skilled individuals as core team members, with clearly defined roles and responsibilities related to quality assurance.
-
-
The What: All contributors to the Multi-Team Effort have a holistic view of quality and feel accountable for it
-
The How: To ensure that everyone in a Multi-Team Effort feels accountable for the quality of the product, follow these strategies below.
-
Involve everyone in the process: All team members, including developers, stakeholders, and others, should be involved in the quality assurance process. This includes defining quality metrics, testing, reviewing code, and providing feedback on the product. Involving everyone in the process, it ensures that everyone feels accountable for the quality of the product.
-
Encourage communication and collaboration: Open communication and collaboration among team members are essential to ensure everyone is on the same page and working towards the same objectives. Encouraging open communication and collaboration, it creates a sense of shared responsibility for quality.
-
Provide training and resources: Training and resources to all team members can help ensure everyone is equipped with the skills and knowledge necessary to maintain quality standards. This includes training on testing tools, quality assurance methodologies, and best practices for software development.
-
Celebrate successes and learn from failures: Celebrating successes and learning from failures as a team can help foster a sense of shared responsibility for the quality of the product. Recognizing successes and learning from failures together, it creates a sense of accountability for quality as a team.
-
-
Emerging
A Multi-Team Effort “emerging” beyond the foundational techniques of the Focus on Quality practice and embracing it as they become more proficient should focus on the following improvements:
-
The What: QA-skilled people (i.e., testers) contribute to Multi-Level Effort backlog items (i.e., Epics, Features)
-
The How: Include testers in backlog refinement sessions where they can actively participate in discussions about upcoming Epics or Features. Testers can provide valuable input from a quality assurance perspective, identify potential risks or challenges, and help define acceptance criteria based on their expertise in testing and quality. Also, establishing a Definition of Ready (DOR) for backlog items that include specific criteria related to quality and testing. This can ensure that QA-skilled team members review backlog items before they are considered ready for development and that relevant testing requirements are clearly defined upfront.
-
-
The What: The Multi-Team Effort has shared quality standards beyond the Definition of Done, such as checklists, templates, and test case repositories
-
The How: Develop templates and standards for documentation, coding, and testing. These can include coding conventions, documentation templates, and standard test case formats. Having these templates and standards in place ensures that teams are aligned in their approach to quality and can streamline their efforts across different backlog items. The Multi-Team Effort should also establish a central repository for storing and sharing test cases, test data, and test environments. This can help teams to leverage existing test cases and avoid duplicating efforts while ensuring that all teams are following the same test standards and practices.
-
-
The What: The Multi-Team Effort considers non-functional requirements from the very beginning of the effort
-
The How: During the initial stages of the multi-team effort, ensure that non-functional requirements, such as performance, security, scalability, and usability, are explicitly captured and documented. This can be done through workshops, brainstorming sessions, or by involving relevant stakeholders, including business representatives, architects, and subject matter experts, to identify and prioritize non-functional requirements from the very beginning. The Multi-Team Effort should also consider including non-functional requirements as part of the Definition of Done (DoD) for backlog items, such as Epics, Features, and User Stories. This means that non-functional requirements are considered as criteria for acceptance and completion of backlog items, and teams need to ensure that these requirements are met before delivering the work.
-
* * * * * *
"Testers can provide valuable input from a quality assurance perspective, identify potential risks or challenges, and help define acceptance criteria based on their expertise in testing and quality."
* * * * * *
Adapting
A Multi-Team Effort “adapting” the Focus on Quality practice to extract the full benefit should focus on the following improvements:
- The What: Refactoring technical debt is required for widely-used/high-volume products when making changes to an outdated piece of code
- The How: One effective strategy to improve the design of existing code is through refactoring. When dealing with outdated code or code with limited automated test coverage, it's recommended to refactor and write unit tests and other necessary tests to align with current code standards. The book "Refactoring" by Martin Fowler provides valuable insights on the process of refactoring and offers detailed explanations of various behavior-preserving transformations. It starts with a simple example that illustrates the entire process and includes introductory chapters that discuss broader aspects of refactoring, such as identifying "code smells" and the role of testing.
- The How: One effective strategy to improve the design of existing code is through refactoring. When dealing with outdated code or code with limited automated test coverage, it's recommended to refactor and write unit tests and other necessary tests to align with current code standards. The book "Refactoring" by Martin Fowler provides valuable insights on the process of refactoring and offers detailed explanations of various behavior-preserving transformations. It starts with a simple example that illustrates the entire process and includes introductory chapters that discuss broader aspects of refactoring, such as identifying "code smells" and the role of testing.
- The What: The Multi-Team Effort has a pyramid-based test strategy that includes unit tests, integration tests, acceptance tests, and UI tests
-
The How: The Multi-Team Effort follows a pyramid-based test strategy that encompasses various levels of testing, including unit tests, integration tests, acceptance tests, and UI tests. This approach, commonly known as the "Agile Testing Pyramid," provides a metaphorical framework for grouping tests based on their granularity. To implement this strategy, teams can start by assessing their current testing practices and identifying areas for improvement. For instance, if the unit test coverage is low, teams can set criteria in their Definition of Done (DOD) to ensure that the new code adheres to a higher code coverage percentage in the future.
-
Source - Built-In Quality
Optimizing
A Multi-Team Effort “optimizing” the knowledge sharing of the Focus on Quality practice learnings across the enterprise should focus on the following improvements:
-
The What: Team contributing to the Multi-Team Effort are actively practicing (ATDD) and/or Behavioral Driven Development (BDD)
-
The How: The Multi-Team Effort has embraced and integrated Acceptance Test Driven Development (ATDD) and Behavioral Driven Development (BDD) as part of its culture and working agreements, moving beyond experimentation.
-
ATDD, a variant of Test Driven Development (TDD), emphasizes writing higher-level tests and using TDD to ensure their successful implementation. BDD, a modern agile practice, extends ATDD by involving testers in writing product backlog items, fostering collaboration across roles.
-
BDD serves as a bridge between business and technical teams by encouraging collaboration, working in rapid iterations, and producing automated system documentation to ensure behavior alignment. By using real-world examples to illustrate system behavior, teams collaboratively guide the development process from concept to implementation, promoting continuous collaboration. (Source Cucumber.io)
-
-
* * * * * *
"By using real-world examples to illustrate system behavior, teams collaboratively guide the development process from concept to implementation, promoting continuous collaboration."
* * * * * *
Conclusion
In conclusion, the ownership of quality in Agile is a shared responsibility that involves the entire multi-team effort. As the teams progress from developing, to emerging, to adapting, and finally optimizing their understanding and implementation of the Focus on Quality practice, they can achieve significant improvements. These improvements include having dedicated QA-skilled people assigned to teams, establishing shared quality objectives and creating a collective sense of accountability for quality, involving testers in backlog refinement sessions, developing templates and standards for documentation and testing, considering non-functional requirements from the beginning, refactoring technical debt, implementing a pyramid-based test strategy, and optimizing knowledge sharing. By actively adopting these improvements, the multi-team effort can ensure a strong focus on quality throughout the Agile development process, leading to better software quality, customer satisfaction, and business outcomes. Take a free assessment for Multi-Team Agility at Lean Agile Intelligence to discover your multi-team effort's current process status in order to select the right strategies to drive outcomes.