8 desafios diários na adoção do DevOps e como resolvê-los (desafios) - PARTE 1

DevOps não é mais uma palavra nova no setor de TI; é 2020 e quase todas as organizações desejam ou estão tentando evoluir sua cultura e métodos para essas formas de trabalho. No entanto, adotar essa mudança revolucionária não é fácil e numerosos desafios são enfrentados pelos líderes e pelos 'praticantes'; O DevOps é um movimento de baixo para cima e de cima para baixo. Aqui estão alguns desafios comuns que observei em meu trabalho de campo:

  1. Cultura Disfuncional

Culturas que comandam, controlam e burocratizam fortemente podem ser lugares muito desmotivadores para se trabalhar. Onde as pessoas são punidas por levantar problemas ou o conhecimento e a informação estiverem ocultos, impedirá que as pessoas compartilhem e colaborem. Onde o fracasso é visto como algo a ser evitado, as pessoas tentam encobrir os erros, em vez de aprender com eles, e têm medo de tentar coisas novas.

A cultura é muito difícil de definir e parece muito difícil de mudar. São os valores e comportamentos das pessoas em uma organização e precisam ser abordados nesse nível humano; requer que falemos de emoções e sentimentos, não apenas de bits e bytes.

2. Resistência à Mudança

Muitas pessoas não gostam de mudar sua maneira de trabalhar; eles se acostumaram com seu método de fazer as coisas e freqüentemente não estão dispostos a ajustar sua rotina ou processos habituais. Muitas pessoas preferem trabalhar em silos e podem não querer se comunicar com outras pessoas e, portanto, os líderes de DevOps frequentemente enfrentam resistência no processo de transformação. Alguns neurocientistas, como Britt Andreatta, acreditam que os humanos estão fundamentalmente conectados para resistir à mudança por razões evolutivas.

Aqui está um exemplo de onde um agente de mudança ou uma organização pode enfrentar resistência: um testador que tradicionalmente realiza testes manuais pode ser solicitado a automatizar o cenário ou as etapas do teste em um pipeline de integração contínuo. Eles podem resistir a mudar seu estilo de trabalho porque precisam aprender como automatizar seus cenários de teste manual anteriores e sentir que está além da capacidade deles. Outro exemplo é um gerente de controle de qualidade que está acostumado a ter uma grande equipe de testadores para supervisionar: eles podem ver que seus testadores estão sendo distribuídos por várias equipes como parte de um redesenho organizacional de esquadrões multifuncionais, que podem se sentir ameaçar seus status de líder e gerente.

3. Falta de clareza de visão

Muitas organizações desejam os aprimoramentos que o DevOps promete, mas muitas vezes tempo insuficiente foi investido no planejamento adequado de como o DevOps será adotado. Os líderes podem não ter explorado o que o DevOps pode exigir em termos de redesenho organizacional ou podem ser resistentes a isso. As organizações frequentemente deixam os líderes e advogados do DevOps planejarem sozinhos sem o apoio da liderança para nutrir e praticar a verdadeira cultura do DevOps.

As transformações do DevOps sem planos e estratégias adequados dificultam muito o cumprimento de seus objetivos. A falta de visão torna desafiador para os líderes do DevOps criar um plano claro quando se trata de decidir sobre estimativas, roteiros e entregas. E também torna muito difícil se comunicar e compartilhar a visão em toda a organização quando falta clareza.

Às vezes, os agentes de mudança do DevOps têm um plano e uma estratégia adequados para a adoção do DevOps que eles propuseram ao nosso gerenciamento ou C-suite, mas se esses líderes não estiverem apoiando e evangelizando abertamente o plano de execução para a implementação do DevOps, eles podem impedir os processos de adoção do DevOps.

4. As equipes não colaboram

O principal objetivo do DevOps é incentivar e permitir que Dev, Ops e outras equipes trabalhem juntas, quebrando barreiras entre silos. As equipes terão seus próprios objetivos; a equipe de desenvolvimento está focada na mudança e a equipe de operações de TI na estabilidade. Garantir que as equipes compartilhem metas é um desafio fundamental para os líderes na adoção do DevOps.

