Sete erros mais comuns ao migrar para CI/CD

Sete erros mais comuns ao migrar para CI/CD
Se sua empresa está apenas introduzindo ferramentas DevOps ou CI/CD, pode ser útil se familiarizar com os erros mais comuns para não repeti-los e não pisar no rake de outra pessoa. 

Equipe Soluções em nuvem Mail.ru traduziu o artigo Evite essas armadilhas comuns ao fazer a transição para CI/CD, de Jasmine Chokshi com adições.

Despreparo para mudar cultura e processos

Se você olhar para o diagrama cíclico DevOps, fica claro que nas práticas de DevOps o teste é uma atividade contínua, uma parte fundamental de cada implantação.

Sete erros mais comuns ao migrar para CI/CD
Gráfico de ciclo infinito DevOps

Os testes e a garantia de qualidade durante o desenvolvimento e a entrega são partes essenciais de tudo o que os desenvolvedores fazem. Isso requer uma mudança de mentalidade para incorporar testes em todas as tarefas.

Os testes passam a fazer parte do trabalho diário de cada membro da equipe. A transição para testes constantes não é fácil, você precisa estar preparado para isso.

Falta de feedback

A eficácia do DevOps depende de feedback constante. A melhoria contínua é impossível se não houver espaço para colaboração e comunicação.

As empresas que não organizam reuniões retrospectivas têm dificuldade em implementar uma cultura de feedback contínuo em CI/CD. Reuniões retrospectivas são realizadas ao final de cada iteração, durante as quais os membros da equipe discutem o que deu certo e o que deu errado. As reuniões retrospectivas são a base do Scrum/Agile, mas também são necessárias para o DevOps. 

Isso ocorre porque as reuniões retrospectivas incutem o hábito de trocar feedbacks e opiniões. Um dos pontos mais importantes no início é organizar retro reuniões recorrentes para que se tornem compreensíveis e familiares para toda a equipe.

Quando se trata de qualidade de software, todos os membros da equipe são responsáveis ​​por mantê-lo. Por exemplo, os desenvolvedores podem escrever testes unitários e também escrever código tendo em mente a testabilidade, ajudando a reduzir o risco desde o início.

Uma maneira simples de refletir a mudança no pensamento sobre testes é chamar os testadores não de controle de qualidade, mas de testador de software ou engenheiro de qualidade. Esta mudança pode parecer demasiado simples ou até estúpida. Mas chamar alguém de “pessoa de garantia de qualidade de software” dá uma ideia errada sobre quem é responsável pela qualidade do produto. Nas práticas Agile, CI/CD e DevOps, todos são responsáveis ​​pela qualidade do software.

Outro ponto importante é entender o que significa qualidade para toda a equipe e cada um de seus membros, para a organização e para os stakeholders.

Mal-entendido sobre a conclusão do estágio

Se a qualidade é um processo contínuo e geral, é necessário um entendimento comum da conclusão da etapa. Como saber quando uma etapa acabou? O que acontece quando uma etapa é marcada como concluída em um quadro Trello ou outro quadro Kanban?

A Definição de Pronto (DoD) é uma ferramenta poderosa no contexto de CD DevOps/CI. Ajuda a compreender melhor os padrões de qualidade do que e como a equipe constrói.

A equipe de desenvolvimento deve decidir o que significa “Concluído”. Eles precisam sentar e fazer uma lista de características que devem ser atendidas em cada etapa para que ela seja considerada completa.

O DoD torna o processo mais transparente e facilita a implementação de CI/CD se for compreendido por todos os membros da equipe e acordado mutuamente.

Falta de metas realistas e claramente definidas

Este é um dos conselhos mais citados, mas vale a pena repetir. Para ter sucesso em qualquer empreendimento importante, incluindo CI/CD ou DevOps, você precisa definir metas realistas e medir o desempenho em relação a elas. O que você está tentando alcançar com CI/CD? Isso permite lançamentos mais rápidos e com melhor qualidade?

