

Desenvolvimento de software com IA: como inovar sem perder o controlo
A inteligência artificial já faz parte do desenvolvimento de software. O desafio não consiste apenas em tirar partido da sua capacidade para acelerar tarefas, mas sim em integrá-la sem perder o controlo sobre o código, o conhecimento e os produtos digitais. Rubén Díaz, Director of Cloud Applications da Izertis, analisa como a empresa está a avançar do desenvolvimento assistido por IA para um ciclo de vida do software mais automatizado e agêntico.
A inteligência artificial tem ganhado terreno há anos no desenvolvimento de software. A chegada do GitHub Copilot em 2021, antes de o ChatGPT popularizar a IA generativa junto do grande público, marcou o início de uma transformação que hoje afeta de cheio o trabalho das equipas técnicas.
A questão já não é se os programadores vão utilizar estas ferramentas. Em muitos casos, já o fazem. A questão que se coloca é como integrá-las nos processos de uma organização, com que modelos e de acordo com que critérios de qualidade, segurança e conformidade.
O risco de perder o controlo
A IA pode reduzir prazos, agilizar as iterações com o negócio e facilitar inúmeras tarefas. Também pode contribuir para melhorar a qualidade do produto, a documentação e a sua evolução posterior. Mas recorrer a ela para desenvolver software não está isento de riscos.
A IA pode reduzir os prazos, agilizar as iterações com a área de negócios e facilitar inúmeras tarefas, mas não está isenta de riscos para o desenvolvimento de software
Rubén Díaz resume-os numa ideia: a perda de controlo. “Está a delegar o desenvolvimento a modelos de linguagem ou agentes de inteligência artificial que não conhecem os seus padrões, nem os seus protocolos, que não conhecem as suas políticas de qualidade, a regulamentação que tem de cumprir...”, salienta.
A este risco juntam-se a dependência das ferramentas utilizadas para gerar e manter o código e aquilo a que Díaz chama de fuga de conhecimento. “Quanto maior for a quantidade de código produzido pela IA sem qualquer tipo de especificação, controlo ou documentação, maior será o caos que se gera quando é necessário resolver problemas que surgem na produção”, adverte.
Sem contexto, especificações nem uma supervisão adequada, torna-se mais difícil compreender as decisões técnicas, corrigir erros ou incorporar novas funcionalidades. A rapidez alcançada durante o desenvolvimento pode vir a tornar-se, posteriormente, um problema de manutenção.
Organizar a utilização da IA
A resposta não consiste em limitar estas ferramentas nem em introduzir controlos que atrasem o trabalho. O objetivo é facilitar a sua integração num ambiente organizado, seguro e mensurável. As equipas de desenvolvimento de software e produtos digitais da Izertis assumiram o desafio de “organizar todo este caos, geri-lo, com o foco em facilitar a adoção e a utilização correta da inteligência artificial, e não em introduzir burocracia e complicar a sua utilização”.
O modelo assenta em duas linhas principais. A primeira procura industrializar a utilização da IA através de ferramentas, modelos e metodologias corporativas. A segunda centra-se na governação, na observabilidade e na aprendizagem. Ambas devem, além disso, avançar num ambiente tecnológico sujeito a mudanças contínuas ao nível de fornecedores, protocolos, modelos e custos.
Não se trata apenas de disponibilizar um assistente de código aos programadores. O segredo está em integrá-lo com o conhecimento da empresa, os seus critérios de arquitetura, as suas políticas de segurança e os seus requisitos de qualidade.
Do SDD ao ciclo de vida agêntico
Com base nisso, a Izertis colocou em produção um framework e uma metodologia próprios. O ponto de partida foi o Spec-Driven Development, conhecido como SDD, um modelo em que as especificações deixam de desempenhar um papel secundário e se tornam um dos principais ativos do produto digital.
Os assistentes de código devem estar a par dos conhecimentos da empresa, dos seus critérios de arquitetura, das suas políticas de segurança e dos seus requisitos de qualidade
Díaz explica que se trata de “uma estrutura de desenvolvimento própria que começou com o nome de SDD, na qual as especificações se tornam um dos principais ativos do produto digital, e que agora está a evoluir para o que se começa a chamar de SDLC agêntico, ou seja, ciclo de vida do software agêntico”.
A IA funciona, assim, com requisitos, regras de arquitetura, boas práticas e critérios técnicos que orientam o seu funcionamento. O modelo avança para um ciclo de vida do software mais interligado e automatizado, no qual os agentes podem interagir com as ferramentas de desenvolvimento, qualidade, segurança, produto e infraestrutura.
O ambiente permite, além disso, observar quais os modelos utilizados pelas equipas, como consomem os tokens e em que tarefas acrescentam mais valor. Esta informação ajuda a comparar soluções, avaliar resultados e adaptar a tecnologia às necessidades de cada projeto.
Qualidade e segurança desde o início
A aceleração introduzida pela IA também está a devolver o protagonismo à documentação, à qualidade e à cibersegurança. Documentar corretamente permite preservar o conhecimento sobre o produto e facilita a sua manutenção. A qualidade deve ser incorporada desde as primeiras fases, e não quando o software já está concluído. O mesmo se aplica à segurança, que deve fazer parte do desenho e não se limitar a uma revisão final.
O desenvolvimento assistido por IA deixa, assim, de ser uma iniciativa isolada. Passa a integrar-se numa estratégia que interliga a arquitetura, a governação, a conformidade regulamentar, a qualidade, a cibersegurança e o controlo de custos.
Da metodologia aos projetos
A Izertis já utiliza este modelo em projetos de diversos setores. Entre eles destaca-se a refatoração de uma plataforma de engenharia através de IA e SDD, com o objetivo de melhorar o código, a documentação e a sua evolução funcional.
O framework também é aplicado em organizações com plataformas complexas, numerosos processos e um elevado volume de documentação. Nestes ambientes, a inteligência artificial pode ajudar a analisar sistemas legados, facilitar a sua transformação e preparar as novas plataformas para que as suas futuras evoluções também possam basear-se na IA.
A implementação não tem necessariamente de começar com um grande programa corporativo. “Pode ser dividida em pequenos blocos que podem ser trabalhados em paralelo”, afirma Díaz. Uma empresa pode começar por selecionar e monitorizar modelos de linguagem, organizar os seus ativos digitais para os tornar compreensíveis para a IA ou testar o sistema com uma equipa reduzida.
A experiência acumulada pela Izertis concretiza-se em três linhas de trabalho: transformar sistemas legados, desenvolver novos produtos preparados para evoluir com IA e integrar profissionais especializados nas equipas dos clientes.
O objetivo não é gerar mais código, mas sim desenvolver melhores produtos digitais e manter o controlo sobre os mesmos. Como resume Rubén Díaz, a Izertis “não está apenas a tornar-se uma empresa de desenvolvimento de software mais produtiva e mais competitiva. Somos um excelente parceiro para acompanhar empresas e organizações na adoção da inteligência artificial nos seus processos de desenvolvimento de software”.