Migração eficiente: Como migrar códigos de ambientes passando pelo Fortify com uma ferramenta IA contextualizada

Capa do artigo sobre migração de código com IA com fortify. Na imagem, temos duas mãos sob o teclado de um notebook, que exibe códigos. A foto tem uma coloração azulada.
Descubra como realizamos a migração de códigos com IA para Fortify, otimizando segurança e eficiência com 300% mais rapidez na entrega.

A migração de códigos para novos ambientes é um desafio constante para as equipes de desenvolvimento, especialmente quando envolve ferramentas de análise de segurança como o Fortify. Recentemente, eu e meu time enfrentamos a tarefa de migrar nossos projetos para o Fortify, um processo que revelou uma série de apontamentos críticos e exigiu um esforço significativo. 

No entanto, ao integrar a StackSpot AI – ferramenta de Inteligência artificial contextualizada – em nosso fluxo de trabalho, conseguimos não apenas acelerar a migração, mas também otimizar nosso código para atender às diretrizes de segurança e eficiência do Fortify. 

Este artigo detalha nossa jornada, os desafios enfrentados e como a StackSpot AI transformou nosso processo de migração, resultando em uma melhoria significativa na eficiência e qualidade do nosso código. Garantindo um aumento de 300% na velocidade de entrega para finalizar essa migração.

Desafio da Migração

Durante a última release, enfrentamos o desafio de migrar 18 projetos, entre projetos de desenvolvimento front-end e back-end, da estrutura do cliente para o Fortify. 

O Fortify é uma ferramenta de mercado que faz análise de código, buscando a eficiência, qualidade e segurança. Esta ferramenta bloqueia o build do projeto caso haja apontamentos críticos no código. Por isso, foi necessário adequar nossos códigos às regras do Fortify para fazer a migração.

Durante este processo nos deparamos com uma série de apontamentos críticos que exigiram nossa atenção e esforço. A complexidade era tamanha que levamos três sprints inteiras (seis semanas) para migrar seis projetos, um reflexo direto da quantidade de questões que precisavam ser resolvidas.

Precisávamos de uma forma mais rápida e eficiente de fazer as correções necessárias no código para completar a migração.

A virada com a StackSpot AI

O cenário mudou quando implementamos a StackSpot AI em nosso fluxo de trabalho. A StackSpot AI é uma ferramenta de AI contextualizada capaz de usar seu contexto, bases de conhecimento e decisões tecnológicas para gerar sugestões mais assertivas e de alta qualidade.

Com essa ferramenta, conseguimos não apenas acelerar o processo de migração, mas também melhorar significativamente a eficiência de nossa equipe.

Nós utilizamos a StackSpot AI para corrigir os apontamentos feitos pelo Fortify, executando melhorias e ajustes de códigos. A cada apontamento de classe que era gerado, pegavamos o conteúdo e pedíamos para a StackSpot AI melhorar o código de acordo com o que era apontado no Fortify, o que nos possibilitou a rapidez na resolução dos ajustes. 

Conheça como a StackSpot AI pode transformar seu fluxo de trabalho.

Exemplo de código antes e depois da otimização

Antes da otimização com a StackSpot AI, nosso código apresentava várias ineficiências e violações das diretrizes do Fortify. Por exemplo:

