METAHEURÍSTICAS APLICADAS AO PROBLEMA DO PRÓXIMO RELEASE EM EMPRESAS DE DESENVOLVIMENTO ÁGIL DE SOFTWARE Mariana Alves Moura¹², Victor José Aguiar Teixeira de Melo França¹², Silvana Bocanegra¹, Ana Cristina Rouiller¹ ¹Departamento de Estatística e Informática - Universidade Federal Rural de Pernambuco Rua Dom Manuel de Medeiros, s/n, Dois Irmãos, Recife - PE, Brasil ²SWQuality Consultoria e Sistemas Rua do Apolo, 202, Recife Antigo, Recife - PE, Brasil [email protected], [email protected], [email protected], [email protected] Um problema comum para as empresas que trabalham com evolução e manutenção de produtos de software desenvolvidos para vários clientes é priorizar o que será implementado no próximo release do software. Diversos fatores podem influenciar nessa escolha, como por exemplo, crescente demanda dos clientes por melhorias nos softwares, dependência de desenvolvimento entre os requisitos, valor de negócio que cada cliente representa para a organização, quantidade de tempo e esforço diferenciados que cada requisito demandará da equipe de desenvolvimento. Avaliar manualmente cada um desses parâmetros é uma tarefa árdua e muitas vezes as empresas realizam suas escolhas baseando-se apenas em experiências do gerente e da equipe. A área de pesquisa conhecida como Engenharia de Software Baseada em Buscas tem usado modelos e métodos de otimização para resolver problemas deste tipo. O modelo de otimização usado para representar esse problema é conhecido como Problema do Próximo Release e consiste em selecionar um conjunto ideal de requisitos que irá compor a próxima release de um software, buscando maximizar a satisfação dos clientes, sujeito a restrições como a capacidade da equipe de desenvolvimento e a dependência entre os requisitos. Este trabalho aborda as metaheurísticas Simulated Annealing e Algoritmo Genético aplicadas a uma adaptação do Problema do Próximo Release para empresas que utilizam desenvolvimento ágil de software baseado na metodologia SCRUM. Esta metodologia divide a gestão do desenvolvimento total em partes menores e de mesma duração, conhecidas como sprints, que representam um ciclo de trabalho. A cada sprint um conjunto de requisitos é implementado, tendo como resultado um incremento do produto que está sendo desenvolvido. Os requisitos devem ser selecionados da melhor maneira para compor um ciclo de trabalho do SCRUM, de tal forma que o valor de negócio dos requisitos selecionados seja maximizado. O problema está sujeito às restrições de limitação da capacidade de desenvolvimento da equipe, que é determinada pelo tempo pré-fixado da Sprint, e das relações de precedência entre os requisitos. Os algoritmos Simulated Annealing e Algoritmo Genético foram adaptados para atender os objetivos e restrições do problema e validados por meio da aplicação em uma instância de um caso com dados reais. Em seguida eles foram aplicados a dados de uma empresa de desenvolvimento e manutenção de software de Recife e seus resultados foram comparados em termos de melhor solução encontrada e tempo de execução. As metaheurísticas também foram aplicadas em instâncias aleatórias a fim de observar seus desempenhos aumentando o tamanho dessas instâncias. A partir deste estudo, foi possível concluir que a aplicação de otimização pode ser uma alternativa promissora para resolver este problema da Engenharia de Software de maneira automatizada, se modelado de forma a adequar-se às necessidades e restrições da organização. PALAVARAS CHAVE. Scrum, Otimização, Problema do Próximo Release. Área Principal: Metaheurísticas.