Quaisquer metas definidas devem não apenas ser transparentes e realistas, mas também consistentes com as atividades atuais da empresa. Por exemplo, com que frequência seus clientes precisam de novos patches ou versões? Não há necessidade de sobrecarregar processos e liberar mais rapidamente se não houver benefício adicional para os usuários.

Além disso, nem sempre é necessário implementar CD e CI. Por exemplo, empresas altamente regulamentadas, como bancos e clínicas médicas, só podem trabalhar com IC.

CI serve como um bom ponto de partida para qualquer empresa que implemente DevOps. Quando é implementado, as abordagens das empresas em relação à entrega de software mudam significativamente. Uma vez dominado o CI, você pode pensar em melhorar todo o processo, aumentar a velocidade de implementação e outras mudanças.

Para muitas organizações, a CI por si só é suficiente e a CD só deve ser implementada se agregar valor.

Falta de painéis e métricas apropriadas

Depois de definir suas metas, a equipe de desenvolvimento pode criar um painel para medir KPIs. Antes do seu desenvolvimento, vale avaliar os parâmetros que serão monitorados.

Diferentes relatórios e aplicativos são úteis para diferentes membros da equipe. O Scrum Master está mais interessado em status e alcance. Embora a alta administração possa estar interessada na taxa de esgotamento dos especialistas.

Algumas equipes também utilizam dashboards com indicadores vermelhos, amarelos e verdes para avaliar o status do CI/CD e entender se estão fazendo tudo certo ou se há algum erro. Vermelho significa que você precisa prestar atenção ao que está acontecendo.

No entanto, se os dashboards não forem padronizados, podem ser enganosos. Analise quais dados todos precisam e crie uma descrição padronizada do que eles significam. Descubra o que faz mais sentido para as partes interessadas: gráficos, texto ou números.

Sem testes manuais

A automação de testes estabelece a base para um bom pipeline de CI/CD. Mas o teste automatizado em todos os estágios não significa que você não deva realizar testes manuais. 

Para construir um pipeline de CI/CD eficaz, você também precisa de testes manuais. Sempre haverá alguns aspectos dos testes que requerem análise humana.

Vale a pena considerar a integração de esforços de testes manuais em seu pipeline. Depois que o teste manual de alguns casos de teste for concluído, você poderá passar para a fase de implantação.

Não tente melhorar os testes

Um pipeline de CI/CD eficaz requer acesso às ferramentas certas, seja gerenciamento de testes ou integração e monitoramento contínuo.

A criação de uma cultura forte e orientada para a qualidade visa implementação de testes, monitorando as interações com os clientes pós-implantação e acompanhando melhorias. 

Aqui estão algumas dicas práticas que você pode implementar facilmente:

  1. Certifique-se de que seus testes sejam fáceis de escrever e flexíveis o suficiente para não quebrarem ao refatorar o código.
  2. As equipes de desenvolvimento devem ser incluídas no processo de teste – veja uma lista de problemas e solicitações de usuários que são importantes para testar durante os pipelines de CI.
  3. Você pode não ter uma cobertura completa de testes, mas sempre certifique-se de que os fluxos importantes para a experiência do usuário e a experiência do cliente sejam testados.

Por último, mas não menos importante, ponto importante

A transição para CI/CD geralmente é conduzida de baixo para cima, mas, em última análise, é uma transformação que exige adesão da liderança, tempo e recursos da empresa. Afinal, CI/CD é um conjunto de competências, processos, ferramentas e reestruturação cultural; tais mudanças só podem ser implementadas de forma sistemática.

O que mais ler sobre o assunto:

  1. Como a dívida técnica está matando seus projetos.
  2. Como melhorar o DevOps.
  3. Nove principais tendências de DevOps para 2020.

Fonte: habr.com

Adicionar um comentário