#blog

Manutenção e desenvolvimento de software em tempos de IA

Em 2018, o Paulo Urgal, sócio e diretor de Tecnologia da Informação da Caiena, escreveu o texto "Como estar preparado para o viajante do tempo?" para o Blog da Caiena. Ao trazer sua visão de futuro e reflexões sobre como preparar os códigos para possíveis mudanças no desenvolvimento de software, ele e os leitores não poderiam imaginar quantos avanços aconteceriam em menos de dez anos.

"Decisões ruins tomadas hoje farão com que seus dias no futuro sejam sombrios. Não à toa, quando surge a necessidade de uma mudança, é comum que o desenvolvedor prefira refazer o código ao invés de alterá-lo".

Paulo Urgal, sócio e diretor de Tecnologia da Informação da Caiena

O conselho acima não envelheceu, mas as formas de realizar a manutenção e desenvolvimento de softwares vem evoluindo, principalmente com os avanços da inteligência artificial (IA). Em meio a essas mudanças, surgem as dúvidas: o que realmente impactou o desenvolvimento de software do passado, e o que continua indispensável para criar códigos sustentáveis no futuro?

Decidimos falar sobre as práticas contemporâneas que influenciam na manutenção e desenvolvimento de software no contexto de hoje, novamente com o apoio do Paulo nessa reflexão sobre os novos tempos.

Navegue pelo conteúdo:

Desenvolvimento de software antes e depois da IA

A inteligência artificial vem deixando de ser um diferencial competitivo para se tornar amplamente acessível e cada vez mais “comoditizada”, como observado no relatório "Dominando a complexidade da preparação de dados para IA" (tradução livre), da Harvard Business Review. Estima-se que os gastos globais com IA vão alcançar US$500 bilhões em 2026, um aumento de 33% em relação a 2025. 

Hoje, as tecnologias de inteligência artificial generativa já não se limitam aos chatbots: elas estão por toda parte e já têm sido usadas para completar e revisar códigos, incluindo nas etapas de manutenção. Mais que ferramentas, a inteligência artificial tem remodelado formas de trabalho, como no caso do desenvolvimento de software agêntico (Agentic Software Development – ASD). Nesse modelo, a inteligência artificial deixa de atuar apenas como assistente e passa a executar fluxos completos de trabalho. A IA então assume responsabilidades que antes dependiam de interação constante de desenvolvedores, tornando-se ativas nos processos.

Nos sistemas de Desenvolvimento de Software Agêntico (ASD), as IAs já realizam as tarefas por conta, dividem em etapas menores, executam e iteram sobre essas decisões, sem esperar por comandos dos desenvolvedores. Também tomam a frente de processos como de criação de artefatos de design, documentação, refatoração, testes unitários e revisões, participando dos fluxos de entrega, implantação e manutenção.

Para completar, os agentes de IA têm sido usados no desenvolvimento de software para explorar e compreender grandes bases de código, na implementação de funcionalidades com instruções em linguagem natural, na refatoração e modernização de sistemas legados, para criar ou revisar pull requests, e diagnosticar bugs e falhas.

Os princípios da manutenção e desenvolvimento de software continuam

Com ou sem as novas tecnologias, os princípios da manutenção e desenvolvimento de software permanecem. Isso inclui a necessidade de uma arquitetura bem planejada, de decisões que evitem dívidas técnicas, e outras que devem ser consideradas sobre o futuro bem antes do lançamento do produto digital.

"Nossa compreensão muda diariamente. Novos requisitos surgem quando estamos projetando ou codificando. O ambiente também pode mudar. Independente da razão, a manutenção não é uma atividade isolada, mas uma parte rotineira do processo de desenvolvimento como um todo".

Andrew Hunt e David Thomas em “O Programador Pragmático”.

O livro “O Programador Pragmático” foi publicado em 1999, e este ensinamento continua atual nos tempos de IA. Segundo os autores, a manutenção do código deve ser pensada desde a concepção, considerando sua extensibilidade e a inserção de novos recursos e funcionalidades do produto digital. 

