Dores de Escala
Alice é uma empresa de Tecnologia cujo o propósito é tornar o mundo mais saudável. E como tal, resolve seus principais problemas pensando primariamente em soluções baseadas em Tecnologia. Desde o início, além dos sistemas que alimentam diretamente nossos produtos, construímos ferramentas que poderiam ajudar o trabalho de pessoas engenheiras no geral.
Por exemplo, lá nos tempos primórdios da Alice, construímos o que chamamos de Data Layer, uma camada de abstração de acesso a dados que garante privacidade e segurança para todas as aplicações. Iniciamos a resolução de questões super importantes pro nosso contexto de saúde: privacidade e segurança. Esse e outros projetos foram criados de forma orgânica. Nós identificávamos um problema na Engenharia, e então pessoas se juntavam organicamente pra pensar numa solução, projetavam, implementavam e colocavam no ar.
Entretanto, com o crescimento acelerado da empresa e com a necessidade de subir a barra de qualidade de Engenharia no mesmo ritmo, essa estratégia começou a apresentar problemas.
- Percebemos que nesse modelo não havia um time para dar manutenção a esses projetos ou iterarem de acordo com novos requisitos. As iniciativas eram interpretadas na perspectiva de projetos pontuais e não de produtos internos e suas complexidades (clientes, necessidades de evolução e de negócio).
- Além disso, alterações macro eram difíceis de serem priorizadas, já que a cada dia ficavam mais complexas e necessitavam de grande esforço de pessoas que, dentro do contexto de seus times, precisavam negociar algum tempo extra para desenvolver novos projetos cross.
- Com nossa nova escala, também aumentamos a complexidade dos sistemas e o número de novas pessoas engenheiras, tornando “conhecimento tribal” e qualidade mais difícil de se reproduzir.
Diante deste cenário de crescimento rápido pós Series C, percebemos que precisávamos dar o próximo passo na nossa organização de Engenharia para atacar nossos desafios: os times de Plataforma.
Como é Plataforma na Alice?
O que é um time de Plataforma?
Times de Plataforma são geralmente voltados para uma missão técnica de empoderar o time de Engenharia a ser consistentemente eficaz, construindo produtos que abstraem os detalhes técnicos (requisitos não funcionais) e que permitem o foco no negócio. Exemplos desses produtos aqui na Alice são:
- Data Layer: como comentado anteriormente, uma aplicação que abstrai quesitos de privacidade e segurança na persistência de dados;
- Design Systems: um ecossistema de repositórios de estilos, componentes e padrões predefinidos e reutilizáveis que ajuda os times a criarem experiências consistentes e escaláveis com mais velocidade e fica acessível por meio de código e ferramentas de design.
Mas como Plataforma resolve o nosso problema?
Com um time focado nas iniciativas cross Engenharia, conseguimos ter a especialização e tempo necessários para construir e evoluir produtos que potencializam os outros times de Tecnologia.
- Somos essenciais para escalar rapidamente: sabemos que padrões e frameworks estabelecidos facilitam a escala de conhecimento e qualidade na Engenharia. Além disso, com um dono claro para requisitos não funcionais, que são críticas para o funcionamento de qualquer produto, conseguimos garantir que todas as equipes cumpram os mesmos requisitos consistentemente.
- Melhoramos a eficiência organizacional: reduzimos a duplicação de trabalho e ajudamos na padronização de abordagens (nos casos onde a padronização é um benefício para a organização). Além disso, como donos dos produtos, construímos software mais manutenível e escalável.
- Agilizamos a entrega de novos produtos: além de remover conflitos entre squads e fornecer serviços que agilizam o desenvolvimento, podemos ajudar quando as equipes de produto estão introduzindo uma nova tecnologia. A equipe da plataforma pode incubar essa nova tecnologia e, em seguida, ajudá-la a ser adotada por outros squads. {plataformização}
Um pouco mais sobre nós
Na Alice, a visão do nosso time é ser o alicerce para a construção de soluções de Tecnologia que aceleram a entrega de saúde no mundo. Para chegarmos a esse objetivo, temos quatro pilares estratégicos:
- Construção de soluções de forma colaborativa com os times: entendemos que só conseguimos ser pertinentes construindo as ferramentas certas se estivermos muito próximos dos times de Tecnologia entendendo suas dores. Ao mesmo tempo, somos o alicerce para construção de Tecnologia com qualidade, então estamos sempre perto dos times para ajudá-los em suas demandas e entendermos como podemos subir a barra de Engenharia. Em um caso recente, por exemplo, de construção da nova arquitetura Mobile, entendemos junto a todos os times impactados quais casos de uso tinham dificuldades na arquitetura antiga e construímos em conjunto um diagnóstico dos problemas correntes.
- Antecipação de problemas e pensamento de longo prazo: como um alicerce sólido, desenvolvemos soluções que são robustas no longo prazo. Para chegar a esse objetivo consistentemente, utilizamos um processo diligente de entendimento dos problemas futuros e tomada de decisão. Por exemplo, no caso da nova arquitetura Mobile, além do diagnóstico, projetamos prováveis casos de uso futuros (funcionalidades mais complexas, interações entre diferentes módulos ou até suporte a funções nativas mais recentes), dando insumos para decisões fundamentadas.
- Abrangência na resolução de problemas priorizando padronização e plataformização: um problema só deve ser prioridade para o time de Plataforma se impactar o alicerce de Tecnologia. Portanto, focamos em soluções abrangentes que podem ser padronizadas ou plataformizadas para a utilização em diferentes contextos. Nosso backend, por exemplo, é bastante padronizado: a quase totalidade das aplicações segue a mesma arquitetura e tecnologia (Kotlin) num mesmo repositório (monorepo). Num caso onde precisamos melhorar a utilização de recursos de uma aplicação, conseguimos com pouco esforço estender essa melhoria para todas as outras as aplicações da empresa.
- Inovação: para construir um alicerce que acelera a entrega de saúde no mundo precisamos buscar novas soluções, dado que queremos obter resultados diferentes do que já foi feito no passado. A inovação é o único caminho para chegar no nosso objetivo e temos trilhado essa estrada desde a criação do nosso Data Layer, que, diferente de outras soluções de mercado, torna controle de acesso a dados e identificação e de-identificação de dados, padrões em todos os sistemas da Alice.
Nosso time tem menos de 6 meses, mas já atuamos nas nossas três frentes principais: Development Experience, Shared Systems e Quality. Algumas de nossas iniciativas recentes:
- Design System: pensando em DevEx e na padronização de comportamentos, construímos o core do produto, desenvolvemos e aplicamos nossos primeiros componentes Mobile
- Ferramentas de Desenvolvimento local: pensando em DevEx, construímos uma nova forma muito fácil de desenvolver localmente na nossa arquitetura de microsserviços utilizando um ambiente remoto
- Sherlock: pensando em escalar Privacidade, construímos um sistema interno que permite, em casos específicos, acesso a dados PII com rastreabilidade
- Observabilidade no frontend: pensando em escalar estabilidade, integramos nossa plataforma de observabilidade (tracing, alertas, etc) com a ferramenta de monitoramento do Datadog
- Data Layer: estamos desenvolvendo novas funcionalidades no nosso sistema compartilhado (que não tínhamos tempo de evoluir no passado) com foco em estabilidade, performance e escala da aplicação
- Arquitetura Mobile: como foco em qualidade, estamos construindo uma nova arquitetura de software que prepare o nosso aplicativo Mobile para os próximos anos de Alice
E este é só o começo… temos planos ambiciosos de sermos este alicerce de Tecnologia em saúde mundial e ainda temos diversas áreas inexploradas (DevTools, Testes de alta complexidade, Microfrontends, etc.)
Que tal fazer parte desse time?
Estamos buscando pessoas que topem o desafio de transformar a saúde no Brasil através da tecnologia. Clica aqui para saber mais das vagas que temos em aberto!