Com a evolução e consagração da computação em nuvem, diversos problemas enfrentados nos desenvolvimentos tradicionais agora são facilmente solucionados e de maneira bastante acessível pelas startups. E as aplicações escritas na década passada?
Reescrever uma aplicação com centenas de milhares de linhas não é uma tarefa fácil!
Muitos líderes responsáveis pela transformação de seus negócios de software estão seguindo tipicamente três caminhos distintos:
a) Uma jornada radical de rearquitetura e recodificação do seu software;
b) Uma evolução gradual ou
c) Estão aguardando uma solução mágica.
Uma jornada radical de rearquitetura e recodificação de um software é um desafio que poucos conseguem ultrapassar.
Dependendo da quantidade de linhas de código, linguagem de programação e banco de dados, a jornada pode durar anos e requerer um alto investimento.
Reescrever código mudando de linguagem já é um esforço significativo para qualquer boa equipe de desenvolvimento. Somado a isso, entender de arquitetura aplicada à computação em nuvem é um complicador adicional. O Brasil ainda forma muito poucos engenheiros de softwares com especialização em arquitetura de nuvem.
Na evolução gradual, mantendo o núcleo do software na sua arquitetura e codificação original, mas criando novos módulos em tecnologia nativa para nuvem, tem sido a escolha de muitos líderes da indústria.
Essa abordagem é bastante compreensível em função:
• Dos consumidores pedirem novas funcionalidades e integrações constantemente;
• Da concorrência avançar lançando novas funcionalidades;
• Dos investimentos necessários para manter atualizações regulatórias, fiscais e tributárias, que consumem uma boa parcela dos custos e da carga de trabalho;
• Da falta de financiamentos para a transformação do núcleo do software e
• De contratação de plataformas que possibilitam mover uma aplicação legada para a nuvem e ganhar muito tempo para poder transformá-la.
Em ambos os casos, o caminho a ser seguindo é na direção da metodologia Ágil e DevOps para se transformar.
Há pouco mais de uma década, o desenvolvimento de software testemunhou uma mudança radical. Já se foi o tempo em que o desenvolvimento era um processo isolado com as equipes de desenvolvimento, negócios, operações e testes trabalhando em seus próprios silos. Com a metodologia ágil e cultura DevOps as equipes de desenvolvimento obtiveram o impulso necessário para colocar o software em produção rapidamente e reduzir o tempo de lançamento no mercado.
O sucesso da metodologia Ágil e DevOps certamente depende da destreza e da capacidade das equipes de desenvolvimento, mas não só delas. Essas metodologias também exigem uma mudança de cultura da empresa. Evitando trabalhar em silos, o fator sucesso de um projeto de transformação é a colaboração entre equipes.
Desta forma, é possível criar um ambiente em que desenvolvimento, testes e lançamentos de produtos fluam dinamicamente. Para isso acontecer é fundamental uma integração forte entre desenvolvimento, qualidade e operações.
A maioria considera o DevOps como a extensão do Ágil e certamente, podemos pensar desta forma. O fundamental é a maior colaboração entre a equipe de desenvolvimento e operações.
A mudança necessária é conceitual, temos que desenvolver softwares centrado no usuário!
O sucesso é ter feedback constante e rápido do usuário, associado a processos de automação para aumentar a velocidade, variedade e volume de entregas.
Os ganhos com a adoção desta cultura para as empresas de software estão diretamente relacionados com seu futuro e sobrevivência. A cadeia de valor hoje centrada no consumidor necessita de compreensão muito mais do que questões puramente técnicas.
Para aqueles que estão aguardando uma solução mágica, só posso dizer que o tempo está passando e o fim está próximo.