Cada cliente é importante
Um princípio fundamental da engenharia de plataforma é otimizar para seus clientes. Pense nos desenvolvedores como seu principal cliente e concentre-se em suas necessidades primeiro ao decidir quais caminhos de desenvolvimento você deseja pavimentar e quais recursos deseja expandir. Todos os desenvolvedores usam ferramentas diferentes para realizar seu trabalho. Como primeiro passo, comece pequeno e avalie se você pode melhorar as telas e superfícies existentes antes de implementar uma nova plataforma interna para desenvolvedores.
Capacite os desenvolvedores com uma plataforma interna centrada no cliente
Pensar nos desenvolvedores como o principal cliente de sua plataforma interna de desenvolvedor é essencial para seu sucesso. Referimo-nos aos desenvolvedores como clientes. Os clientes podem ser qualquer membro do que o modelo de Topologias de Equipe chama de equipes alinhadas ao fluxo – incluindo funções como profissionais de aprendizado de máquina ou cientistas de dados.
Uma prática bem-sucedida de engenharia de plataforma capacita desenvolvedores e operadores. Desenvolvedores e operadores têm autonomia para tomar decisões que agreguem valor aos negócios, ao mesmo tempo em que aderem aos padrões, governança e regras de segurança estabelecidos. Partes interessadas críticas, equipes capacitadoras e especialistas em subsistemas específicos (operações, segurança, conformidade e arquitetura) trabalham com a equipe que cria essa plataforma interna para codificar seus conhecimentos e práticas recomendadas em modelos e recursos do sistema. Mover esse conhecimento para um sistema simultaneamente reduz a carga cognitiva para os desenvolvedores, melhora a segurança, a conformidade e a qualidade e dimensiona melhor essas outras funções para lidar com problemas verdadeiramente únicos. No entanto, é a experiência do desenvolvedor que garante que sua plataforma retorne o máximo de benefícios para todos os envolvidos.
Isso significa seguir uma abordagem centrada no cliente para planejar e priorizar seus esforços de engenharia de plataforma.
Identifique os caminhos de desenvolvimento ideais para simplificar as melhores práticas
Embora sua organização possa ter vários caminhos de desenvolvimento diferentes para a produção hoje, uma etapa inicial em sua jornada de engenharia de plataforma é entender quais caminhos você deseja que os desenvolvedores usem. Fazer essa ligação é importante, pois permite que você concentre sua energia na pavimentação de um caminho eficiente através deles que ainda atenda aos requisitos de desenvolvimento, operações e governança.
Esses caminhos pavimentados representam um conjunto específico de ferramentas, linguagens, SDKs e serviços de desenvolvimento e observabilidade que são moldados para se adequar ao que o desenvolvimento, as operações e outras partes interessadas concordam como representando suas melhores práticas. Os caminhos pavimentados devem incluir abordagens para agilizar a integração, a moderação e a defesa da reutilização interna. Você não precisa pensar nesses caminhos pavimentados como restritivos ou forçados, mas sim reduzir o trabalho do desenvolvedor ao ponto de as equipes de desenvolvimento quererem permanecer dentro deles.
No entanto, o truque é entender não apenas em quais caminhos focar, mas quais partes do caminho precisam ser pavimentadas primeiro.
Encontre os usuários onde eles estiverem
Embora possa ser tentador começar com um portal unificado para tudo em sua plataforma interna de desenvolvedor, esse não é o melhor ponto de partida.
Seus profissionais de operações, engenheiros de confiabilidade do site (SREs) e desenvolvedores usam ferramentas diferentes para realizar seu trabalho. A codificação acontece em um IDE, sistemas de engenharia como GitHub e Azure DevOps usam interfaces de linha de comando e a colaboração em tempo real acontece no Teams e no Slack. Muitas vezes, esses usuários estão satisfeitos com essas telas e desconfiam de outra interface de usuário com a qual se preocupar.
Comece pequeno e avalie se você pode melhorar suas telas e superfícies existentes. Crie plug-ins ou extensões antes de começar a criar novas experiências personalizadas. Pergunte a si mesmo: as pessoas reagirão melhor a outra nova experiência do usuário ou a uma versão melhorada de algo que você tem agora? Se você decidir criar um portal do zero para começar, considere a ideia de que provavelmente desejará oferecer suporte a mais de uma interface por meio de uma API. Isso também desbloqueia opções como o uso de estruturas de baixo código para que você não precise criar e hospedar uma experiência de portal do zero.