Uma plataforma de computação é um sistema que pode ser usado para mais de um contexto. Desenvolvedores ganham agilidade quando usam plataformas, porque elas eliminam a necessidade de implementar tudo “do zero”. A equipe pode passar a focar no diferencial, nas inovações, e de maneira colaborativa. É impossível hoje em dia construir sistemas complexos e de larga escala sem usar plataformas e seu efeito multiplicador.
Um bom exemplo do uso de plataformas reutilizáveis foi o que aconteceu no Google nos primórdios da empresa. A equipe de engenharia tinha como missão criar uma máquina de busca, mas acabou indo muito além, construindo uma plataforma reutilizável com um sistema para revisão de código, um sistema genérico para testes, um sistema de deploy de código em produção, um sistema genérico de comunicação entre servidores, um arcabouço genérico de armazenamento de dados e sistemas de monitoramento de aplicações e servidores.
Ao elaborar tudo isso de maneira genérica, o Google conseguiu reaproveitar o que já tinha pronto como ponto inicial de novos produtos, como o YouTube. Nessa concepção de plataforma reutilizável, quando surge uma nova ideia, não é necessário reescrever tudo do zero, porque o básico de onde partir já está pronto.
Plataformas variadas
Um sistema de computação tem uma hierarquia de níveis de sistemas conectados uns com os outros, mais ou menos como se fossem peças de lego encaixáveis. O lego pode ser pensado como o componente mais básico das plataformas, e dá para construir qualquer coisa com ele. Uma vez que se monte uma plataforma bem básica é como se alguém tivesse feito o chassis de um veículo, porque, com esse chassis criado, é possível fazer ambulâncias, carros de fórmula 1, caminhões e tratores. Ou seja, é muito mais fácil reutilizar um chassis do que ter que construir do zero cada veículo que se deseja fazer. O mesmo vale para as plataformas.
Existem plataformas em vários níveis, desde plataformas básicas com perfil mais de engenharia a plataformas mais especializadas com perfil mais de negócios. Plataformas que servem para validar códigos ou botá-los em produção são plataformas de engenharia, e plataformas para gerenciamento dos dados de clientes ou dados da própria empresa são plataformas de negócio.
Um exemplo hipotético: imagine uma companhia interessada em uma aplicação para refeições prontas de cachorro. Ela contrata uma equipe para elaborar um site todo completo para isso, só que, pouco depois, a empresa decide expandir o negócio e criar uma outra aplicação, agora para banhos de cachorro. A organização agora tem dois negócios diferentes, com sites diferentes, possivelmente equipes e tecnologias diferentes, mas basicamente os mesmos clientes. Onde ficará armazenada a informação dos clientes? Está em um negócio ou está no outro? Quem é responsável por essas informações?
Para resolver essas questões, a empresa resolve criar então uma plataforma comum, de gerenciamento de informações de cliente. Com essa plataforma pronta, a companhia entende que precisa também de uma plataforma comum de agendamento. Assim, aos poucos, vai construindo plataformas reutilizáveis, que passam não só a ser usadas para todas as faces do negócio hoje como servirão também para outras vertentes que possam vir a ser desenvolvidas. E ela poderá contar ainda assim, se quiser, com plataformas de nuvem de terceiros como parte das plataformas para apoiar suas atividades.
Plataformas genéricas
Os serviços de computação em nuvem funcionam como plataformas genéricas terceirizadas, e podem ser de engenharia e também de negócios. Esses serviços rodam servidores espalhados em data centers pelo mundo, o que significa que, em vez de uma empresa precisar comprar e gerenciar um servidor para rodar os seus sistemas, a nuvem faz isso para ela – e para milhões de outros clientes. E o negócio da nuvem só é viável porque grandes corporações como a Microsoft, o Google ou a IBM conseguem conduzir o processo todo em escala, incluindo, entre outros:
- As pessoas que monitoram se os servidores estão funcionando conforme deveriam
- Os sistemas de gerenciamento de falhas de servidores
- Os sistemas de logística que têm como consertar ou substituir partes específicas de um servidor
- Os sistemas que garantem que os servidores rodem de uma maneira sustentável do ponto de vista energético (com baixa pegada de carbono)
Com esse suporte todo de monitoramento genérico à disposição, uma pequena startup ou mesmo uma companhia de médio porte podem se preocupar em somente desenvolver plataformas mais específicas, voltadas para o seu negócio, porque a outra parte mais genérica, que não é o diferencial do negócio mas é importante para o funcionamento atual e a expansão futura, está por conta de outra empresa (o serviço de nuvem).
Se a startup não quiser usar uma nuvem, precisa pensar em uma série de assuntos técnicos, como onde vai rodar seu sistemas, quem vai reiniciá-los se houver falhas, como manter os sistemas conectados. Isso é obviamente possível, porém implica em custos altos que não são ligados ao serviço ou produto do negócio em si.
Que tipo de plataformas construir in-house é uma decisão estratégica e intencional a cargo da liderança de engenharia de uma organização, que encontrará o balanço entre sistemas internos e serviços terceirizados. O essencial, no entanto, é pensar sempre em termos de plataformas que possam ser reutilizadas.
Plataformas de computação por trás de um negócio
Os diferentes horizontes de trabalho da equipe de engenharia de uma empresa de tecnologia sempre partirão de uma primeira ideia, que vai virar o primeiro sistema ou plataforma. Uma vez pronta, essa plataforma atrairá clientes e continuará a evoluir até que, em algum momento, novas exigências de negócio requeiram funcionalidades novas e até mesmo novos sistemas.
São as plataformas e o arcabouço de engenharia construído que fazem o diferencial do negócio, porque são eles que permitirão que existam o próximo sistema e o próximo negócio, assim como os processos de escalar e de melhorar os sistemas que já existem. É essa infraestrutura que possibilita que uma companhia possa, porventura, decidir operar em outro país ou em outro segmento de mercado sem precisar começar do zero.
Para ter vantagem competitiva, uma empresa de tecnologia precisa de plataformas e de arcabouços genéricos e reutilizáveis. Com eles prontos, os diferentes times têm tempo hábil para experimentar novidades, deixar a criatividade brotar, cometer erros e apostar em inovações transformadoras do ponto de vista de engenharia ou de negócios.
Às vezes uma inovação surge da curiosidade de uma pessoa ou de um grupo buscando respostas a questões aparentemente descoladas do seu trabalho diário. A inovação pode surgir também como resposta direta da constante procura por maior eficiência, algo que é bem presente no mundo corporativo e no cotidiano de uma empresa de tecnologia.
São as plataformas e o arcabouço de engenharia construído que fazem o diferencial do negócio, porque são eles que permitirão que existam o próximo sistema e o próximo negócio, assim como os processos de escalar e de melhorar os sistemas que já existem.

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.