Change Control Policy
Ensure an agile, efficient and well-controlled process for managing changes to code, infrastructure and configurations, preserving systems stability, aligned with agile methodologies (Scrum and Kanban) and good DevOps practices.
Tools Used
• Jira: Recording and controlling change requests, sprint planning and workflow management in Kanban.
• BitBucket: Git repository for source code version control.
• Terraform: Infrastructure management as code (IaC).
Change Control Flow
Change Request
-
Every change must be registered in Jira, linked to a suitable issue type (e.g.: Task, Story or Bug).
-
The description of the change must contain:
- Objective and justification.
- Expected impacts (technological and business).
- Suggested initial priority.
- Necessary approvals and suggested deadlines.
Approval and Prioritization
- Change requests must be approved and prioritized by the Product Manager, who will be responsible for evaluating the impact on the product roadmap, as well as other ongoing projects.
- Priorities will be defined in Sprint Planning (Scrum) meetings or continuously in the Kanban backlog, aligning with business demands.
Allocation and Execution
- After approval, the Technical Leader will be responsible for allocating the appropriate professional to execute the change, considering the team’s capacity and expertise.
- The change will be moved to the Kanban board, where it will be visible and monitored by all stakeholders.
Agile Development and Code Versioning
Branching Strategy (Git)
Follow a standardized branching strategy:
- Master/Main: Stable code, ready for production.
- Develop: Main development branch.
- Feature Branches: For specific changes, directly associated with issues in Jira.
- Hotfix Branches: For critical and urgent fixes.
Pull Request and Review
-
Every change must be submitted as a Pull Request (PR) in BitBucket and associated with the corresponding issue in Jira.
-
Mandatory review by another developer to ensure:
- Compliance with code quality standards.
- Alignment with security and architectural practices.
Continuous Integration and Automated Testing
The changes will be integrated continuously, using automated pipelines in BitBucket to ensure that unit and integration tests are performed before any deployment in approval environments.
Infrastructure as Code (Terraform)
Infrastructure Changes
- Changes to infrastructure must be controlled via Terraform, with the code versioned in BitBucket.
- The creation or modification of infrastructure must also be accompanied by a request in Jira, following the same approval and allocation process.
Validation
All changes go through the approval environment before being applied to production, with reviews and tests using terraform plan to predict impacts.
Planning and Communication
- Prioritized changes will be included in sprints (Scrum) or in the Kanban continuous flow, depending on the work model used in the specific project.
- communication about the implementation of the change must be transparent, with updates in Jira for stakeholders at each stage of the process.
Post-Implementation Review and Monitoring
After implementation, the Change Advisory Board (CAB) will review the execution of the change:
- Performance and results assessment.
- Identification of possible problems and corrective actions.
- Record of learning and opportunities for improvement.
Rollback and Recovery
There must be a documented rollback plan for all changes, detailing how to roll back the change and what communication steps should be followed.
Agile Management and Monitoring
- Progress of all changes will be visualized and tracked via Kanban boards in Jira, with performance metrics such as Cycle Time and Lead Time to ensure continuous delivery of value.
- The policy will be reviewed periodically, based on productivity metrics and reported incidents, to ensure continuous improvements in the process.