“Um código que tenha um design pobre é, naturalmente, um código difícil de alterar. Do ponto de vista prático, ‘código de fácil mudança’ é a única métrica que importa para definir se um código tem um bom design ou não”.

Paulo Urgal, sócio e diretor de Tecnologia da Caiena em "Como estar preparado para o viajante do tempo?"

Isso influencia diretamente na refatoração, que hoje já pode ser apoiada pela IA. Porém, Urgal ressalta que "a arte de escrever um código não é diferente das demais, a maestria só é alcançada por meio de muito estudo, dedicação e prática". Logo, não basta ter a inteligência artificial em mãos, é preciso saber usá-la para tornar a estrutura existente legível e de fácil manutenção. Um exemplo disso é a necessidade de treinar as tecnologias para que sejam capazes de entender contextos e atender às necessidades no desenvolvimento.

Embora as arquiteturas de desenvolvimento de softwares utilizem tecnologias de mercado, a evolução rápida do ecossistema pode tornar bibliotecas e componentes obsoletos. Para mitigar esse risco e evitar a constante manutenção, a sugestão é adotar uma estratégia de monitoramento de versões de dependências, para assim manter a arquitetura modular e desacoplada conforme planejado. Isso pode facilitar a substituição de componentes específicos sem comprometer todo o ecossistema no futuro.

Outra prática antiga que se mantém atual é a cultura de testes, que também influencia na redução de custos de manutenção e nas demandas de suporte técnico. Para Urgal, os testes aumentam a confiança para realizar alterações que melhoram e garantem que o código continue funcionando mesmo após as mudanças.

Concluindo, aqui vão alguns princípios que não podem ficar de fora do checklist de desenvolvimento de software hoje:

  • Monitoramento de versões de bibliotecas e dependências;
  • Manutenção de arquiteturas modulares;
  • Evitar acoplamento excessivo entre componentes;
  • Automatizar testes e fazer a revisão contínua do código;
  • Utilizar IA para ganho de produtividade.

Antes da tecnologia, há pessoas

A autonomia das IAs no desenvolvimento de software indica que os profissionais do futuro poderão assumir novas funções que exigem outras habilidades, principalmente as ligadas à tomada de decisão. A capacidade de formular problemas, interpretar contextos de negócio e tomar decisões ainda é uma responsabilidade humana, que exige a combinação de conhecimento técnico e pensamento crítico.

Os desenvolvedores do futuro serão cada vez mais responsáveis por definir objetivos, validar resultados e acompanhar evoluções estratégicas a respeito da tecnologia, o que inclui a necessidade de um olhar atento à manutenção da solução.

A consultoria McKinsey mapeou 300 empresas de software que já utilizam a inteligência artificial e identificou que as organizações que têm uma relação madura com IA têm desempenho 15% maior. Para a consultoria, a tecnologia ajuda na consistência, na qualidade dos artefatos, em ciclos de sprint mais curtos, e tudo isso tem elevado o índice de satisfação dos clientes. Além disso, mais de 90% das empresas avaliadas pela consultoria que usam a inteligência artificial para refatoração, modernização e teste registraram uma economia média de seis horas de trabalho por semana nos projetos.

Essa visão de futuro sobre a manutenção e desenvolvimento de software compartilhada por Paulo Urgal é só o começo de uma conversa que pode se estender. Há 20 anos a Caiena acompanha a evolução do desenvolvimento de software e ajuda organizações a construir soluções preparadas para evoluir. Para seguir esses novos caminhos, a Caiena pode te ajudar. Converse com a nossa equipe!

Mais conteúdos

Ao clicar em “Aceitar todos os cookies”, você concorda com o armazenamento de cookies em seu dispositivo para aprimorar a navegação no site, analisar o uso do site e nossos esforços de marketing. Veja nossa Política de Privacidade para mais informações.

Contato

Ops, revise o formulário e tente novamente.