Entrevistas

Peter McKee, Chefe de Relações de Desenvolvedores da Sonar – Série de Entrevistas

mm

Peter McKee é o Chefe de Relações de Desenvolvedores da Sonar, uma plataforma que resolve o desafio de trilhões de dólares de código ruim. A Sonar equipa os desenvolvedores e as organizações para alcançar sistematicamente um estado de Código Limpo, para que todo o código seja adequado para desenvolvimento e produção. Ao aplicar a metodologia de Código Limpo da Sonar, as organizações minimizam o risco, reduzem a dívida técnica e obtêm mais valor de seu software de forma previsível e sustentável.

O que inicialmente o atraiu para a ciência da computação?

Eu sempre fui interessado em computadores desde muito jovem. Mesmo quando eu estava perseguindo outra carreira, eu era continuamente atraído de volta para os computadores e a programação. Em um determinado momento, meu pai estava dirigindo uma empresa de aço na Virgínia e eles haviam perdido seu grupo de consultores. Como eu havia aprendido a programar quando era mais jovem, ele me convidou para trabalhar e construir sistemas para ele. Eu não sabia, honestamente, o que estava fazendo 100% no início, mas eu aprendi com livros e fazendo o trabalho no local, e me tornei completamente autodidata. Isso continuou a impulsionar meu interesse em codificação e computadores e realmente cimentou meu interesse em ciência da computação.

Pode explicar como você definiria o que é Código Limpo e por que é tão importante?

Já se disse por anos que o software vai comer o mundo, e eu diria que agora estamos no ponto em que é oficial – o mundo é construído em software e todas as empresas são efetivamente empresas de software. Na base de um bom software está a qualidade do código, pois o código está no núcleo de todo o software e dita seu comportamento e desempenho. É por isso que o Código Limpo — código que é consistente, intencional, adaptável e responsável — é tão importante. O código limpo é fácil de entender e alterar, opera suavemente em tempo de execução e não contém dívida técnica, tornando-o adequado para o propósito. O Código Limpo é o padrão que as organizações devem adotar para garantir que seu software continue a ser um ativo — e não uma responsabilidade — e é o principal motor para o sucesso dos negócios de hoje.

O Código Limpo beneficia equipes e organizações de todos os tamanhos e níveis de maturidade, e aumenta o valor do software como resultado. Alguns benefícios específicos são que ele:

  • Aumenta as habilidades de desenvolvimento — Os desenvolvedores podem detectar, entender e resolver problemas à medida que codificam, enquanto também aprendem as melhores práticas
  • Aumenta a eficiência e produtividade — Reduzindo o retrabalho contínuo e os ciclos de feedback longos, resultando em maior produtividade
  • Reduz o risco de reputação e negócios — O Código Limpo garante menos riscos de segurança, permitindo que as equipes abordem proativamente os problemas antes que eles atinjam a produção
  • Reduz a dívida técnica de nível de código — O Código Limpo aborda gradualmente a dívida da base de código sem a necessidade de uma grande reformulação e interrupção da aplicação
  • Aumenta a velocidade de desenvolvimento de software — Os padrões de Código Limpo e os fluxos otimizados melhoram a velocidade DevOps, promovendo um tempo de mercado mais rápido

Pode discutir a importância da consistência e estrutura no código, e quais são alguns exemplos de código consistente e limpo?

A qualidade do código consistente é algo que todo gerente ou diretor técnico visa manter. A consistência é crucial quando se trata da qualidade do código, pois a consistência leva à previsibilidade. É escrito de uma maneira uniforme e convencional — todo o código parece semelhante e segue um padrão regular, mesmo com vários contribuintes em diferentes momentos. O código consistente é formatado, convencional e identificável. Quando os padrões de codificação consistentes são adotados, os desenvolvedores se tornam mais eficientes e são capazes de atender às expectativas de entrega com velocidade e precisão.

Pode discutir a importância do código que pode lidar com condições inesperadas, e por que isso não deve ser negligenciado?

