Jornada de transformação digital

DevOps e Transformação Digital

Durante meu trabalho de consultoria DevOps ouvi uma frase interessante, que “para trabalhar com DevOps você precisa ter um lado terapeuta”. Isso porque o DevOps muitas vezes está associado a um processo de transformação digital na empresa, já que envolve a modernização de práticas, ferramentas e tecnologias. Algumas das disciplinas do DevOps podem ser bem diretas quando o time já está preparado culturalmente para isso – por exemplo, utilizar nuvens públicas para hospedar suas soluções, quando a organização confia na credibilidade e segurança das grandes plataformas de nuvem (Azure, AWS, etc). Porém empresas com restrições organizacionais e culturais mais fortes podem ser um ambiente extremamente desafiador para essa jornada de transformação, e sem trabalhar o lado “humano” da transformação em paralelo ao lado técnico, o processo pode ser mais longo e frustrante do que o previsto.

Nesse artigo iremos explorar os principais desafios culturais na implantação do DevOps e as chaves para vencê-los.

A relação entre DevOps e Transformação Digital

Transformação digital é um processo de modernização em uma organização com o objetivo de aumentar a eficiência no seu método de trabalho e trazer melhores resultados na sua área de atuação. Pode afetar processos, ferramentas, tecnologias, metodologias, estrutura das equipes e até mesmo a cultura da organização.

Quando se trata de empresas que possuam desenvolvimento de software, os conceitos de DevOps podem ser aplicados para se alcançar esse objetivo dentro das disciplinas que o DevOps contempla.

No artigo O que é DevOps eu menciono que, no DevOps, costumam-se destacar as práticas de engenharia que podem aumentar a eficiência nas entregas, normalmente num escopo técnico, como implementação de Integração e Entrega Contínuas (CI/CD).

Porém implantar novos procedimentos de entrega de software em empresas cujos produtos já “nasceram na nuvem”, com estrutura de times mais horizontal e menos hierarquizada, com práticas e tecnologias modernas de desenvolvimento é relativamente simples. Agora, quando a organização possui características como processos altamente burocráticos, desenvolvimento em castata ou variantes, áreas de desenvolvimento e operações em departamentos distintos, procedimentos operacionais manuais, utilização de infraestrutura On Premises (local), entre outras, esse tipo de transformação pode ser mais desafiador do que parece.

Isso porque qualquer nova prática, ferramenta ou processo depende de pessoas. Quanto mais defasados os processos e tecnologias, maior o impacto para as pessoas envolvidas. Enquanto algumas podem encarar essa renovação de forma positiva, a maioria tende a demonstrar resistência. Para agravar a situação, a jornada de transformação digital não é uma trajetória linear – a cada quebra de paradigma, há uma perda de performance até que o time domine os novos processos e ferramentas, para então haver o ganho de performance comparado com o estado anterior. Sem que as pessoas estejam engajadas, cada baixa de performance acabará por reforçar preconceitos e desestimular a colaboração, postergando cada vez mais os resultados positivos que só serão observados com a perseverança do time.

Jornada de transformação digital
Jornada de transformação digital – Extraída do artigo “5 Common Mistakes in Agile Transformations”, citado no fim do texto

Desafios na implementação

Os principais desafios na implementação do DevOps estão relacionados com o perfil de pessoas, a estrutura organizacional e a resistência à mudanças.

Perfis de pessoas

Considerando que um dos pilares do DevOps é a aproximação entre Desenvolvimento e Operações, as barreiras começam nas pessoas em si.

Perfis de pessoas
Perfil inovador vs Perfil conservador

O desenvolvedor normalmente tem um perfil inovador, curioso, gosta de testar novas tecnologias. O operador, por sua vez, tem um perfil mais conservador, afinal, o software produzido deve ser estável, seguro, e desenvolvido com tecnologias que o time tenha condições de suportar.

Esses perfis são complementares, e uma organização fica desequilibrada quando escolhe inovação em detrimento da sustentação e segurança, ou prioriza a sustentação de forma a atrasar ou desestimular a inovação.

Estrutura organizacional

Além do perfil dos profissionais, muitas vezes a estrutura organizacional estimula as barreiras entre as áreas. Há casos em que as áreas de desenvolvimento e operações fazem parte de equipes completamente isoladas, com diretorias e até mesmo centro de custos separados.

Estrutura organizacional
Estrutura organizacional hierárquica

É comum que o time de operações atenda diversas áreas da empresa, e não um único produto. Isso implica em divergências de prioridades – as necessidades trazidas pelos desenvolvedores nem sempre são prioridades considerando a empresa como um todo. Cada demanda passa por uma fila para ser atendida, o que acaba resultando em gargalos de atendimento. Isso gera problemas até culturais – na visão do time de desenvolvimento suas necessidades não estão sendo atendidas, na visão do time de infra os desenvolvedores só conseguem enxergar seu próprio projeto.

