A importância do DX (Developer Experience) em times de Plataforma

Os times de Plataforma são responsáveis, como o próprio nome diz, em proporcionar plataformas de desenvolvimento.

Não é mistério que, ao longo do crescimento dos ambientes de desenvolvimento de software nos últimos anos, muitas ramificações qualitativas têm surgido – desde a integração de frameworks ágeis, separando times de plataforma conforme decisões estratégicas de cada corporação, até pequenas diferenciações de cada integrante de um time. Aqui na GFT, observamos essas mudanças e evoluções com muito esmero, acompanhando as tendências de mercado e nos adaptando para atendê-las. 

Dentre essas tendências, temos diversos conceitos que acabam sendo mapeados como “buzzwords”, termos temporários e passageiros, que não possuem realmente algo palpável a agregar ao mundo da tecnologia ou aos projetos em que são considerados. Em contrapartida, necessidades específicas dos diversos projetos fazem nascer conceitos novos de forma globalizada, e uma dessas necessidades é, sem dúvida, o time de Plataforma. 

times de plataforma
Os times de Plataforma acompanham a evolução dos produtos, sem envolver-se nos específicos das regras de negócio, mas garantindo que o processo de entrega seja feito dentro de padrões estipulados. 

Uma plataforma de desenvolvimento pode variar em na forma como ela é colocada em prática, indo desde a criação de um repositório de código para a arquitetura de um novo projeto, criação de automações e manuais de boas práticas para projetos pré-existentes, ou até mesmo ferramentas completas que trabalham em conjunto com o ambiente de desenvolvimento dos times desenvolvedores. 

Em projetos altamente integrados, existe uma dependência grande de garantir que diversos times consigam efetuar suas entregas de forma consistente, obedecendo um processo de desenvolvimento específico e com qualidade. 

Imaginemos uma aplicação para dispositivos móveis, por exemplo, onde cada área de negócio é desenvolvida por uma equipe totalmente diferente e apartada, dentro de um mesmo repositório de código. Um time de Plataforma poderia se encarregar de criar ferramentas que automatizem a geração de códigos padronizados, a validação dos códigos desenvolvidos, a homologação do uso de bibliotecas externas, a publicação real nas lojas destino, e o acompanhamento da performance de tal aplicação. Em outro cenário, esse mesmo time poderia se encarregar da construção e manutenção de bloqueios de qualidade e segurança de tudo aquilo que é entregue pelas outras equipes. 

A experiência do desenvolvimento: times de plataforma habilidosos 

Não existe uma verdade única de como times de Plataforma devem operar, adaptando-se conforme a necessidade das diferentes corporações e suas habilidades de acompanhar a evolução de seus produtos. Uma certeza que temos é que as métricas de qualidade, arquitetura e entrega contínua são os principais pontos de atenção desses times, e é nisso que consiste a importância desse trabalho. Com plataformas de desenvolvimento bem estruturadas e controladas, a garantia de qualidade do produto, assim como seu crescimento logarítmico, traz uma maior visibilidade a nível técnico para a corporação – sem contar os benefícios na especialização de profissionais que essas equipes acabam gerando. 

Contudo, apesar de parecer um mundo perfeito, existe um grande problema que pode ser gerado como efeito colateral. Em alguns times, a Plataforma é colocada a um nível tão superior e recebe um foco único, fazendo com que aqueles que efetivamente a utilizarão acabam entrando em segundo plano – as pessoas desenvolvedoras das diversas equipes. Imaginemos, novamente, o cenário da aplicação mencionada anteriormente: de nada adiantará a estruturação de todo um ambiente de desenvolvimento se ele não for fácil de utilizar, tiver uma linguagem ubíqua acessível, e tiver como foco uma boa experiência no dia a dia. 

É nesse momento que se introduz o DX, ou “Developer Experience” (Experiência de Desenvolvedores). O nome do termo é autoexplicativo, e tem ganhado espaço em diversas das ramificações que mencionamos anteriormente, inclusive em times de Plataforma. O grande propósito por trás do DX é o cuidado com as pessoas desenvolvedoras das diversas equipes existentes na empresa, buscando proporcionar para elas facilitadores, canais de suporte, automação de processos, dentre outras ferramentas que possam agregar positivamente em seus trabalhos. 

