uReview: A Revolução da Revisão de Código com Inteligência Artificial na Uber

A Uber desenvolveu o uReview, uma plataforma de revisão de código baseada em IA, para enfrentar os desafios das revisões tradicionais em um ambiente de desenvolvimento em rápida evolução.

A revisão de código é uma prática essencial no desenvolvimento de software, garantindo a confiabilidade e segurança do código em meio a milhares de alterações semanais. No entanto, com o aumento da complexidade dos serviços, as revisões tradicionais enfrentam novos desafios.

Os revisores estão sobrecarregados com o volume crescente de código gerado por ferramentas de desenvolvimento assistidas por IA, o que limita seu tempo para identificar bugs sutis e problemas de segurança. Essa situação pode resultar em erros não detectados, ciclos de feedback mais lentos e, em última instância, incidentes de produção e desperdício de recursos.

Para enfrentar esses desafios, a Uber desenvolveu o uReview, uma plataforma de revisão de código que integra um segundo revisor de IA ao processo. O sistema é baseado em um modelo modular e em várias etapas, chamado Commenter, que identifica bugs funcionais, problemas de tratamento de erros, vulnerabilidades de segurança e conformidade com os padrões de codificação internos.

Além disso, o Fixer sugere alterações de código em resposta aos comentários, sejam eles gerados por humanos ou pela IA.

A importância do uReview reside na sua capacidade de aumentar a eficiência das revisões de código, minimizando o esforço humano e proporcionando feedback de alta qualidade em tempo hábil. O sistema atualmente analisa mais de 90% das alterações semanais na Uber, com uma taxa de utilidade de 75% dos comentários gerados, o que demonstra sua eficácia em melhorar o processo de revisão.

O uReview enfrenta um dos principais desafios da revisão de código assistida por IA: a taxa de falsos positivos. Comentários gerados incorretamente podem prejudicar a percepção dos engenheiros sobre a precisão da ferramenta. Para mitigar esse problema, o sistema implementa um processo de filtragem em várias camadas, que avalia a qualidade de cada comentário e atribui uma pontuação de confiança, garantindo que apenas feedbacks de alta qualidade sejam apresentados aos desenvolvedores.

Além disso, o uReview é projetado para evoluir continuamente. Ele opera em seis repositórios monolíticos da Uber, revisando cada commit em uma média de quatro minutos. Essa agilidade permite que os desenvolvedores abordem problemas antes que o código chegue a um revisor humano, economizando cerca de 1.500 horas por semana, o que equivale a quase 39 anos de trabalho de desenvolvedores anualmente.

A arquitetura modular do uReview permite que cada assistente se concentre em uma classe específica de problemas, como bugs, convenções de codificação e vulnerabilidades de segurança. Essa especialização não apenas melhora a precisão, mas também permite que a plataforma se adapte rapidamente às necessidades dos desenvolvedores, incorporando feedback em tempo real para ajustes contínuos.

Os resultados do uReview superam os de revisores humanos, com uma taxa de 65% de comentários abordados em comparação com apenas 51% dos comentários escritos por humanos. Essa diferença significativa destaca a eficácia do sistema em fornecer feedback relevante e acionável, reduzindo a carga de trabalho dos engenheiros e permitindo que eles se concentrem em tarefas mais complexas, como design de sistemas e decisões arquitetônicas.

A Uber optou por desenvolver o uReview internamente em vez de utilizar ferramentas de terceiros, devido a limitações de integração e problemas de precisão observados em soluções externas. A plataforma foi projetada para se integrar perfeitamente aos sistemas internos da Uber, garantindo que os desenvolvedores tenham acesso a um feedback de alta qualidade que se alinha às suas práticas de codificação específicas.

O uReview não apenas representa um avanço tecnológico, mas também reflete uma mudança na abordagem da Uber em relação à qualidade do código. A automação é vista como uma parceira escalável que complementa a experiência humana, em vez de substituí-la. Essa filosofia é fundamental para a adoção bem-sucedida da IA no desenvolvimento de software.

O futuro do uReview inclui a expansão do suporte a categorias de revisão mais ricas, como desempenho e cobertura de testes, além do desenvolvimento de ferramentas focadas no revisor para ajudar na compreensão do código e na identificação de riscos potenciais. Essas iniciativas visam aprimorar ainda mais a revisão assistida por IA, mantendo os engenheiros no controle do processo.

Em resumo, o uReview é uma ferramenta inovadora que transforma a maneira como a Uber aborda a revisão de código. Com uma taxa de utilidade consistente acima de 75% e milhares de horas de desenvolvimento economizadas anualmente, o uReview se estabelece como uma solução técnica confiável e uma experiência de produto valiosa.

As lições aprendidas com a implementação do uReview também oferecem insights valiosos sobre a implantação de IA generativa, destacando a importância da precisão, da transparência e do design de sistemas que incentivem o feedback.

A adoção do uReview é um passo significativo para a Uber, que busca não apenas melhorar a eficiência operacional, mas também garantir a qualidade e segurança do seu código em um ambiente de desenvolvimento em constante evolução. À medida que a tecnologia avança, a Uber continua a explorar novas maneiras de integrar a IA em seus processos, solidificando sua posição como líder em inovação no setor de tecnologia.