Os desenvolvedores estão sempre tentando antecipar e se preparar para ocorrências inesperadas durante o processo de design e desenvolvimento, mas isso não pode ser prevenido em todos os casos. Condições inesperadas podem surgir devido a uso indevido involuntário ou ataques intencionais. Essas condições inesperadas podem introduzir inadvertidamente vulnerabilidades de segurança que os atacantes podem explorar. É por isso que os desenvolvedores devem sempre buscar melhorar a qualidade e a estabilidade do seu código e testar condições inesperadas. Ao seguir uma abordagem de Código Limpo como Você Codifica, as equipes podem acelerar melhor as novas funcionalidades, evitar custos de retrabalho desnecessários e promover o crescimento e retenção de talentos. O Código Limpo promove segurança, manutenção e confiabilidade, e pode permitir que os desenvolvedores antecipem e lidem com condições inesperadas de forma mais eficaz e restaurem o software mais rapidamente.

Pode discutir os benefícios de usar Inteligência Artificial Geradora para geração de código?

Incorporar a IA no ciclo de vida do desenvolvimento de software tem seus benefícios, como permitir que os desenvolvedores trabalhem de forma mais eficiente. De fato, a GitHub pesquisa encontrou que os desenvolvedores podem concluir tarefas mais de 50% mais rápido usando a IA. A Inteligência Artificial Geradora também pode gerar código mais rapidamente, e, por sua vez, tirar a carga de tarefas mais tediosas e rotineiras — como documentação ou geração de trechos de código — do prato deles, para que eles possam se concentrar em trabalhos mais valiosos e gratificantes para resolver problemas mais complexos. No entanto, é fundamental que o código seja verificado contra os padrões de Código Limpo para garantir que o código seja seguro, confiável e mantido.

Quais são alguns dos armadilhas e riscos potenciais do código gerado?

Embora a IA possa liberar o tempo dos desenvolvedores para trabalhar em projetos de maior valor e aumentar a produtividade, isso não vem sem riscos. É por isso que a demanda por desenvolvedores não irá desaparecer na era da IA. Porque as ferramentas de Inteligência Artificial Geradora podem gerar muito código rapidamente, há um potencial para erros. Aqui estão alguns armadilhas específicas:

  • Responsabilidade: A IA reduz a capacidade de responsabilizar as pessoas pelo código criado, o que pode tornar mais difícil resolver ou abordar problemas.
  • Vulnerabilidades: Porque está usando informações em grande parte crowdsourced, não há garantia de que o código produzido seja seguro ou limpo. Pode haver bugs ou problemas de segurança que podem colocar os negócios em risco.
  • Qualidade: A IA não verifica a qualidade, e apenas porque é gerada pela IA não significa que seja eficiente ou de alta qualidade.
  • Nenhum contexto: Perder o elemento humano naturalmente significa que você perde o contexto de um problema ou projeto. O código gerado pela IA deve ser revisado para garantir que ele está fazendo o trabalho completo.

Quando os desenvolvedores adotam uma abordagem de Código Limpo como Você Codifica com seu código — humano ou gerado pela IA — eles podem garantir que o código seja adequado para desenvolvimento e produção e atenda aos padrões de qualidade de sua organização.

Quais são algumas outras variáveis que devem ser consideradas no código adequado para produção?

Os desenvolvedores que escrevem código que adere aos princípios de Código Limpo podem ter certeza de que seu código é adequado para desenvolvimento e produção, o que significa que o código segue certas características:

  • Consistente: O código deve ser consistente e seguir um estilo comum. Mesmo que o código seja trabalhado por vários desenvolvedores diferentes ao longo do tempo, ele deve ter uma aparência semelhante e seguir padrões estabelecidos anteriormente.
  • Intencional: O código intencional deve ser lido como se tivesse sido escrito com atenção e cuidado para transmitir seu propósito; ele deve ter apenas uma interpretação disponível.
  • Adaptável: O código adaptável é segmentado e organizado de uma maneira que o torna mais fácil de gerenciar e ver as relações entre cada linha de código. Isso torna o código estruturado para evolução fácil e confiante.
  • Responsável: O código, e seus desenvolvedores, devem ser conscientes de suas obrigações éticas em relação aos dados e seu potencial impacto nas normas sociais. O código não deve apresentar um risco contínuo de causar danos a terceiros de forma involuntária.

Pode discutir algumas das ofertas variadas da Sonar e como elas ajudam os codificadores a construir código responsável, seguro e de alta qualidade de forma rápida e sistemática?