Além disso, quando uma organização está geograficamente dispersa, a colaboração entre equipes pode ser ainda mais desafiadora. Embora DevOps e modelos ágeis incentivem a co-localização, isso freqüentemente não é prático ou mesmo possível. Além disso, muitas organizações terceirizam trabalhos como operações de teste ou de TI, potencialmente para regiões geográficas significativamente diferentes, exacerbando o desafio devido a complicações de fuso horário e idioma.

5. Ambientes não são padronizados

Lidar com vários aplicativos ou versões de serviço no ambiente do DevOps pode resultar em versões mais lentas da produção e aumentar a incidência de bugs e problemas em nossos produtos. Não ter ambientes padrão ou ambientes de teste semelhantes à produção frequentemente resulta em incidentes, pois a inconsistência leva à imprevisibilidade. Ter ambientes de aplicativos insuficientes pode causar dores adicionais e atrasos na liberação de novo valor para os clientes, pois as equipes podem estar aguardando o acesso a ambientes de teste compartilhados, por exemplo.

6. Os conjuntos de ferramentas estão em disputa

As equipes de desenvolvimento e operação de TI freqüentemente usam conjuntos de ferramentas diferentes, mas geralmente estão tentando fazer a mesma coisa ou gerenciar o mesmo trabalho. O desafio é garantir que a ferramenta certa esteja sendo implementada e alinhada com os objetivos de todas as equipes e os objetivos da empresa.

A seleção de ferramentas é uma área controversa, pois as pessoas têm preferências (geralmente emocionais). Depois que uma ferramenta é escolhida, as pessoas aprendem a usá-la e ela contém quantidades significativas de dados ou fluxos de trabalho personalizados, por isso é difícil mudar uma ferramenta - mesmo quando é identificado que existe uma ferramenta diferente que agora se adapta melhor às metas das equipes e da empresa.

7. O gerenciamento de lançamento causa atrasos

Tradicionalmente, as organizações lançam grandes lotes de recursos usando uma abordagem orientada a projetos. Esses lançamentos são frequentemente coordenados por meio de uma equipe centralizada de lançamentos, usando um calendário de lançamentos onde as equipes reservam espaços (geralmente exigindo trabalho nos finais de semana). Essas liberações geralmente são feitas manualmente, ou com vários scripts, apenas o gerente de release entende, pois são elas que as construíram. Tudo isso significa que as liberações ocorrem com pouca frequência e correm um alto risco de ter problemas que precisam ser corrigidos. As equipes também costumam se concentrar mais em resolver os problemas do que aprender por que o problema aconteceu e garantir que o aprendizado seja incorporado de volta à organização. Assim como as equipes de projeto são frequentemente dissolvidas após uma data de ativação e nenhuma revisão pós-implementação inspeciona se o esforço resultou nos resultados pretendidos.

8. O teste manual é oneroso e consome tempo

Testar manualmente consome muito tempo e é frequentemente realizado por equipes separadas em fases separadas, criando atrasos no fluxo de valor para o cliente. Além disso, é impossível realizar uma verdadeira integração contínua sem automatizar, no mínimo, o teste de unidade - idealmente, os testes de integração e aceitação do usuário também serão automatizados. A automação de testes pode parecer uma tarefa enorme e esmagadora, principalmente quando há poucos recursos capazes de fazer esse trabalho em uma organização. As pessoas freqüentemente percebem que o teste é caro quando exige uma grande quantidade de trabalho manual e tentam restringir o investimento - o que leva a baixa qualidade e tempo de inatividade mais tarde na linha.

Conclusão

A adoção do DevOps é uma jornada que leva um tempo significativo. Exige que as organizações adotem o aprendizado dinâmico e contínuo. A conscientização desses oito desafios-chave em um estágio muito inicial ajudará a antecipar problemas e a priorizar esforços. Na parte 2 desta série de blogs. Vou explorar como superar esses desafios e você pode ler clicando aqui.