A nível de conceito, o DX entrelaça-se com naturalidade em muito daquilo que é proposto pelas equipes de Plataforma. Em um cenário ideal, um time de Plataforma se encarregaria não somente de cuidar dos produtos desenvolvidos a um nível macro, mas também de garantir que o ambiente de desenvolvimento de tais produtos seja amigável o suficiente. Com facilitadores construídos por uma equipe que cuida dos aspectos arquiteturais de um projeto, novos integrantes não teriam barreiras para executar suas tarefas diárias, sendo consistentemente apoiados pela própria plataforma na qual desenvolvem. 

Vale notar que existem diversas categorias de plataforma que podem integrar o DX, desde geradores automáticos de repositórios e projetos, até simples auxiliadores cotidianos. Outro ponto muito importante a se notar é que o DX não é algo que podemos simplesmente “instalar” em um repositório ou plataforma, e esperar que ele funcione – é algo orgânico, e cresce com a naturalidade com que a cultura do projeto se desenvolve. Quanto mais pessoas utilizam as plataformas, mais elas amadurecem, e mais específico o DX se torna. 

Aplicando o DX com consciência 

A prioridade dos times de Plataforma tem que ser, sempre, a plataforma. Portanto, a aplicação da filosofia do DX deve ser feita de forma consciente; neste nível, a ideia é não renunciar a itens imprescindíveis, como qualidade e padrões arquiteturais. Ao trabalhar em times de Plataforma já em execução, é comum encontrarmos times que discordam, estruturalmente, de decisões tomadas a nível do projeto, e buscam saídas ou facilitadores específicos. O ideal é encontrar o meio-termo: que a plataforma seja aberta para extensão e evolução, mas que não permita que ideias danosas sejam integradas somente por situações individualistas. 

O DX deve ser observado e aplicado no plural, sempre pensado no todo. Pessoas desenvolvedoras são, acima de tudo, peças fundamentais para entregas de software em empresas de tecnologia – portanto, é muito importante entendermos as reais necessidades e apoios que são necessários. De nada temos a ganhar se simplesmente integrarmos ferramentas que não serão utilizadas, ou que serão utilizadas somente por equipes distintas em momentos inexpressivos. 

A Inteligência Artificial e o futuro 

Recentemente, com o crescimento exponencial do uso de IA para auxílio nas tarefas corriqueiras em diversas esferas de atividades, não é de se surpreender que ela também já está, em grande parte, sendo utilizada para ajudar os desenvolvedores. Ferramentas como GitHub Copilot, ChatGPT, Google Codey, e Tabnine são alguns exemplos de tecnologias que, se bem aplicadas, podem ajudar muito nas tarefas de desenvolvedores. 

Talvez ainda não estejamos no ponto do avanço tecnológico em que possamos, simplesmente, delegar tarefas completas e complexas para esses auxiliadores artificiais – contudo, eles com certeza têm muito a contribuir, desde identificação de possíveis problemas e mapeamento de boas práticas que podem ser aplicadas, até a simples atividade de completar códigos em processo de digitação. É com os mínimos esforços que desenvolvedores sentem no dia a dia que os times de Plataforma devem se preocupar: aquela tarefa que, grandiosa em seu acréscimo à qualidade do produto entregue, se estiver incluída organicamente no ambiente do desenvolvedor, será fácil de aplicar. 

O que enxergamos para o futuro do ambiente de desenvolvimento é inerente a como os próprios editores de texto têm evoluído – adaptando-se às necessidades, integrando automações e facilitadores em cada iteração, umbilicalmente conectados ao simples ato de processar caracteres. Temos certeza de que a IA tem muito a contribuir, e acompanhamos esses aprimoramentos com olhares meticulosos das equipes especializadas da GFT. 

Uma boa experiência para todos 

Quando a Plataforma entra em congruência com as necessidades das equipes que a consomem, temos, de forma consolidada, algo que pode ser visto como grande utopia. Contudo, se trabalhados com devida consciência, é possível equalizarmos um trabalho de qualidade e uma arquitetura robusta com um ambiente de desenvolvimento de iguais características. Pessoas desenvolvedores entregam bem em um ambiente bem construído, levando à produtos cada vez com menos problemas e maiores agilidades. 

Conheça as soluções de Plataforma e DX da GFT!