A burocracia acaba sendo instituída na organização para aumentar a segurança das operações e resguardar as pessoas envolvidas, mas ao mesmo tempo gera lentidão nos processo de entrega de software também. A burocracia é vista como “vilã” em muitas empresas, porém só deixa de ser necessária quando há credibilidade suficiente nos processos, de preferência automatizados. De outra forma as pessoas seriam constantemente culpadas pelas falhas de entrega, e isso afeta principalmente os profissionais de infraestrutura.

Resistência à mudanças

Um dos principais empecilhos na transformação digital é a resistência à mudanças pelos mais diversos motivos: frustrações anteriores ao propor melhorias (“eu já tentei mudar isso e não deu certo”), desmotivação no ambiente de trabalho (“aqui ninguém valoriza a proatividade”), domínio nos processos e ferramentas atuais e falta de confiança de que os sucessores irão trazer algum ganho efetivo (“mas eu consigo fazer tudo isso e melhor com a ferramenta atual”), além do receio de que as automações e melhorias façam com que seu trabalho perca o valor (“será que vou perder meu emprego?”).

É importante deixar claro que toda empresa buscando implementar o DevOps enxerga que seus processos atuais precisam de reformas. Ou seja, a mudança é inevitável. Isso não significa que pessoas vão perder o emprego, mas que vão precisar se adaptar e colaborar com as mudanças. Automatizar processos não é uma tarefa a ser realizada uma vez só – os scripts precisam ser revisados e melhorados continuamente, por pessoas que entendam como o software e as plataformas utilizadas funcionam. As atividades de sustentação de software vão continuar a existir, porém serão mais estratégicas e eficientes ao invés de repetitivas e manuais.

Vencendo os desafios

Não há uma fórmula específica para vencer os desafios mencionados. Porém praticidade, comunicação, colaboração e empatia são palavras chaves para a implantação bem sucedida dos conceitos DevOps.

Pragmatismo porque independente das boas intenções e apego por melhores práticas, o objetivo continua sendo entregar software melhor e mais rápido, e o caminho mais curto para isso é sempre a melhor opção. Às vezes é preciso “escolher as batalhas” e focar em disciplinas que podem ser mais rapidamente implementadas, para que o time sinta mais confiança na transformação, e gradualmente se adapte a mudanças culturais mais profundas. Sem um senso prático e resultados concretos, os conceitos DevOps podem ser vistos como utopia, perder a credibilidade e aumentar a resistência das pessoas.

Colaboração porque a definição de processos e sua aderência depende da participação das pessoas envolvidas. Primeiro porque desconsiderar o conhecimento e experiência das pessoas ao propor melhorias é deixar de aproveitar informações relevantes sobre o que já foi feito no passado e seus resultados, o que está sendo feito no momento e como as plataformas e sistemas utilizados na empresa funcionam. Segundo porque se as pessoas não concordam com os novos processos, irão continuar a fazer o que já faziam anteriormente de qualquer forma.

Comunicação efetiva e respeitosa porque as decisões precisam ser colaborativas e transparentes. Cada decisão precisa envolver as pessoas chave das disciplinas relacionadas – por exemplo, não adianta o time técnico implementar práticas Ágeis sem que o Product Owner concorde com suas responsabilidades, ou o time de desenvolvimento tomar decisões de plataforma sem que um responsável por infraestrutura esteja envolvido. O que é decidido sem a participação das pessoas chave tende a ser barrado ou atrasado, gerando conflitos e desgaste no time como um todo.
Os novos processos e direcionamentos devem ser disponibilizados ao time de forma clara, didática e centralizada, e as pessoas diretamente impactadas por eles devem ser notificadas – é injusto cobrar as pessoas por não terem seguido processos em que não tinham conhecimento. Sempre que possível, deve-se manter o canal aberto para que outras pessoas que tenham interesse possam colaborar também, e que suas opiniões, positivas ou não, sejam ouvidas e levadas em consideração.

Empatia porque as pessoas reagem de formas particulares quando lidam com mudanças, e compreender suas razões é fundamental para que haja aderência na empresa. Decisões top-down ou técnicas de persuasão unilaterais não funcionam bem, e mesmo que funcionassem, poderiam resultar em pessoas seguindo minuciosamente processos que não eram adequados desde o princípio. Reforçando os conceitos de praticidade, colaboração e comunicação, os processos mais adequados só poderão ser identificados quando as pessoas forem ouvidas e tratadas com empatia.

Conteúdo recomendado

Para mostrar como esses conceitos podem ser postos em prática, há dois livros excepcionais que podem ajudar a desenvolver empatia, entender o comportamento humano frente à mudança e auxiliar na solução de desafios. Ambos os livros mostram como certos comportamentos normalmente vistos como “negativos” podem ser enriquecedores se forem compreendidos e direcionados.

Lidando com transformações ágeis

Jornada de transformação digital

Andy Palmer e Antony Marcano mostram no artigo 5 Common Mistakes in Agile Transformations cinco erros comuns que os times cometem ao lidar com transformação digital, entre eles, acreditar que a mudança será realizada de uma vez e que o time terá resultados imediatos. Lá são sugeridas ações e mudanças de mindset para ter uma experiência mais realista, produtiva e menos frustrante no processo de transformação.

Estratégias de comunicação e engajamento

Fearless Change
Livro Fearless Change

Fearless Change: Patterns for Introducing New Ideas , das Ph.D’s Mary Lynn Manns e Linda Rising, fornece estratégias para lidar com a resistência, testar idéias e comprovar sua credibilidade e resultados, para então expandi-las para a organização.

Por exemplo, o começo de um projeto requer o envolvimento de uma maioria inovadora, engajada e otimista, para que ele possa ser idealizado sem que as pessoas fiquem desmotivadas ou desistam cedo demais. Na sequência, pessoas mais conservadoras podem ajudar a mapear riscos e a refiná-lo para que torne-se mais factível. Por fim, ao ser implementado, pessoas mais resistentes e críticas irão questionar seu funcionamento e porão seus resultados à prova. Se essas falhas e riscos forem corrigidas à medida que aparecerem, o que não demora a acontecer porque (a) todo projeto ou idéia possui falhas e (b) os críticos farão questão de apontá-las assim que elas surgirem, o projeto poderá evoluir até trazer os resultados esperados.

Uma pessoa constantemente insatisfeita e crítica pode ser difícil de lidar, porém esse perfil é um aliado importante no refinamento de soluções – se apenas pessoas otimistas fossem envolvidas, a solução seria frágil e se mostraria ineficaz nos primeiros desafios. Além disso, é ingênuo acreditar que o projeto pode ser blindado de pessoas que duvidem de seu valor. Reconhecer isso e entender como direcionar os perfis para que eles colaborem no crescimento da solução contribui para o seu sucesso.

Desenvolvendo empatia

Comunicação não-violenta
Livro Comunicação não-violenta

Comunicação não-violenta: técnicas para aprimorar relacionamentos pessoais e profissionais, de Marshall B. Rosenberg, mostra o valor da empatia na solução de conflitos. Após lê-lo será mais fácil identificar as necessidades por trás das palavras e comportamentos, e prover soluções que atendam essas necessidades.

Imagine que um colaborador deixou de seguir determinado processo sem informar a liderança. Esse comportamento pode ser repreendido, ou o líder responsável pode buscar compreender seus motivos e tomar ações a respeito. Pode ser que a pessoa não se sinta confortável para fazer críticas por ter sido rechaçada outras vezes, ou que não acredite no funcionamento do processo em si. No primeiro caso, os gestores poderiam ser orientados a receberem feedbacks de forma menos reativa, e no segundo caso, algumas métricas e indicadores poderiam ser estabelecidos para que o time tenha mais visibilidade dos resultados do processo.

A reação das pessoas aos processos e ferramentas estabelecidos durante o processo de transformação digital é o maior indicador se haverá aderência ou não. Um processo sem aderência ou uma ferramenta subutilizada é um custo para a empresa e uma frustração para o time. Acima de tudo, é importante reconhecer que a transformação é feita pelas pessoas, e profissionais competentes possuem suas particularidades, podendo ser introvertidos ou extrovertidos, comunicando verbalmente suas opiniões ou não. Observar e levar em consideração esses comportamentos permite refinar periodicamente os modelos para que sejam mais eficazes, além de construir um ambiente de trabalho melhor e estimular a colaboração do time.

DevOps e Transformação Digital

No vídeo abaixo eu falo mais sobre o tema apresentado aqui.

Considerações finais

Reforçando alguns argumentos do artigo anterior, qualquer empresa que produza software, independente da estrutura organizacional, pode implementar algumas das disciplinas do DevOps dentro dos limites impostos pela organização e tirar proveito disso.

Porém quanto mais defasada tecnologicamente a empresa está, maior a importância de trabalhar o lado humano do transformação em paralelo ao técnico, dado que, sem isso, será um processo moroso, com procedimentos burlados e ferramentas subutilizadas, sem que as entregas rápidas e frequentes tragam o real valor para a organização: o retorno rápido das soluções fornecidas e o crescimento da organização.

Para vencer barreiras culturais é necessário reconhecer as nuances do comportamento humano diante às mudanças com empatia, se comunicar de forma clara e respeitosa, valorizar e estimular a colaboração, sem abrir mão da praticidade e do foco em resultados.

Publicado por

Grazi Bonizi

Coordeno a trilha de Arquitetura .Net no The Developers Conference, compartilho código no GitHub, escrevo no Medium e no Blog da Lambda3, e participo de Meetups e PodCasts normalmente sobre DevOps, Azure, .Net, Docker/Kubernetes e DDD

Deixe uma resposta