1public class Example {
2    private String data;
3
4    public Example(String data) {
5        this.data = data;
6    }
7
8    public void processData() {
9        if (data != null && !data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15}

Após a otimização com a StackSpot AI, o código foi melhorado para atender às diretrizes do Fortify e se tornou mais eficiente, notadamente com a imutabilidade do campo data, a eliminação de verificações redundantes de nulidade e a inicialização segura do campo data. Essas mudanças resultam em um código mais seguro, eficiente e fácil de manter.

1public class Example {
2    private final String data;
3
4    public Example(String data) {
5        this.data = data != null ? data : "";
6    }
7
8    public void processData() {
9        if (!data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15}

Exemplo de prompts usados para reescrita de código

Mas como fizemos para a StackSpot saber o que executar? Com Engenharia de Prompt. A seguir eu vou trazer alguns exemplos.

Prompt 1: Verificação de Nulidade e Eficiência

A seguir veremos um exemplo de um código antes da otimização feita pela StackSpot AI.

1public class Example {
2    private String data;
3
4    public Example(String data) {
5        this.data = data;
6    }
7
8    public void processData() {
9        if (data != null && !data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15}

Depois de passar esse código pelo Fortify, ele apontou diversos pontos de fragilidade de segurança no código. Para solucionar esses problemas, e por termos analisado que eram mais simples e pontuais, optamos por não criarmos um Quick Command e  inicialmente criamos um Knowledge Source com uma documentação base do Fortify. Em um segundo momento iremos estruturar melhor com mais snippets de código, nesse caso utilizamos este prompt na StackSpot AI:

“Melhore o código a seguir para eliminar verificações redundantes de nulidade e garantir conformidade com as diretrizes do Fortify:”

A StackSpot AI sugeriu esse código otimizado: 

1 public class Example {
2    private final String data;
3
4    public Example(String data) {
5        this.data = data != null ? data : "";
6    }
7
8    public void processData() {
9        if (!data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15 }

Prompt 2: Imutabilidade e Segurança

Um segundo exemplo de prompt utilizado no caso de apontamentos do Fortify sobre imutabilidade de código e segurança na inicialização de variáveis, é mostrado a seguir:

Antes da Otimização:

1 public class Example {
2    private String data;
3
4    public Example(String data) {
5        this.data = data;
6    }
7
8    public void processData() {
9        if (data != null && !data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15}

Prompt Utilizado:

“Reescreva o código abaixo para garantir que o campo 'data' seja imutável e que o código esteja em conformidade com as diretrizes de segurança do Fortify:”

Após a Otimização:

1 public class Example {
2    private final String data;
3
4    public Example(String data) {
5        this.data = data != null ? data : "";
6    }
7
8    public void processData() {
9        if (!data.isEmpty()) {
10            System.out.println("Processing: " + data);
11        } else {
12            System.out.println("No data to process");
13        }
14    }
15 }

Resultados impressionantes

Graças à StackSpot AI, o que antes parecia uma tarefa interminável foi concluído em menos de duas sprints. Conseguimos finalizar e implantar os projetos com uma rapidez impressionante, superando as expectativas e estabelecendo um novo padrão de eficácia em nossas operações.

Lembra que antes da adoção do AI, levamos três sprints (seis semanas) para ajustar todos os apontamentos de seis projetos? Pois, depois da adoção da StackSpot AI no time, em duas sprints (quatro semanas) finalizamos outros 12 projetos restantes do total da migração prevista, com um aumento de 300% na velocidade de entrega.

Além disso, a StackSpot AI nos ajudou a otimizar o código fonte, garantindo que ele estivesse em conformidade não apenas com as diretrizes do Fortify, mas também mais limpo e eficiente.

Benefícios da otimização do código

Como eu comentei anteriormente, as vantagens de adotar a StackSpot AI não foram apenas concluir a migração, mas sim obtivemos um código mais otimizado. A seguir, eu destaco esses benefícios para o código:

  • Conformidade com diretrizes: O código foi ajustado para atender às regras do Fortify, evitando bloqueios no build.
  • Eficiência: O código se tornou mais eficiente, com menos redundâncias e melhor uso de recursos.
  • Manutenibilidade: O código otimizado é mais fácil de manter e evoluir, reduzindo o tempo e esforço necessários para futuras modificações.
  • Cumprimento de prazo: Com o ganho de velocidade obtido, conseguimos atingir o objetivo da entrega de toda a migração no prazo, sem impactar o time em outras entregas. 

Conclusão

Este case de sucesso é um testemunho do poder da automação e da inteligência artificial no aprimoramento dos processos de desenvolvimento de software. Com a StackSpot AI, transformamos um obstáculo em uma oportunidade de crescimento e aprendizado, estabelecendo novos padrões de excelência para futuras migrações.

Se você também enfrenta desafios semelhantes em seus projetos, considere a adoção de ferramentas de automação e inteligência artificial como a StackSpot AI. 

Compartilhe suas experiências e impressões nos comentários abaixo ou nas redes sociais.

Consuma inovação,
comece a transformação

Assine nosso boletim informativo para se manter atualizado sobre as práticas recomendadas mais recentes para aproveitar a tecnologia para gerar impacto nos negócios

Related posts