Kendis suggests reserving time to discuss Testing and Release strategies during the PI Planning event. Testing is a foundational and crucial aspect of software development that helps create high-quality and robust software to provide a trouble-free experience to the end user. Without it, the process of developing software is incomplete. Given its paramount importance, no event is dedicated to planning or creating testing strategies in Program Increment (PI) Planning in the Scaled Agile Framework.
In agile practices, it is common to celebrate the empowerment of the teams by letting them plan their releases so that they can release whenever and whatever they want. Depending on the size of the development teams and the scope of their work, it can be possible. However, when multiple external factors are involved such as security measures, costs, vendor commitments, multiple milestones, and other factors, which often is the case with large organizations, it is important to set hard deadlines. Releases need to be planned accordingly to satisfy the needs of multiple stakeholders that are involved.
Contents
What is the Testing and Release Strategies Event?
How Testing and Release Strategy Event can be done?
How to Prepare for Testing and Release Strategies in 14 Steps?
Kendis Tips for Presenting Testing and Release Strategies
Conclusion
What is the Testing and Release Strategies Event?
The Testing and Release Strategies planning is focused on strategizing and planning the testing and release processes for the upcoming Program Increment within the PI Planning Agenda. Kendis suggests this dedicated event as this will help ensure that all testing aspects are thoroughly considered, planned, and integrated into the overall PI objectives.
One of the outputs of the PI Planning event is to allocate the capacity and effort needed for prioritized features. Capacity for testing and releases should also be considered. It should involve the participation of key stakeholders, including QA engineers, developers, product owners, and release managers to collaborate and align on the testing and release strategy.
Although there are various testing and release approaches, the most common strategies are as follows:
Testing Strategies
- Unit Testing: Testing individual components or modules for proper functionality
- Peer review: Collaboratively examining code and test cases among team members
- Code Reviews: Ensure the quality of the code with adherence to the standards defined
- Integration Testing: Test combined components to ensure they work together correctly
- End-to-End System Testing: Testing the entire workflow from start to finish to validate the system
- Functional Testing: Executing test cases to verify that the system meets the specified requirements
Release Strategies
- Feature-Based Releases: Releasing specific features or enhancements that add new functionality or improve existing features
- Time-based releases: Releasing updates at regular, predetermined intervals (e.g., monthly, quarterly)
- Continuous Delivery (CD): Continuously integrating and delivering code changes to production, ensuring that the software is always in a deployable state
- Continuous Deployment: Similar to Continuous Delivery, but with automatic deployment of every change that passes automated tests to production
How Testing and Release Strategy Event can be done?
This should be conducted by either a Test Lead or an individual who is part of the Release Management and possesses an overall view of the Release and Testing Cycles. It is advisable to provide a Timeline for Releases and provide them as Milestones for the teams to plan their work accordingly. Discussions and negotiations will need to take place with Business Owners.
This can be done in two ways. The first will involve a lot of preparation from the Testing Lead to establish the fixed milestones and the desired content during the PI Planning which can be presented to the Agile Release Train (ART). Generally, this event can be one and a half hours long, but if it exceeds the timebox, it is advisable to meet with those involved afterward and discuss it later.
The second will involve having discussions during the PI Planning event with the relevant people. All members of the Agile Release Train (ART) do not have to be present for this. The most important thing is having the correct amount of capacity allocated to ensure the releases. If a fixed date is set, the date should be communicated allowing the teams to plan their activities in order to execute the releases.
How to Prepare for Testing and Release Strategies in 14 Steps?
- Analyze the successes and challenges from the previous Program Increment’s (PI) testing efforts
- Discuss any bottlenecks or issues encountered
- Identify Key Stakeholders that include QA Engineers, Developers, Product Owners, Release Managers, and any other relevant team members
- Find out any fixed dates or milestones during the upcoming increment
- Discover the impact of releases including environments that may need to be frozen due to the content of the releases
- Plan the strategy for bug fixes
- Learn what is needed for milestones from the business and other stakeholders (functionality, enablers, and toggled functionality)
- Find out if there are any dependencies. Bear in mind the dependencies for releases could be different from the dependencies that are realized due to the content
- Ensure release requirements are well-documented
- Set clear objectives for the event, such as identifying testing strategies, planning test cases, and scheduling release dates
- Identify potential risks and plan mitigation strategies
- Plan a testing schedule by creating a timeline for different types of testing (integration, end-to-end, etc.)
- Establish clear communication and coordination channels for reporting bugs and issues
- Define roles and responsibilities for coordinating testing efforts
Kendis Tips for Presenting Testing and Release Strategies
- Provide a brief overview of the importance of testing and releases in the ongoing PI
- Present some successes and challenges of the previous PI and mention any adjustments made
- Communicate deadlines for releases and milestones
- Discuss known impacts and address possible bottlenecks
- Discuss dependencies on environments, tools, and resources. Remember release dependencies can be different from those identified for content dependencies
- Convey the lines of communication for bug fixes and prioritization methods so that the teams are aware of whom to contact if there is an issue that needs to be escalated
- Present the testing schedule and ensuring that there is no further deployment into the current testing environment
- Assign responsibilities and coordinate between Business Owners, Product Owners, Developers, Testers, Release Managers
- Create a Code Review Strategy to improve quality
- Address any approach for having Feature Branches to handle multiple branches and simplify testing and integration
- Establish clear objectives and success criteria for the release
- Ensure that the necessary resources (team members, tools, infrastructure) are available and assigned to the release tasks
- Identify potential risks and develop mitigation plans to address them
- Address any remaining questions or concerns
- Ensure all decisions and plans are documented and shared with the entire team
Conclusion
A dedicated testing and release strategy session during PI Planning will improve the entire planning session and will lead to a more realistic output for the PI. Firstly bringing more visibility and transparency into many aspects like issues that can affect the release process within the PI. These can be brought to attention early therefore aiming towards a quick resolution to maintain a consistent flow of value and providing a more realistic delivery of features. Lastly, enabling more collaboration between testing teams, release management, and development teams also assists in the work that is being conducted by the System Integration Team.
By incorporating a dedicated Testing and Release Event into the PI Planning agenda, teams can ensure that all testing activities are thoroughly planned and executed, leading to higher-quality software releases and a more efficient planning process. By preparing and implementing this session, the Agile Release Train (ART) can ensure a smoother and more successful output, minimizing delays and miscommunication for the business stakeholders.
To learn more, click here.