
Se a sua empresa está apenas implementando DevOps ou ferramentas de CI/CD, pode ser útil conhecer os erros mais comuns para não repeti-los e não pisar em armadilhas alheias.
Time traduzido o artigo .
Falta de prontidão para mudar a cultura e os processos
Se olharmos para o diagrama de ciclo , é visível que nas práticas de DevOps o teste é um trabalho contínuo, parte fundamental de cada implantação individual.

Diagrama de Ciclo Infinito de DevOps
Os testes e a garantia de qualidade no processo de desenvolvimento e entrega são partes obrigatórias de tudo o que os desenvolvedores fazem. Isso requer uma mudança de mentalidade para incluir testes em cada tarefa.
Os testes tornam-se parte do trabalho cotidiano de cada membro da equipe. A transição para testes contínuos não é fácil, é preciso 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 dificuldades em implementar uma cultura de feedback contínuo no CI/CD. Reuniões retrospectivas são realizadas no final de cada iteração, onde os participantes do grupo discutem o que funcionou bem e o que não funcionou. As reuniões retrospectivas são fundamentais para Scrum/Agile, mas também são necessárias para DevOps.
Isso se deve ao fato de que as reuniões retrospectivas instilam o hábito de trocar feedback e opiniões. Um dos pontos mais importantes no início é organizar reuniões retro repetidas, para que elas se tornem claras e habituais para toda a equipe.
Quando se trata de qualidade de software, todos os membros da equipe são responsáveis por mantê-la. Por exemplo, os desenvolvedores podem escrever testes de unidade, assim como escrever código levando em consideração a testabilidade, ajudando a reduzir os riscos desde o início.
Uma das maneiras simples de refletir a mudança de percepção sobre testes é chamar os testadores não de QA, mas de testadores de software ou engenheiros de qualidade. Essa mudança pode parecer muito simples ou até mesmo tola. Mas se alguém é chamado de 'especialista em garantia de qualidade de software', isso dá uma ideia errada sobre quem é responsável pela qualidade do produto. Nas práticas Agile, CI/CD e DevOps, todos têm responsabilidade pela qualidade do software.
Outro ponto importante é entender o que significa qualidade para toda a equipe e para cada membro, organização e partes interessadas.
Compreensão errada da conclusão da etapa
Se qualidade é um processo contínuo e compartilhado, deve haver um entendimento comum sobre a conclusão da etapa. Como saber se a etapa está finalizada? O que acontece quando a etapa é marcada como concluída em um quadro Trello ou em outro quadro Kanban?
A definição de 'pronto' (DoD) é uma ferramenta poderosa no contexto de CD DevOps/CI. Ajuda a entender melhor os padrões de qualidade do que e como a equipe constrói.
A equipe de desenvolvedores deve decidir o que significa 'Pronto'. Eles precisam se sentar e elaborar uma lista de características que devem ser atendidas em cada etapa para que possam ser consideradas concluídas.
O DoD torna o processo mais transparente e facilita a implementação do CI/CD, se for claro para todos os membros da equipe e mutuamente acordado.
Ausência de metas realistas e claramente definidas
Este é um dos conselhos mais frequentemente citados, mas vale a pena repetir. Para o sucesso de qualquer iniciativa séria, incluindo a implementação de CI/CD ou DevOps, é necessário estabelecer metas reais e medir o desempenho em relação a elas. O que você está tentando alcançar com o CI/CD? Isso permite lançar versões mais rapidamente com melhor qualidade?
Quaisquer metas estabelecidas devem ser não apenas transparentes e realistas, mas também compatíveis 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 os processos e lançar versões mais rapidamente se isso não trouxer benefícios adicionais para os usuários.
Além disso, você nem sempre precisa implementar tanto CD quanto CI. Por exemplo, empresas com alto grau de regulamentação, como bancos e clínicas médicas, podem operar apenas com CI.
O CI serve como um bom ponto de partida para qualquer empresa que esteja implementando DevOps. Sua adoção muda significativamente as abordagens para entrega de software. Depois que o CI é dominado, é possível considerar melhorias em todo o processo, aumentando a velocidade de lançamento e outras alterações.
Para muitas organizações, um único CI é suficiente, e o CD deve ser implementado apenas se trouxer benefícios adicionais.
Falta de painéis de monitoramento e métricas apropriadas
Assim que você definir os objetivos, a equipe de desenvolvimento pode criar um painel para medir os KPIs. Antes de sua criação, é importante avaliar quais parâmetros serão monitorados.
Relatórios e aplicativos variados são úteis para diferentes membros da equipe. Os Scrum Masters estão mais interessados no status e na cobertura, enquanto a alta direção pode se preocupar com a velocidade de burnout dos especialistas.
Algumas equipes também usam dashboards com indicadores vermelhos, amarelos e verdes para avaliar o status do CI/CD, a fim de entender se estão fazendo tudo corretamente ou se houve algum erro. O vermelho indica que é necessário prestar atenção ao que está acontecendo.
No entanto, se os painéis não forem padronizados, eles podem causar confusão. Analise quais dados todos precisam e, em seguida, 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.
Falta de testes manuais
A automação de testes lança as bases para um bom pipeline de CI/CD. Mas testes automatizados em todas as etapas não significa que você não deve realizar testes manuais.
Para construir um pipeline de CI/CD eficaz, testes manuais também são necessários. Sempre haverá alguns aspectos do teste que requerem análise humana.
Vale a pena considerar a integração dos esforços de testes manuais no pipeline. Após a conclusão de alguns casos de teste manuais, você pode avançar para a fase de implantação.
Não tentar melhorar os testes
Um pipeline CI/CD eficaz exige acesso às ferramentas certas, seja para gerenciamento de testes ou integração e monitoramento contínuo.
Criar uma cultura forte, focada na qualidade, é voltado para , monitoramento do engajamento do cliente após a implantação e acompanhamento das melhorias.
Aqui estão algumas dicas práticas que você pode colocar em prática facilmente:
- Certifique-se de que os testes sejam fáceis de escrever e suficientemente flexíveis para não falharem durante a refatoração do código.
- As equipes de desenvolvimento devem ser integradas ao processo de testes — visualizando a lista de problemas e solicitações de usuários que são importantes para a verificação durante os pipelines de CI.
- Você pode não ter uma cobertura total de testes, mas deve sempre garantir que os fluxos críticos para a experiência do usuário e o engajamento do cliente sejam testados.
Por último, mas não menos importante,
A transição para CI/CD geralmente é iniciada de baixo para cima, mas, no final, é uma transformação que requer a participação da liderança, investimento de tempo e recursos da empresa. Afinal, CI/CD é um conjunto de habilidades, processos, ferramentas e uma reestruturação cultural; implementar tais mudanças deve ser feito de forma sistêmica.
O que mais ler sobre o assunto:
- .
- .
- .
Fonte: habr.com
