A engenharia de plataforma, que centraliza práticas e componentes para equipes de desenvolvimento, ganha destaque conforme as práticas e estruturas DevSecOps se tornam mais integradas nas empresas. A engenharia de plataforma busca normalizar e padronizar os fluxos de trabalho dos desenvolvedores, oferecendo “caminhos otimizados” para a maioria das tarefas e flexibilidade para definir exceções para o restante.
O Gartner® prevê que "até 2026, 80% das grandes empresas de engenharia de software terão equipes de engenharia de plataforma como provedores internos de serviços, componentes e ferramentas reutilizáveis para entrega de aplicações, em comparação com 45% em 2022" [1]. A engenharia de plataforma permite que as empresas — especialmente as de grande porte, com várias iniciativas de engenharia acontecendo em paralelo — dimensionem os princípios e ferramentas do DevSecOps com mais facilidade. Essa abordagem é muito importante quando as empresas são pressionadas a fazer mais com menos.
Principais benefícios da engenharia de plataforma
Aumentar a velocidade de entrada no mercado: a engenharia de plataforma promete ajudar empresas a disponibilizar software de melhor qualidade de forma mais rápida e econômica. Formar uma equipe de engenharia de plataforma trará benefícios a longo prazo, permitindo que empresas de grande porte avancem rapidamente com menos ferramentas, resultando em uma economia significativa de custos.
Reduzir os riscos de segurança e conformidade: menos ferramentas e fluxos de trabalho mais padronizados reduzem a sobrecarga de conformidade e a possível superfície de ataque das empresas. Segundo o Relatório de Custo de Violação de Dados da IBM, o custo médio global de violação de dados em 2023 foi de US$ 4,45 milhões. Ainda assim, as empresas que gerenciaram sua superfície de ataque de forma eficaz conseguiram conter as violações mais rapidamente.
Melhorar a experiência do desenvolvedor: o DevEx é uma prioridade crescente, com empresas competindo para atrair e manter os melhores talentos de desenvolvimento. As equipes de engenharia de plataforma podem ajudar a melhorar o DevEx ao criar fluxos de trabalho eficientes e automatizados, ou caminhos otimizados, e remover dos desenvolvedores tarefas manuais e desnecessárias. Isso simplifica o dia a dia delas, permitindo que desenvolvam, testem e implantem aplicações de forma eficiente, concentrando-se nas tarefas mais impactantes e essenciais para o negócio.
Práticas recomendadas de engenharia de plataforma
A cultura é o ponto de partida
Se “plataforma” descreve o que devemos criar, então “engenharia” descreve como ela deve ser criada. Muitas empresas se apressam em comprar e instalar tecnologia sem considerar como precisarão evoluir sua cultura organizacional para garantir o sucesso da adoção.
As equipes de engenharia de plataforma devem se considerar proprietárias do produto, tendo os desenvolvedores como clientes. Elas devem analisar as necessidades dos desenvolvedores e contatar os usuários finais para ajudá-los a garantir o uso eficiente dos recursos fornecidos. Isso exige habilidades internas de marketing, comunicação e suporte ao cliente, que muitas vezes faltam nas equipes técnicas.
O ponto aqui é uma mentalidade e cultura orientadas a produtos, que permitem às equipes de engenharia de plataforma focar na criação de valor para seus usuários finais (desenvolvedores), absorvendo o feedback dos usuários e aprimorando continuamente seu produto (a plataforma do desenvolvedor). Líderes devem criar um ambiente onde os membros da equipe se sintam capacitados em buscar formas de ajudar seus clientes específicos (internos). O foco deverá ser facilitar o máximo possível o consumo dos seus serviços, provavelmente por meio de interfaces de autoatendimento ou APIs programáveis.
Foco na entrega de valor comercial
Ao começar uma iniciativa de engenharia de plataforma, as organizações podem ficar tentadas a olhar para equipes altamente produtivas e copiar o que fazem. Infelizmente, é frequente que haja muita ênfase inicial na estrutura da equipe ou nas ferramentas que ela usa. Esses geralmente são os resultados de uma equipe altamente produtiva, não a causa. Em vez de estrutura e ferramentas de equipe, líderes devem se concentrar nos resultados de negócios que desejam obter e então identificar as ferramentas e estruturas de equipe certas para atingir essas metas.
Defina a meta da sua prática de engenharia de plataforma em termos de impacto nos negócios. Desenvolver software mais rápido é ótimo, mas por quê? Qual meta de negócios isso atende?
Aumentar a velocidade e a agilidade, por exemplo, é um objetivo comum, mas pode haver várias metas de negócios por trás disso. Um tempo de entrada no mercado lento tem um custo de oportunidade óbvio, pois as empresas precisam fazer escolhas difíceis sobre quais produtos priorizar. Empresas que conseguem agir com mais rapidez estão também mais preparadas para responder a mercados dinâmicos. Há também implicações de segurança; as empresas precisam saber que podem reagir de forma rápida e eficiente em caso de um incidente de segurança.Métricas comuns de produtividade e eficiência são úteis, mas as lideranças devem tentar converter essas métricas em dados financeiros para deixar claro o impacto no negócio. Por exemplo, imagine que um esforço de engenharia de plataforma reduza o tempo que um novo desenvolvedor leva para fazer seu primeiro commit em produção. Nesse caso, a empresa está economizando uma certa porcentagem do salário do primeiro ano desse desenvolvedor e parte do salário de colegas que estão ajudando em sua integração. A empresa provavelmente também aumentará a retenção, reduzindo a necessidade de contratações dispendiosas (com custos de publicidade, recrutamento e longos ciclos de entrevistas).
As lideranças podem otimizar iniciativas de engenharia de plataforma, focando no valor do negócio para gerar os resultados certos.
Defina métricas claras
É importante ter métricas que ajudem a acompanhar o progresso da equipe de engenharia de plataforma e a entender como os desenvolvedores estão (ou não) usando os serviços disponibilizados. Isso permite melhorias contínuas, identifica áreas de sucesso ou necessidade de mais recursos e auxilia nas iniciativas de marketing interno.
Algumas métricas a considerar incluem:
-
Taxa de adoção: quantos desenvolvedores usam a plataforma ativamente?
-
Tempo para obtenção de valor: quanto tempo leva para um novo desenvolvedor começar a entregar código na plataforma?
-
Envolvimento da comunidade: qual porcentagem dos componentes da plataforma foi criada pela comunidade? (Por exemplo, quando uma equipe desenvolve um novo job de CI que pode beneficiar outros desenvolvedores, ela o compartilha com a equipe de engenharia de plataforma para que a aplicação e a manutenção sejam mais abrangentes?)
Desenvolvimento para todo mundo
As primeiras pessoas a adotar uma plataforma de desenvolvimento podem ser as mais visíveis e expressivas no início do processo. Porém, lembre-se de que esse grupo, que normalmente representa menos de 20% de uma empresa, pode ter necessidades muito diferentes da maioria dos usuários que, eventualmente, vão usar a plataforma. Ao definir os caminhos otimizados que fazem sentido para sua empresa, garanta que você esteja desenvolvendo para a maioria, e não apenas para os primeiros usuários.
Um caminho otimizado comum, que vale a pena investir desde o início, é um pipeline de CI/CD de ponta a ponta que sustente um determinado tipo de carga de trabalho em um conjunto de plataformas de destino (como o Kubernetes). Após essa carga de trabalho básica ser atendida, ela oferecerá uma base sólida para outras cargas de trabalho e garantirá que a plataforma possa agregar valor. Defina os caminhos otimizados prioritários da sua empresa com base nos resultados de negócios que eles possibilitam.
A plataforma DevSecOps: uma base para a engenharia de plataforma
Uma plataforma DevSecOps oferece uma única interface de usuário, um repositório de dados unificado e segurança integrada ao ciclo de vida do DevSecOps. Com uma plataforma DevSecOps, as empresas podem criar uma base para a engenharia de plataforma, com fluxos de trabalho como serviço para todo o processo de desenvolvimento de software.
Aqui estão alguns elementos críticos de uma plataforma DevSecOps que ajudam as equipes a alcançar o sucesso com a engenharia de plataforma:
-
Planejamento e colaboração: a engenharia de plataforma não funciona sem transparência. Quando todas as partes envolvidas usam a mesma plataforma, a comunicação é otimizada, facilitando que os desenvolvedores fiquem a par da estratégia e do escopo. Assim, as etapas de planejamento, desenvolvimento, teste, segurança, implantação e monitoramento de código são mais eficientes.
-
CI/CD e orquestração: a orquestração está no centro da engenharia de plataforma. Uma plataforma ajuda os desenvolvedores a verificar a qualidade do código e colocá-lo em produção. Ela também oferece um mecanismo de modelagem para garantir que as melhores práticas comuns sejam incorporadas e que cada mudança passe por um processo de qualidade uniforme.
-
Experiência do desenvolvedor: o DevEx simplifica o dia a dia dos desenvolvedores, automatizando tarefas manuais e eliminando decisões desnecessárias. Com uma plataforma DevSecOps, todo o código fica em um único lugar, facilitando para os desenvolvedores encontrarem o que precisam com o mínimo de alternância de contexto. Além disso, oferecer modelagens reutilizáveis e recursos com tecnologia de IA, como explicações e sugestões de código, elimina obstáculos da etapa de integração, possibilitando que os desenvolvedores comecem a gerar valor de imediato.
-
Segurança integrada: com uma plataforma DevSecOps, a análise de segurança automatizada garante que todo o código atenda a uma política de base e, mais importante, que os desenvolvedores tenham acesso autônomo a esses dados. Eles não precisam esperar até o dia da implementação em produção para descobrir que a equipe de segurança encontrou uma vulnerabilidade crítica.
-
Métricas e análises: para que uma iniciativa de engenharia de plataforma tenha sucesso, as empresas precisam identificar as metas de negócios por trás do projeto e ser capazes de monitorar o progresso em direção a elas. Com painéis de controle e de análises que extraem dados de todo o ciclo de vida do desenvolvimento de software, as empresas podem monitorar facilmente métricas importantes, avaliar o impacto de melhorias nos processos e identificar obstáculos. Isso capacita líderes a identificar rapidamente tendências e gargalos, permitindo que concentrem esforços em projetos de risco.
Saiba mais sobre como o GitLab acelera o desenvolvimento de software ao disponibilizar para as equipes de DevSecOps um único portal de autoatendimento para ferramentas e fluxos de trabalho, reduzindo a carga cognitiva e facilitando a expansão da entrega de software.
[1] Gartner, Top Strategic Technology Trends for 2024, Bart Willemsen, Gary Olliffe e Arun Chandrasekaran, 16 de outubro de 2023. GARTNER é uma marca comercial registrada e de serviço da Gartner, Inc. e/ou de suas afiliadas nos EUA e internacionalmente e foi usada neste documento com permissão. Todos os direitos reservados.
### Pesquisa Global de DevSecOps de 2024
Confira os resultados da nossa pesquisa com mais de 5.000 profissionais de DevSecOps em todo o mundo para obter insights sobre como as percepções em relação à segurança, IA e DevEx estão evoluindo.
Acesse o relatório