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
- Os princípios da manutenção e desenvolvimento de software continuam
- Antes da tecnologia, há pessoas
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.
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.
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!
.webp)
.webp)
.webp)

.webp)
.webp)

.webp)


.webp)