Entrega Contínua, Agilidade e DevOps
Não é necessário mudar. A sobrevivência não é obrigatória. (W.E.Deming)
Quarta revolução industrial. Era exponencial. Vivemos num mundo cada vez mais acelerado e complexo. Tecnologias disruptivas surgem e intensificam cada vez mais as mudanças. Ninguém fica ileso nessa grande transformação. Esse contexto assusta muitas pessoas e empresas, especialmente nas mais antigas e tradicionais.
Na perspectiva de projetos e no desenvolvimento de produtos, esse contexto tem forte impacto. Enquanto métodos tradicionais (“cascata”) encontram mais dificuldade, os métodos ágeis se beneficiam ao abraçar a mudança. Pesquisa da Standish Group de 2015 mostra que métodos ágeis têm 3,5 vezes mais chances de sucesso.
A agilidade não só permite reduzir riscos de fracasso nos projetos, mas também entrega valor mais rápido e mais frequente ao cliente. Ela ainda trabalha melhor com as mudanças, tornando-as uma grande vantagem competitiva. Também aumenta a qualidade do produto e pode deixar as equipes mais produtivas.
Muitas vantagens, não? Sim, mas a agilidade e os métodos ágeis não são um mar de rosas. Teoricamente simples, porém difíceis de implementar. Podem levar algum tempo para de fato se traduzirem em bons resultados. Métodos ágeis lidam melhor com as mudanças e o mundo complexo em que vivemos porque são essencialmente empíricos, no entanto exigem uma mudança cultural muitas vezes desconfortável. Uma mudança de mentalidade e de comportamento que não acontece de um dia para o outro.
No entanto, as empresas (e as pessoas) vão precisar se adaptar cada vez mais nesse contexto. É necessário mudar, por uma questão de sustentabilidade de resultados, de sobrevivência empresarial e laboral. Os mais refratários às mudanças (empresas e pessoas) tornam-se os mais frágeis. A organização fica frágil.
Por que DevOps?
Ok, então vamos mudar e criar um espaço criativo bacana e alguns times fazendo Scrum e tudo estará tudo resolvido, certo? Não.
Em primeiro lugar, leva tempo para os primeiros times aprenderem, se desenvolverem e terem mais experiência para trabalhar com métodos ágeis com eficiência e começar a colher os melhores resultados. Podem colher bons resultados rapidamente em alguns casos, mas em geral vai levar algum tempo.
Em segundo lugar, para conseguir entregar valor frequente e rápido ao cliente não basta o time executar bem o Scrum ou o kanban. É importante toda a organização também estar alinhada e apoiar essa metodologia de trabalho e essa cultura ágil. É preciso mindset ágil na organização e nas pessoas. Mais ainda, é fundamental a TI estar alinhada com essa visão. Em especial, é preciso que as operações de TI estejam alinhadas e engajadas nessa orquestração ágil de entrega contínua de valor ao cliente.
Colocar software em produção e fazer mudanças não é fácil. São operações críticas e sensíveis, exigem muito esforço e têm impacto direto nos resultados organizacionais. Além disso, ainda trazem muito estresse para todos os envolvidos.
Nossos tempos exigem que os sistemas sejam estáveis e sem interrupções ao mesmo tempo que os clientes e o negócio exigem mudanças contínuas. Como superar esse conflito, ser estável e mudar ao mesmo tempo?
Para isso, não basta que cada área faça sua parte. É importante que as áreas deixem seus silos e entendam que a empresa é maior que a própria área. Para a cultura DevOps o time de desenvolvimento deve se aproximar do time de operações. De preferência sem áreas, sem silos. Sem o discurso “fiz a minha parte, a culpa não é minha”, e sim “vamos fazer juntos, somos um time que vai entregar valor ao cliente”.
O DevOps se alimenta da união de times de operações e de times de desenvolvimento e de qualidade para entregar software em produção continuamente e com frequência para o usuário final, integrando mindset ágil e uso intensivo de técnicas e ferramentas de automação. Não só isso, mas que essas equipes também fomentem a colaboração, a empatia e a confiança entre si.
Enfim, uma comunidade interdisciplinar composta por engenheiros de operações e de desenvolvimento que juntos cuidarão de todo o ciclo de vida do serviço, do design ao processo de desenvolvimento e suporte da produção. Essa comunidade, essas equipes se dedicam à construção, evolução e operação de sistemas resilientes de rápida mudança.
O feedback contínuo é central a toda cultura DevOps. Em torno disso, diversos recursos, métodos, técnicas e práticas integram esse organismo vivo de entrega de valor contínuo ao negócio. Em empresas com alto grau de maturidade em DevOps, tais como Google, Amazon, Netflix, Facebook, Twitter, entre outras, é comum a prática de commits diários direto na trunk e entrega contínua de valor em produção por todas as equipes e colaboradores. Essas empresas implementam código com mais frequência, têm menos falhas e se recuperam de possíveis falhas mais rapidamente. E tudo isso também tem impacto na qualidade de vida de seus funcionários.
O feedback contínuo do cliente resulta em melhoria contínua num ciclo curto, propiciando ajustes e correções rápidas no plano dos negócios que vão direcionar desenvolvimento colaborativo no produto e serviço, testando continuamente. Todo tipo de testes, especialmente o automatizado. A implementação frequente de releases darão novo fôlego ao negócio para obter mais recursos e feedback. Tudo isso num ciclo monitorado e contínuo, com intenso uso de ferramentas e automação que alimentarão todo um ecossistema de boas práticas e padrões. Esse é o ciclo de vida DevOps.
Com DevOps uma organização pode de fato se tornar ágil. Num contexto de mudanças e incertezas crescentes, o DevOps favorece a resiliência e a adaptação às mudanças. Fica mais próxima de ser antifrágil.
Mas, relembrando e parafraseando Demming, a mudança (para organizações e pessoas) não é obrigatória. A não sobrevivência pode ser uma opção.
Este é um breve artigo de introdução aos temas Agile e DevOps. Continuarei essa publicação com outras histórias relacionadas. Sugestões, críticas e comentários são bem vindos. Para quem deseja se aprofundar um pouco mais, seguem algumas sugestões de leitura no tema.
Referências
· SABBAGH, R Scrum: Gestão Ágil para Projetos de Sucesso Editora Casa do Código
· KIM, G, HUMBLE, J, DEBOIS, P, WILLIS, J Manual de DevOps- Como Obter Agilidade, Confiabilidade e Segurança em Organizações Tecnológicas Editora Alta Books
· HUMBLE, J, FARLEY, D Entrega Contínua — Como Entregar Software De Forma Rápida e Confiável Editora Bookman