Engenharia de Plataforma DevOps

Engenharia de Plataforma: Transformando a abordagem DevOps

A implementação de práticas DevOps no Ciclo de Vida do Desenvolvimento do Software proporciona melhorias substanciais na construção e manutenção do software. No entanto, a experiência na adoção destas práticas varia de entidade para entidade, influenciada por fatores como a dimensão, a maturidade Agile, o modelo de arquitetura ou as integrações com sistemas anteriores (“legacy“).

O principal objetivo é otimizar o desempenho das equipas de desenvolvimento, introduzindo o conceito de “experiência do programador” para avaliar a excelência. Embora tenham sido feitos esforços para fornecer a estas equipas as ferramentas necessárias e para medir a melhoria em cada mudança, os resultados nem sempre são ótimos. Por exemplo, em organizações com várias equipas, a falta de homogeneidade no ciclo de desenvolvimento e entrega, bem como a diversidade das ferramentas utilizadas, gera complexidades, manutenção adicional e implicações negativas em termos de custos.

Por outro lado, nas organizações com uma equipa DevOps centralizada, a “carga cognitiva” das equipas de desenvolvimento diminui, devido a uma maior distribuição de responsabilidades na definição do ciclo de desenvolvimento e entrega, bem como nas ferramentas associadas. No entanto, isto não evita tensões entre as equipas de DevOps e de Desenvolvimento em situações de conflito, devido à falta de entendimento.

Estas situações desviam a atenção da essência do DevOps, que procura automatizar o ciclo de vida do software (SW) para alinhar iniciativas e promover a colaboração entre equipas para entregar software de uma forma mais eficiente e menos stressante, o que é essencial para poder fazê-lo de forma contínua.

 

Uma nova abordagem DevOps

Estão a surgir novas tendências que procuram transformar o modelo DevOps num produto empresarial, afastando-se do seu tratamento como um simples projeto. É adotado o conceito de Product Agile, centrando-se na clareza da interação da equipa, na capacitação para maximizar a contribuição de valor, no aumento do fluxo de entregas e na redução da “carga cognitiva” das equipas de Desenvolvimento.

A proposta implica uniformizar a infraestrutura, criar interfaces self-service para os programadores e dedicar uma equipa para manter tudo como uma plataforma. Esta evolução é designada por “Engenharia de Plataforma” e implica a alteração do nome da equipa DevOps para “equipa de engenharia”.

A estratégia consiste em continuar com o DevOps, mas mudando a forma como é gerida para torná-la global e com retorno, garantindo a incorporação das necessidades das equipas de desenvolvimento à medida que estas vão surgindo através do perfil agile do Product Owner, para criar e manter um produto que resolva todas as suas necessidades e desafios diários.

A ideia principal é reutilizar as ferramentas e os processos existentes para minimizar o impacto inicial. Nas novas organizações, sugere-se a contratação de produtos integrados como o GitLab ou o GitHub, que já oferecem as ferramentas necessárias e evoluir com opções de integração adicionais com outros produtos freemium ou comunitários.

A criação da equipa de Plataforma incluirá as equipas existentes de DevOps, Operações/Sistemas/Segurança e membros da equipa de desenvolvimento convencidos das vantagens desta mudança. A compreensão das necessidades dos utilizadores, a capacidade de priorizar o trabalho e a construção de uma plataforma útil são fundamentais, apesar da dificuldade. O objetivo é que, através da plataforma, as equipas de desenvolvimento possam desenvolver e entregar ao ritmo que necessitem, concentrando-se na aplicação em vez de assumirem uma aprendizagem crescente da problemática DevOps.

Para proporcionar um acesso organizado e abrangente ao novo produto, recomenda-se a criação de uma “Plataforma Interna de Desenvolvimento ” através de um portal centralizado. Estudos indicam que a criação de uma Plataforma Interna de Desenvolvimento tem um impacto positivo na evolução das práticas de DevOps, ao uniformizar um modelo de self-service de ferramentas e tecnologias para os programadores, reduzindo a carga cognitiva que poderia prejudicar o seu desempenho.

 

Conclusões

Empresas como a Spotify, a Airbnb e a Zalando já adotaram este modelo e a Gartner prevê que, em 2028, 80% das organizações de desenvolvimento de software terão equipas internas de “Engenharia de Plataforma”, fornecendo serviços internos reutilizáveis, componentes e ferramentas às equipas de desenvolvimento para a entrega de software.

 

Autor: Iñigo Chaso Rico, Business Diretor da LoB de Industrialização do SDLC