Através de nossos analisadores de ponta, a Sonar identifica problemas de codificação de forma abrangente e recomenda soluções com ciclos de feedback curtos, enquanto educa o desenvolvedor no contexto, permitindo que as organizações construam código responsável, seguro e de alta qualidade de forma rápida e sistemática. Os elementos principais da solução da Sonar são SonarLint, SonarQube (autogerenciado; de código aberto), e SonarCloud (SaaS), com cobertura extensa que suporta mais de 30 linguagens de programação, estruturas, e infraestruturas, 11 IDEs, e mais de 5.000 regras de codificação e linguagem específicas.

O SonarLint, uma extensão do IDE, fornece a primeira linha de verificações para encontrar problemas em tempo real desde o momento em que o código é escrito. Ele captura uma grande parte dos problemas à frente e ajuda os desenvolvedores a descobrir e corrigir erros como um verificador ortográfico para código. O SonarQube e o SonarCloud, as ferramentas de análise de código estático da Sonar, inspecionam e analisam continuamente a base de código, com integração do SonarLint. Usando portas de qualidade para determinar se o código atende aos padrões definidos de qualidade, segurança e confiabilidade para produção, o SonarQube e o SonarCloud inspecionam o código para bugs, vulnerabilidades, pontos quentes de segurança e cheiros de código.

Combinando nossa solução com nossa metodologia de Código Limpo como Você Codifica — uma abordagem que segue padrões estabelecidos para manter o código novo, adicionado ou editado limpo — os desenvolvedores e as organizações são habilitados a entregar Código Limpo e remediar o código existente organicamente, para que eles possam se concentrar em novos projetos inovadores que impulsionam o valor dos negócios

Como a Sonar ajuda a garantir que o código seja compatível e atenda aos padrões da indústria?

A Sonar ajuda os desenvolvedores a obter feedback imediato e contextualizado, destacando problemas onde eles estão na base de código, dentro do fluxo de trabalho de desenvolvimento com base em anos de experiência em analisadores de linguagem. Os desenvolvedores obtêm acesso a explicações claras sobre por que um problema ocorre e como remediá-lo rapidamente, bem como recursos adicionais para aprendizado mais aprofundado. Temos educação construída em todo o fluxo de trabalho, desde o IDE até o CI/CD. Por exemplo, a Sonar tem regras específicas MISRA C++ 2023 disponíveis no SonarLint para ajudar as equipes a criar código que esteja melhor preparado para a certificação eventual. Ele oferece orientação de codificação, explicando o porquê de um problema sinalizado e como corrigi-lo, para garantir que o código sendo escrito seja compatível com o MISRA.

Qual é sua visão para como a IA transformará a codificação no futuro?

Acho que a IA continuará a entregar grande valor ao abordar a queima de desenvolvedores. Embora eu não acredite que a IA possa descarregar o pensamento e o toque humano dos desenvolvedores, acredito que mesmo em alguns meses a partir de agora veremos um conjunto completamente novo de GPTs — sem mencionar o que alguns anos a partir de agora parecerá. Acredito que os desenvolvedores usarão a IA como algo simples e comum como procurar algo no Google como um atalho. Há muito a ser explorado sobre o uso da IA, mas devemos considerar o elemento humano à frente para verificar os pontos negativos da IA. Há um potencial transformador para o desenvolvimento de software, mas não devemos deixar que ele corra sem verificação — especialmente quando os negócios digitais de hoje dependem do software que os sustenta.

Obrigado pela grande entrevista, leitores que desejam aprender mais devem visitar Sonar.

Antoine é um líder visionário e sócio-fundador da Unite.AI, impulsionado por uma paixão inabalável por moldar e promover o futuro da IA e da robótica. Um empreendedor serial, ele acredita que a IA será tão disruptiva para a sociedade quanto a eletricidade, e é frequentemente pego falando sobre o potencial das tecnologias disruptivas e da AGI.

Como um futurista, ele está dedicado a explorar como essas inovações moldarão nosso mundo. Além disso, ele é o fundador da Securities.io, uma plataforma focada em investir em tecnologias de ponta que estão redefinindo o futuro e remodelando setores inteiros.