Agile

13 mai, 2013

Entrega Contínua nas corporações

Publicidade

A prática da Entrega Contínua é frequentemente solucionada em startups atuais e empresas de vanguarda do Vale do Silício, que constroem websites voltados para os consumidores. É o que aqueles caras super legais e super espertos do Etsy e do Github fazem; e eles assim o fazem, pois é dessa forma que continuam competitivos.

Mas e se você trabalha em um lugar que não precisa fazer testes A/B no último lote de recursos e que não é impulsionado pela competição de entregar uma nova capacidade a cada semana? E se você trabalha no temido mercado corporativo? Deveria você praticar Entrega Contínua (EC), ainda assim?

Do meu ponto de vista, a resposta é sim.

Agora, posso te dizer que EC é o lugar para onde o mundo está caminhando e, caso você não faça isso pelo seu programa, vai acabar ficando para trás uma hora ou outra. Ou eu poderia dizer que, muito em breve, bons programadores irão esperar por isso e, para atrair os melhores, você precisará dar um passo à frente.

Mas eu não irei te falar essas coisas. Em vez disso, gostaria de contar a verdadeira razão pela qual as corporações deveriam adotar EC. Ela pode ser resumida em duas palavras: forcing function.

Manter o código “saudável”

Não há nada como a possibilidade de colocar todas as mudanças diretamente em produção para poder ter certeza de que a sua base de desenvolvimento está em ordem. Por exemplo, conversas sobre uma alta taxa de cobertura de testes não podem mais terminar com “Essa é uma ótima ideia e nós devemos fazer isso com certeza, mas vamos começar isso daqui a algumas semanas, ok?”.

Outra coisa que não pode mais ser uma opção é a intervenção manual durante os deployments. A resposta para “O nosso fluxo de lançamento está automatizado?” não podem mais ser: “Sim, nosso fluxo de lançamento está totalmente automatizado, exceto pela necessidade de verificar manualmente se o código em produção funciona após o deployment.”

Acabar com os “silos”

Não é segredo que uma empresa típica é normalmente dividida em tribos de habilidades rivais (ex.: Quality Assurance  vs. Business Analysis vs. Desenvolvedores vs. Operações). Gerentes trabalham duro para criarem seus feudos e mais duro ainda para protegê-los. Portanto, o fluxo do trabalho está constantemente obstruído por políticas e procedimentos.

Bem, feudos e Entrega Contínua não são verdadeiramente compatíveis. Para conceber, projetar, implementar, testar e entregar código em um ambiente de EC, é necessário um nível de colaboração que é simplesmente inatingível caso a sua empresa se assemelhe com a Itália do século XV.

Então, se você levar EC a sério, feudos precisarão ser extintos. E, com todas as chances, algumas das pessoas que ajudaram a criá-los também precisarão ir embora.

Aumento no nível do talento

Trabalhar em um ambiente de EC demanda pessoas capazes. Não superestrelas, mas gente que normalmente sabe a coisa certa a se fazer e que possui confiança para fazê-la.

Infelizmente, o nível de talento de uma empresa deixa muito a desejar. É claro que há um grupo (normalmente pequeno) de pessoas que sabem o que estão fazendo. Mas há também um grupo (muito maior) que não está fazendo mal, mas que também não está ajudando. E há igualmente um grupo (via de regra, não tão pequeno quanto deveria ser) de pessoas que estão sabotando a coisa toda, quase sempre por falta de capacidade.

Por isso, ao subir os níveis de talento, você irá precisar passar por um doloroso processo de ajuste. Alguns não sobreviverão à transição, outros sairão vitoriosos. Mas, no final das contas, você passará por isso e terá sido muito melhor.

Pensamentos finais

Fazer EC é difícil, em corporações ou não. É preciso um nível de vigilância constante, comprometimento e competência de todos os envolvidos no processo de criação do software. Ainda assim, considerando que a EC impacta positivamente tantos aspectos de uma organização, deveríamos levá-la em conta, no ambiente corporativo ou não.

***

Artigo traduzido pela Redação iMasters, com autorização do autor. Publicado originalmente em http://tatiyants.com/continuous-delivery-for-the-enterprise/