Política de controle de mudanças
Garantir um processo ágil, eficiente e bem controlado para a gestão de mudanças em código, infraestrutura e configurações, preservando a estabilidade dos sistemas, alinhado com metodologias ágeis (Scrum e Kanban) e boas práticas de DevOps.
Ferramentas Utilizadas
• Jira: Registro e controle das solicitações de mudança (Change Requests), planejamento de sprints e gestão do fluxo de trabalho em Kanban.
• BitBucket: Repositório Git para controle de versão de código-fonte.
• Terraform: Gestão de infraestrutura como código (IaC).
Fluxo de Controle de Mudanças
Solicitação de Mudança
-
Toda mudança deve ser registrada no Jira, vinculada a um tipo de issue adequado (ex.: Tarefa, História ou Bug).
-
A descrição da mudança deve conter:
- Objetivo e justificativa.
- Impactos previstos (tecnológicos e de negócios).
- Prioridade inicial sugerida.
- Aprovações necessárias e prazos sugeridos.
Aprovação e Priorização
- As solicitações de mudança devem ser aprovadas e priorizadas pelo Gestor de Produtos, que será responsável por avaliar o impacto no roadmap do produto, assim como em outros projetos em andamento.
- As prioridades serão definidas em reuniões de Sprint Planning (Scrum) ou continuamente no backlog do Kanban, alinhando com as demandas do negócio.
Alocação e Execução
- Após a aprovação, o Líder Técnico será responsável por alocar o profissional adequado para executar a mudança, considerando a capacidade e expertise do time.
- A mudança será movida para o quadro do Kanban, onde será visível e acompanhada por todos os stakeholders.
Desenvolvimento Ágil e Versionamento de Código
Branching Strategy (Git)
Seguir uma estratégia de branching padronizada:
- Master/Main: Código estável, pronto para produção.
- Develop: Branch principal de desenvolvimento.
- Feature Branches: Para mudanças específicas, associadas diretamente a issues no Jira.
- Hotfix Branches: Para correções críticas e urgentes.
Pull Request e Revisão
-
Toda alteração deve ser submetida como um Pull Request (PR) no BitBucket e associada à issue correspondente no Jira.
-
Revisão obrigatória por outro desenvolvedor para garantir:
- Conformidade com os padrões de qualidade de código.
- Alinhamento com as práticas de segurança e arquitetura.
Integração Contínua e Testes Automatizados
As mudanças serão integradas de forma contínua, utilizando pipelines automatizados no BitBucket para garantir que testes unitários e de integração sejam executados antes de qualquer deploy em ambientes de homologação.
Infraestrutura como Código (Terraform)
Mudanças na Infraestrutura
- Alterações em infraestrutura devem ser controladas via Terraform, com o código versionado no BitBucket.
- A criação ou modificação de infraestrutura também deverá ser acompanhada de uma solicitação no Jira, seguindo o mesmo processo de aprovação e alocação.
Validação
Todas as mudanças passam pelo ambiente de homologação antes de serem aplicadas à produção, com revisões e testes utilizando terraform plan para prever impactos.
Planejamento e Comunicação
- As mudanças priorizadas serão incluídas nas sprints (Scrum) ou no fluxo contínuo do Kanban, dependendo do modelo de trabalho utilizado no projeto específico.
- comunicação sobre a implementação da mudança deve ser transparente, com atualizações no Jira para os stakeholders a cada etapa do processo.
Revisão e Acompanhamento Pós-Implementação
Após a implementação, o Change Advisory Board (CAB) revisará a execução da mudança:
- Avaliação de desempenho e resultados.
- Identificação de possíveis problemas e ações corretivas.
- Registro de aprendizados e oportunidades de melhoria.
Rollback e Recuperação
Deve haver um plano de rollback documentado para todas as mudanças, detalhando como reverter a alteração e quais etapas de comunicação devem ser seguidas.
Gestão Ágil e Monitoramento
- O progresso de todas as mudanças será visualizado e acompanhado via quadros Kanban no Jira, com métricas de desempenho como Cycle Time e Lead Time para garantir a entrega contínua de valor.
- A política será revisada periodicamente, com base nas métricas de produtividade e incidentes reportados, para garantir melhorias contínuas no processo.