Case Study
Utilities Company Implements Continuous
Deployment with help from RTTS
Background
A major utility company desired a structured approach to development/testing to rollout a major multi-year initiative in phased deployments along with the ability to have intermediate deployments in between i.e. Continuous Deployment.
Challenges
The client wanted a ground-up approach which included:
- Determine the different types of testing needed to ensure project success.
- Implementation and use of ALM tools to drive through the different phases of the SDLC, providing metrics along the way.
- Technical/environmental recommendations
- Developing an approach for having clear communication channels between different groups (listed below) vested in the success of deploying the project to Production and maintaining/enhancing it afterward.
Strategy
Adopt the use of an ALM tool to drive through the different phases of the project: development, test planning, test execution, defect resolution, and post-production monitoring, with the ability to provide metrics along the way at each phase.
- Determine the different types of testing needed; Unit, Integration, Functional, Automated Functional, Automated Performance, Data Conversion, and document each with a specific testing plan.
- Determine types of testing needed for the project and the environmental strategy to support those types of testing.
- Devise a collaboration strategy so that all teams involved can communicate in an open forum ensuring follow through on developing & delivering valuable fixes/enhancements to the business universe.
- Ensure the client is able to maintain and apply this strategy for Continuous Deployment going forward once resource ramp-down is completed after initial phased deployments are completed and the project enters maintenance/enhancement mode.
Solution
- Collaboration
- Standing meeting 2X per week where discussion of production defects/issues and future enhancements, who should be working on them, and deployment dates. Participants included the product management team, the developers and configuration team the business owners/operations teams, the technical architecture team, and the Test Lead, who drove the meetings through the agenda and ALM tools.
- Source Control
- Establish a process and migration paths using an SCM tool, which makes migrations across environments a measurable and repeatable process.
- Automation
- Develop regression tests for new builds, which test “must work” functionality as well other core business scenarios while working with an outside vendor.
- Once the solution is close to functional-feature complete, run performance tests to determine how much load the system can withstand, identify breaking points, how will it respond in the future with years amount of data.
- Environmental Strategy
- Create specific environments for Development (Unit Testing), Integration Testing, Functional Testing, and Performance Testing before code is migrated to the Production environment. Integration and Functional environments have connections to necessary external systems.
- ALM tools
- Make use of ALM tools to organize, facilitate, and provide metrics through important phases:
- Test Preparation
- Test Execution
- Defect resolution
- Post Production
- Have the ability to visualize metrics about production defects and issues
- Open, closed, priority, severity
- If an outside vendor is being used, take the above universe and slice and analyze vendor-only items.
- Establish a process for how production defects and issues are logged and pushed to the collaboration group mentioned earlier for review.
- Make use of ALM tools to organize, facilitate, and provide metrics through important phases: