Como aprimorar a alta performance em tecnologia?

Ter alta performance em tecnologia é algo almejado por todas as empresas que possuem produtos digitais. Além de entregar uma experiência de uso descomplicada para os usuários, empresas que mandam bem em tecnologia conseguem atualizar seu software a todo momento para acompanhar as voláteis mudanças do mercado e as exigências dos consumidores. Portanto, se não estiverem preparadas para corrigir defeitos que possam surgir dessas (muitas) atualizações, essas empresas correm riscos seríssimos.

A capacidade de responder rapidamente ao mercado se dá através de um conjunto de habilidades técnicas e não-técnicas que vão desde a vivência efetivamente ágil, passando pela cultura e englobando boas práticas de arquitetura e entrega contínua. Esse conjunto poderoso é o mesmo que faz com que empresas de alta performance em tecnologia antecipem ameaças de segurança – como sofisticação hacker e crimes digitais –, mudanças regulatórias na economia e outros riscos. Esse movimento precavido acontece porque uma empresa de alta performance sabe que a velocidade depende da estabilidade.

A estabilidade importa porque, sem uma base sólida e segura, como posso responder ao ritmo selvagem da concorrência do mercado? Bom, não posso. Sem estabilidade, fico para trás. E essa não é a única desvantagem. 

Empresas de alta performance – ou seja, empresas que são referência, atualizam o software várias vezes para entregar novas funcionalidades. Essa empresas inovam e estão duas vezes mais propensas a aumentar seu lucro, alcançar parcelas maiores do mercado e ter mais produtividade. O dado é do livro Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations, que relata uma pesquisa, feita em 2017, com 1009 empresas para entender o que diferenciava empresas de alta performance em tecnologia de empresas de média e baixa performance.

Ao fazer algumas perguntas para essas empresas, os autores do Accelerate descobriram que a principal diferença entre elas é o tempo que levam para resolver diversas situações. Preste atenção nos exemplos abaixo:

Enquanto empresas de alta performance fazem mais de um deploy por dia, empresas de média e baixa performance costumam fazer entre um por mês e um por semana. Leva, em média, menos de uma hora para essas empresas realizarem mudanças em produção, ao passo que empresas de média e baixa performance levam entre uma semana e um mês. E, se a sua empresa for de baixa performance, pode levar entre uma semana e um mês para restaurar um serviço, independente de quanto prejuízo a falha desse serviço possa trazer ao seu negócio.

O tempo gasto para uma empresa de média ou baixa performance realizar manutenções e retrabalhos certamente seria melhor usado para pensar em inovação e melhorias no processo de desenvolvimento. E, aqui, vai mais um dado do Accelerate: empresas de alta performance usam 49% do tempo de uma semana para desenvolver novas funcionalidades, processos e ideias. Este cenário só é real porque elas não gastam tanto tempo resolvendo problemas.

Mas o que empresas de performance ruim em tecnologia podem fazer para mudar seu cenário?

Lembra do conjunto de capacidades técnicas e não-técnicas de que falei no início do texto? É ele que faz toda a diferença e ajuda as empresas a aprimorar a velocidade e a estabilidade de suas entregas. Suas capacidades são: 

  • Entrega contínua;
  • Produto e processo;
  • Arquitetura;
  • Cultura.

Vamos começar pela primeira dessas capacidades.

Entrega contínua

Podemos pensar na entrega contínua como um processo que nos permite realizar mudanças de todos os tipos (features, configurações, correção de bugs e experimentos, por exemplo) em produção de uma maneira segura, rápida e sustentável. 

Tais segurança e sustentabilidade só são possíveis porque a entrega contínua anda de mãos dadas com a garantia de qualidade, especialmente alinhada à automação. Aqui na Sofist, defendemos que não, seu produto não está pronto a não ser que tenha sido testado. Empresas de alta performance executam testes desde as etapas mais embrionárias do desenvolvimento. Além disso, só consideram o trabalho concluído depois que testes automatizados tenham sido feitos. 

Outra boa prática da entrega contínua é automatizar o máximo de tarefas repetitivas, como testes de regressão e deploy, para deixar as pessoas livres, a fim de resolverem problemas. Os esforços humanos devem estar em melhorar o design, resolver débitos técnicos, dar um shift-left em segurança e repensar melhorias nos processos. Isso, entre outras ações que demandam pensamento crítico e visão sistêmica. 

Ainda falando de entrega contínua, é digno mencionar que empresas de alta performance, fiéis à gestão ágil, usam e abusam de pequenos lotes de trabalho. Lembra dos vários deploys sendo feitos por dia? Eles são menores do que deploys que contêm todo o trabalho de um mês e, justamente por serem sucintos, ajudam a trazer feedbacks mais cedo no processo. Se você precisar corrigir algum defeito ou lidar com as consequências de alguma decisão errada, é bem mais fácil (e menos custoso) fazer essas duas coisas quando o ciclo de trabalho é menor.

Produto e processo

A alta performance em tecnologia não pode ser separada da alta performance do negócio. É o vínculo com os objetivos da companhia e do produto que faz com que o trabalho do dia a dia seja consciente e sistêmico. Por exemplo, se o time de desenvolvimento não souber responder como o trabalho de determinada sprint vai afetar o usuário ou contribuir com os objetivos da empresa, é melhor que o propósito da sprint seja repensado. 

O propósito do trabalho diário tem que estar tão claro quanto o seu fluxo. É por isso que empresas de alta performance deixam sua missão clara. Simultaneamente, optam também por processos de alta visibilidade que deixam todo o time na mesma página. Ou seja, além de entender o motivo real do que está sendo feito, o time precisa saber o que está pronto para desenvolvimento e/ou teste, o que está aguardando no backlog, o que foi entregue, etc.

Ter foco no feedback do cliente é mais uma boa prática encontrada em empresas de alta performance em tecnologia. Geralmente, essas empresas possuem um processo bem amarrado de captação do feedback do cliente para levá-lo diretamente ao time de desenvolvimento, de forma que ele resolva problemas reais. 

Outra característica processual relevante em empresas de alta performance é a autonomia. Todos sabemos que ter liberdade para tomar decisões no ambiente de trabalho é um pré-requisito para uma rotina menos burocrática. Porém, a autonomia só é possível quando existe segurança para que essas decisões sejam tomadas. O segredo está na constância de uma boa preparação e na garantia de qualidade.

Vou dar um exemplo. Toda empresa possui algum processo para tomada de decisão em ambiente produtivo. Será muito mais fácil ter um processo leve de aprovação se o processo de desenvolvimento for amparado por testes automatizados rodando no pipeline e por outras práticas que garantam a qualidade do produto final, como programação em par e revisão de código. Agora, se o que foi desenvolvido para o deploy causa medo e insegurança por não ter sido testado, nem validado de qualquer outra forma, a tendência é que o processo de aprovação seja mais burocrático e até mesmo hierárquico. E depender de uma aprovação externa nem sempre garante taxas menores de erro. 

Arquitetura

A base de qualquer boa arquitetura é contar com ambientes estáveis. Parece óbvio e básico, mas não é incomum, tampouco raro, encontrar empresas que sofrem com a instabilidade de seus ambientes. Essa instabilidade coloca em risco todas as boas práticas de entrega contínua, processos, visibilidade e segurança. Por isso, a mensagem é clara: se não é possível confiar em seus ambientes hoje, você deveria priorizar isso.

Lembra da autonomia? Ela também está presente quando falamos de arquitetura e ferramentas. Empresas de alta performance costumam, com as devidas restrições, deixar que seus times escolham as ferramentas que irão usar no dia a dia. É fácil entender porque: só eu, que estou vivenciando os caminhos e percalços da minha rotina, sei qual ferramenta vai me atender melhor e qual funcionalidade vai automatizar o máximo das minhas tarefas manuais. Contar com a ferramenta adequada acelera a produtividade e torna o trabalho mais fluido e automatizado, além de dar a visibilidade necessária e diminuir a dor do deploy.

Sim, dor do deploy. Se você nunca ouviu falar desse termo, aqui vai uma explicação: a dor do deploy é a soma de diversos sentimentos ruins que podem ocorrer antes, durante e depois do deploy. A ansiedade e o medo do deploy não ocorrer como o esperado, o desespero de corrigir um alto volume de defeitos, a exaustão de trabalhar horas e horas em um processo instável e a culpa por não ter realizado a melhor entrega são apenas alguns sentimentos que permeiam essa dor. Quando vivenciada com certa cadência, a dor do deploy pode levar ao burnout e contribui para a deterioração da saúde mental. E adivinha? Ainda segundo o Accelerate, a dor do deploy é bem menor em empresas de alta performance porque elas têm ambientes estáveis, seus processos de teste são confiáveis e problemas são resolvidos mais facilmente.

Cultura

Você sabia que empresas de alta performance em tecnologia, até mesmo por serem adeptas da agilidade, possuem uma cultura de responsabilidade em que todos colaboram a fim de atingir um único objetivo?

A cultura dessas empresas é transparente e aberta, onde as pessoas se sentem livres para arriscar, inovar e errar. Empresas de alta performance enxergam erros como aprendizados e não como o caminho definitivo para a punição. Por isso, a informação tende a transitar mais facilmente ali. Se eu tenho medo de admitir que causei um bug em produção, por exemplo, porque sei que serei culpabilizada, repreendida e punida, tendo a esconder a verdade o máximo possível. Onde há medo, a verdade é mais facilmente escondida. Essa característica apenas reforça que devemos trabalhar para construir ambientes que cuidam das pessoas e que evitam, ao máximo, comportamentos tóxicos de culpabilização e apontamento de erros.

Para manter ambientes saudáveis, as empresas devem contar com bons líderes. Esses líderes são pessoas capazes de comunicar de maneira inspiradora e positiva mesmo em cenários de incerteza; de encorajar o time a ver mudanças como períodos cheios de oportunidades e de desafiar pessoas a pensarem em resolução de problemas de maneiras novas. Mais além, bons líderes prestam apoio pessoal a cada pessoa que compõe o seu time. Por exemplo, se eu sei que há mães e pais no meu time que se ausentam todos os dias às 17h horas para buscar os filhos na escola, por que vou agendar reuniões diárias com eles neste mesmo horário?

Além de contar com líderes transformadores, empresas de alta performance estão muito atentas aos seus valores e em como transformá-los em ações. Como funcionários, queremos, no mínimo, trabalhar em lugares que tenham valores minimamente semelhantes aos nossos. Eu não vou topar trabalhar em uma empresa que não me pague o mesmo valor dos meus colegas homens se acredito em igualdade de gênero. Empresas de alta performance em tecnologia sabem que evidenciar valores no dia a dia é importante para reter e manter as pessoas felizes. Sem esse cuidado e coerência, fica difícil reter pessoas. Ainda mais considerando que, de acordo com o Gartner, no ano passado, 76% dos candidatos tinham duas propostas de trabalho na mão quando aceitaram iniciar em novos empregos. Portanto, em tempos de alta concorrência, não viver uma cultura orgânica e verídica pode ser fatal para empresas de tecnologia.

Conclusão

Deu para notar que alta performance em tecnologia abrange capacidades e boas práticas em todos os âmbitos de uma empresa, não deu? O mais interessante é que, ao melhorar um ponto, você estará automaticamente abrindo caminho para aprimorar outro. Se melhoro a minha arquitetura, isso impacta a entrega contínua, que impacta o processo, que impacta a cultura. E vice-versa.

Que tal escolher uma dessas capacidades para aprimorar na sua empresa?

Leave a Reply