As plataformas de engenharia e de negócio disponíveis no mercado para empresas de tecnologia estão cada vez mais genéricas e melhores, mas não resolvem 100 por cento dos problemas, e precisam ser adaptadas. Apesar da enorme versatilidade e utilidade dos serviços em nuvem, seria ilusão achar que a nuvem tem tudo o que uma organização precisa para sustentar aspectos técnicos do negócio e que basta assinar o contrato que está tudo resolvido.
O objetivo dos serviços de nuvem é fornecer plataformas de computação básicas para que os arcabouços computacionais não precisem ser escritos do zero. Mesmo usando esses serviços, a empresa tem que ter o seu time de engenharia para:
- Cuidar de toda a interface
- Checar se a comunicação com a nuvem está funcionando direito
- Verificar se a utilização da nuvem pela empresa está rodando do modo mais eficiente possível
É mais ou menos assim: o chassis de um veículo vem pronto, mas alguém tem que conectá-lo com o resto do carro e conferir que ele anda de fato de maneira eficiente e que não se solta em algum momento posterior.
O líder de tecnologia tem que entender o que é commodity para a empresa e o que é diferencial de negócio, e onde e como vai distribuir seus recursos humanos e financeiros para tocar cada uma dessas partes com um pensamento intencional.
É mais ou menos assim: o chassis de um veículo vem pronto, mas alguém tem que conectá-lo com o resto do carro e conferir que ele anda de fato de maneira eficiente e que não se solta em algum momento posterior.
Plataformas prontas e plataformas novas
Plataformas de atendimento ao cliente como o Salesforce resolvem o gerenciamento de clientes de uma empresa de maneira bem genérica, porque quem as contrata consegue contactar o cliente ou gerenciar um ticket de reclamação através do sistema delas – que fica parecendo seu –, e ainda conta com tudo guardado ali. Há também empresas com plataformas de gerenciamento de RH com esse mesmo perfil de soluções genéricas para apoiar qualquer negócio.
Uma vez que esses assuntos estão resolvidos, entra o outro lado, que é o que a equipe interna tem que fazer para o diferencial competitivo do negócio, aquilo que só a própria companhia sabe criar e para onde deve se voltar com foco especial a atenção dos times de engenharia.
A maioria das empresas de tecnologia não vai – e nem tem motivo para isso – competir com a Amazon, a Microsoft ou o Google, mas elas têm que buscar um espaço distinto do que já é desenvolvido por essas gigantes e inovar nessa direção — normalmente na parte de negócios. Existem plataformas muito específicas de engenharia, como, por exemplo, alguma que usasse inteligência artificial de uma maneira inovadora para prever falhas de servidores. Uma plataforma assim provavelmente acabaria sendo aproveitada pelos grandes provedores. E nesse caso o diferencial competitivo da empresa seria uma inovação de engenharia.
A organização e a priorização do trabalho dos engenheiros devem estar voltadas para aquilo que só a sua companhia tem como fazer extremamente bem. Cada empresa tem que entender onde alocar recursos de engenharia para manutenção e integração de plataformas básicas e onde concentrar esforços na inovação, na criação e na implementação de novas plataformas.
As plataformas, e principalmente as plataformas mais internas, tendem a ser desacopladas e não visíveis para os clientes. É comum haver um grupo de engenheiros trabalhando em aplicações para os usuários no topo das plataformas versão 1, enquanto outro grupo já está pensando nas plataformas versão 2. Melhorar uma plataforma da versão 1 para a 2 pode ser muito complicado e envolver vários aspectos técnicos.
O ideal é que tudo que é visível para os clientes, o que se trata de business as usual e de receita para a empresa, seja feito sobre um conjunto de plataformas, e aí é possível trocar as rodas do carro com o carro andando, sem impactar o serviço do topo das plataformas, enquanto a base está sendo ajustada para ganhar mais escala e mais eficiência.
Normalmente o trabalho com as plataformas é mais a longo prazo, e o trabalho de entregar uma versão nova de alguma funcionalidade para o cliente é mais a curto prazo, então, quando se considera a organização de times, é importante elaborar estratégias mais controladas e com ciclos menores, trimestrais ou semestrais, de entregas para o que é visível para o cliente, e outras com ciclos maiores e datas menos rígidas para plataformas internas.
A organização deve se programar para lidar com o momento de implementação dessas novas versões de plataformas para minimizar os eventuais imprevistos e erros. A ideia geral é, sempre que possível, evitar grandes mudanças de uma vez e procurar executar, ao longo do tempo, mudanças incrementais com potencial de causar apenas microincidentes, em vez de macroincidentes. Dependendo do caso, dá para colocar em produção uma atualização para apenas uma fatia da população, e não todos os usuários.
Pensando nas camadas mais profundas de uma plataforma, nas camadas mais horizontais de sistemas de engenharia, qualquer pequeno problema ali impacta as outras, enquanto um problema na camada mais superior e específica é menos contagioso para o todo. As plataformas genéricas são ótimas para resolver questões complexas para vários times e têm um fator multiplicador grande, mas, em compensação, se falham, têm um impacto igualmente multiplicador de complicações.
Uma plataforma de desenvolvimento onde todo o código da empresa é escrito e testado é um caso típico. Se o sistema de avaliar e testar código não está funcionando, isso vira um problema gigante, portanto ele precisa ser cuidadosamente elaborado (e, de preferência, contar com um plano B).

Marcus Fontoura
Marcus Fontoura é atualmente technical fellow na Microsoft e CTO do Azure Core. Iniciou a carreira na área de pesquisa da IBM em 2000, depois de concluir o doutorado na PUC-Rio e o pós-doutorado na Universidade de Princeton, nos Estados Unidos. Teve passagens pelo Yahoo! e pelo Google, e promoveu uma transformação digital na fintech brasileira StoneCo, onde atuou como CTO. É autor do livro Tecnologia Intencional e publisher da plataforma com o mesmo nome.