Sie sind auf Seite 1von 5

BIASS: UMA ABORDAGEM PARA ALOCAR ITENS DO BACKLOG EM UMA SPRINT DE UM PROJETO SCRUM

JOSÉ W. VASCONCELOS FILHO, DARIO J. ALOISE, SILVIO R. F. ARAÚJO, PAULO G. G. QUEIROZ

Programa de Pós-Graduação em Ciência da Computação, Universidade do Estado do Rio Grande do Norte e


Universidade Federal Rural do Semi-Árido
R. Francisco Mota, 572 – Costa e Silva – 59600-971 – Mossoró - RN – Brasil
E-mails: welitonvasconcelos@gmail.com, darioaloise@uern.br, sil-
vio@ufersa.edu.br,pgagriel@ufersa.edu.br

Abstract Scrum is an agile development methodology that has, among its objectives, the division of system development or-
ganized into a series of cycles called Sprints. In each Sprint, a part of the Product Backlog items (system requirements) is devel-
oped. Each item that will be developed is prioritized by the customer and its implementation is estimated in units of time by the
development team. On the other hand, Sprint has a well-defined duration that is usually in the range of two to four weeks. In this
context, we present BIASS (Backlog Items Allocated in a Scrum Sprint), an approach to optimally allocate the Product Backlog
items in each Sprint, in a way that the most important functionalities are first done and that optimizes the work to be developed
by modeling mathematically how the knapsack problem. To make a parallel, the knapsack would be the equivalent the Sprint. In
this context, the maximum weight of the knapsack is represented by the maximum execution time of Sprint, the items of the
Product Backlog are equivalent to the items to be inserted in the knapsack, the weight of the items of the knapsack can be char-
acterized as the resolution of the inserted items in a Sprint, and finally, the value of the knapsack items would be the degree of
importance, or priority, of these items. In addition, we propose three techniques to implement the solution of the problem, which
are two meta heuristics and an exact solution: Genetic Algorithms (GAs), Simulated Annealing (SA) and Dynamic Programming
(DP) respectively. In which DP has been shown, in several studies, well adapted to the problem, despite its complexity. Thus, the
resolution of this problem in practice is useful to help the project development teams to decide efficiently and effectively, which
system requirements should be developed in each implementation cycle of the project.
Scrum – É uma Metodologia Ágil para gestão e planejamento de projetos.

Keywords Knapsack Problem, Scrum, Sprint, Dynamic Programming, Genetic Algorithms, Simulated Annealing.
Sprint – Representa um ciclo de trabalho no Scrum. Esse ciclo pode ser de 2 semanas, 3 ou 4 semanas, que é o Timebox das Sprints. As Sprints devem ter sempre a mesma duração.
Product Backlog - representam parte do produto a ser implementado.
Resumo O Scrum é uma metodologia de desenvolvimento ágil que possui, entre seus objetivos, a divisão do desenvolvimento
de sistemas organizada em uma série de ciclos chamados de Sprints. Em cada Sprint, desenvolve-se uma parte dos itens do Pro-
duct Backlog (requisitos do sistema). Cada item a ser desenvolvido é priorizado pelo cliente e tem sua implementação estimada
em unidades de tempo. Por outro lado, a Sprint possui um tempo de duração bem definido que gira em torno de duas a quatro
semanas. Nesse contexto, apresentamos o BIASS (Backlog Items Allocated in a Scrum Sprint), uma abordagem para alocar, de
maneira ótima, os itens do Product Backlog em cada Sprint, de modo que as funcionalidades
modelando-o um
mais importantes sejam entregues
primeiro e que otimize o trabalho a ser desenvolvido, modelando matematicamente como o problema da mochila. Para fazer um Não deve ser explicado no
paralelo, a mochila seria o equivalente a Sprint. Nesse contexto, o peso máximo da mochila é representado pelo tempo máximo resumo!
de execução da Sprint, os itens do Product Backlog são equivalentes aos itens a serem inseridos na mochila, o peso dos itens da
mochila pode ser caracterizado como o tempo de resolução dos itens inseridos na Sprint e, por fim, o valor dos itens da mochila
seria o grau de importância, ou prioridade, desses itens. Além disso, propomos três técnicas para implementação da solução do
problema, que são duas meta heurísticas e uma solução exata: Algoritmos Genéticos (AGs ), Simulated
estudos, quais?
Annealing(SA) e Pro-gramação Dinâmica(PD) respectivamente. No qual PD tem se mostrado, em diversos estudos, bem
adaptada ao problema, apesar de sua complexidade. Assim, a resolução desse problema, na prática, mostra-se útil para auxiliar
as equipes de desenvolvimento do projeto a decidirem de maneira eficiente e eficaz, quais requisitos do sistema deverão ser
desenvolvidos em cada cilco de implementação do projeto.
Essa conclusão não ficou muito boa, porque não informa qual dos métodos mostrou-se mais eficiente. Apenas, deduz que será útil para auxiliar as equipes de
desenvolvimento do projeto...
Palavras-chave Problema da mochila, Scrum, Sprint, Programação Dinâmica, Algoritmos Genéticos , Simulated Annealing.

1 Introdução de modo que as partes interessadas possam testar e


aceitar o incremento (Schwaber and Beedle. 2001).
Um projeto Scrum é feito em sprints, ciclos, que
O desenvolvimento de software deve atender ao duram
durão em média de 3 a 4 semanas, nos quais os requi-
aumento das demandas, da pressão por mais resulta-
sitos a serem implementados
Dono do Produto
são mantidos no Pro-
dos, redução do tempo de desenvolvimento e a ne-
duct Backlog. O Product Owner (PO), que corres-
cessidade de adaptação às mudanças, com os overhe-
ponde ao cliente, prioriza e a equipe estima o tempo
ads nos processos tradicionais de desenvolvimento de
necessário de desenvolvimento dos itens do Product
software, surgiram as metodologias de desenvolvi-
Backlog, que é o ponto inicial do projeto. No início
mento ágeis, dentre elas, a abordagem Scrum enfoca
de cada sprint é feita uma reunião de planejamento,
o gerenciamento do desenvolvimento interativo de
na qual a equipe vai decidir o que vai ser implemen-
um software com um conjunto de práticas e regras
tado na sprint, baseado no tempo disponível e na
simples. O Scrum inicia-se com a analise do que deve
prioridade dos itens.
ser feito e a seleção do que pode virar um incremen-
to. Logo em seguida, a equipe começa o desenvolvi- Com os itens do backlog estimados e prioriza-
mento até o final da iteração. No final da iteração, a dos, surge o seguinte problema: quais itens serão
equipe apresenta o incremento das funcionalidades colocados no intervalo de tempo definido para a
sprint? Normalmente, a equipe tem dificuldades para itens da mochila pode ser caracterizado como o tem-
tomar essa decisão e consome um tempo discutindo po de resolução dos itens inseridos na Sprint e, por
quais itens do backlog vão ser selecionados e aloca- fim, o valor dos itens da mochila seria o grau de im-
dos. portância, ou prioridade, desses itens. O objetivo,
O objetivo deste trabalho é apresentar a aborda- então, seria a maximização do grau de importância,
gem BIASS que apresenta uma solução para esse haja vista que ao se fazer isso, garante-se que as prin-
Muito problema, modelando-o como o problema da mochila cipais funcionalidades do sistema serão entregues
aplicando técnicas heurísticas e exatas
bom! e utiliza-se Algoritmos Genéticos, Simulated Annea- primeiro ao cliente.
ling e Programação Dinâmica para resolver a seleção A seguir é apresentada a modelagem matemática
das atividades a serem realizadas na sprint, com o do problema proposto, para detalha-lo melhor e pos-
Está implícito! objetivo de diminuir o tempo para realizar essa tare- sibilar o entendimento. Assumindo que:
apresentada uma abordagem do problema,
fa. Na seção 2 será apresentado a abordagem. A se-  ts: o tempo disponível da sprint;
ção 3 contém as possíveis soluções para o problema.  tai: tarefas, ou itens do Product Backlog; i=1,...,n;
Por fim, na seção 4, concluísse esse trabalho e apre-  tti: tempo estimado da tarefa da i;
senta-se considerações sobre trabalhos futuros.
 pti: prioridade da tarefa i.
A função objetivo é dada pela equação 3 abaixo:
2 Modelagem do Problema
(3)
A Seção 2.1 apresenta uma descrição do problema da mochila {0,1} e
Na Seção 2.1 será apresentada uma introdução ao
problema da mochila. Na Seção 2.2 será a abordagem
e sua modelagem matemática. a Seção 2.2 uma abordagem do Portanto, o objetivo é alocar na sprint as tarefas
problema desta pesquisa, bem como sua modelagem matemática. mais importantes ou de maior prioridade.
2.1 Problema da mochila A função de restrição é dada pela equação 4
abaixo:
O problema da mochila pode ser definido como: (4)
dados n itens para serem colocados em uma mochila
de capacidade c. Cada item xi tem um valor pi e peso Essa restrição indica que a soma dos tempos das
wi associado. O objetivo é adicionar o máximo de tarefas não pode ser maior que o tempo da sprint.
itens a mochila obtendo o maior valor possível sem As equações 3 e 4 mostram a modelagem mate-
exceder a capacidade c (Pisinger, 1995). mática do nosso problema, baseado no problema
básico (0-1) da mochila. Onde, ts é visto como a ca-
??? (1) pacidade da mochila, tai são os itens para serem co-
locados na mochila, com tti sendo o peso e pti o va-
(2) lor de cada item i.

As equações 1 e 2 mostram a modelagem mate-


mática do Problema da mochila, que é NP-Difícil. 3 Algoritmos Utilizados

Na Seção 3.1,3.2 e 3.3 apresenta-se uma introdução


2.2 A abordagem BIASS
aos Algoritmos Genéticos, Simulated Annealing e
O problema tratado nesse trabalho consiste na Programação Dinâmica respectivamente. Na Seção
dificuldade que as equipes de desenvolvimento têm 3.4 apresenta-se um comparativo em tempo e solução
de decidir quais itens do Product Backlog entrarão das três soluções.
nos ciclos de desenvolvimento (sprints). Cada sprint
tem um prazo de tempo de duração bem definida,
geralmente de duas ou quatro semanas. Cada item do 3.1 Algoritmos Genéticos
Product Backlog tem uma estimativa de tempo de O AG é um método de busca populacional, que parte
resolução, feita em dias, e uma prioridade, que é dada de um conjunto de soluções para o problema e aplica
pelo cliente, visto que ele deseja que as principais operadores com o objetivo de melhorar o conjunto.
funcionalidades do sistema sejam desenvolvidas pri- Com base na evolução natural, no qual os melhores e
meiro. mais adaptáveis indivíduos sobrevivem e produzem
Ao analisar o problema em questão, verifica-se filhos geneticamente melhores, os AGs transmitem as
que ele se encaixa no problema da mochila. Para fa- características dos indivíduos por meio de dois prin-
zer um paralelo, a mochila seria o equivalente a cipais operadores: o Crossover que as características
Sprint. Nesse contexto, o peso máximo da mochila é dos descendentes são parcialmente herdadas dos seus
representado pelo tempo máximo de execução da pais e Mutação que é a criação de novos genes no
Sprint, os itens do Product Backlog são equivalentes processo de reprodução. Com origem em 1960, os
aos itens a serem inseridos na mochila, o peso dos Algoritmos genéticos foram inventados por John
Holland e podem solucionar qualquer problema que objetivo do problema, corresponde ao valor de uma
utilize cadeias de bits (0´s e 1´s). Assim como na solução ótima local ou global.
natureza, o algoritmo vai evoluindo as cadeias de bits O SA básico tem a seguinte estrutura:
até encontrar uma melhor solução para o problema. A 1. A cada iteração, um novo estado é ge-
solução é encontrada de um modo automático e não rado a partir do estado atual por uma
supervisionado (Mitchell, 1995). modificação aleatória;
O foco do AG é melhorar ou pelo menos tentar 2. Se o novo estado é de energia menor
melhorar as qualidades dos indivíduos por meio de que o atual, passa a ser o estado corren-
um processo iterativo de evolução da população. te.
Existem muitas variações dos AGs, mas uma bá- 3. Se o novo estado tem uma energia mai-
sico tem a seguinte estrutura: or, é calculado uma probabilidade por
1. Gera uma população inicial; meio da função de Boltzmann para sa-
2. Avalia a população; ber se aceita o novo estado e susbstitui
3. Enquanto os critérios de parada não fo- o estado corrente.
rem satisfeitos, faça: 4. Repete o procedimento até atingir o
a. Selecione os pais; equilíbrio térmico.
b. Faça a evolução por meio de O SA implementado para nossa abordagem tem
Crossover e/ou Mutação; a mesma estrutura, mas como estamos trabalhando
c. Avalie a população; com dois valores (peso e valor dos itens), definimos a
d. Defina a população sobrevi- parte de aceitação da seguinte maneira:
vente. 1. Se o valor é maior e o peso não extra-
mochila
4. Liste os melhores indivíduos. pola a capacidade da bolsa (sprint),
O AG que foi implementado para o nosso pro- aceita o novo estado.
blema tem a seguinte estrutura: 2. Se o valor é maior mas extrapola a ca-
mochila
1. Gera uma população aleatória de 20 in- pacidade da bolsa, é calculado se vai
divíduos, que são possíveis soluções pa- ser aceito ou não;
ra a bolsa; 3. Se o valor é menor, também vai ser cal-
2. Avalia a população e seleciona os dois culado se o estado vai ser aceito.
mochila
mais aptos com base no maior valor da 4. Se o estado atual tem um peso da bolsa
bolsa; extrapolado e o novo estado tem um pe-
3. Enquanto não ocorrer 500 iterações, fa- so menor, aceita o novo estado.
ça: Detalhar mais como se aplica o SA ao problema

a. Gera 50% da nova população 3.3 Programação Dinâmica


por meio do Crossover clássi-
co de um ponto e logo em se- Programação dinâmica é uma técnica para resolver
guida faz a mutação, no quais problemas cujas soluções satisfazem relações de re-
ambos são definidos aleatori- corrência com subproblemas de sobreposição. Ao
amente; invés de resolver sobreposição de subproblemas uma
b. Gera a outra metade da popu- e outra vez, ela resolve cada um dos subproblemas
lação aleatoriamente para ten- menores apenas uma vez e registra os resultados em
tar evitar os máximos locais; uma tabela. Após registrar os resultados, a tabela é
c. Seleciona os dois mais aptos usada para obter uma solução para o problema origi-
da nova população; nal (Levitin, 2003).
4. Exibe a melhor solução encontrada. PD tem como ideia principal encontrar a solução
Como se aplica o AG ao problema em apreço? ótima a partir da resolução de problemas menores de
mesma natureza. Pode ser visto como um método que
3.2 Simulated Annealing resolve várias mochilas menores dentro do problema
original até atingir o tamanho máximo definido. No
Proposto por Kirckpatrick et al. (1983), é baseado no
problema em questão, o objetivo do algoritmo é sub-
recozimento de metais por meio de arrefecimento
dividir a sprint de tamanho j em diversas sprints de
rápido ou lento. Durante este processo, o material
tamanhos [1....j] e para cada sprint j um subconjunto
passa por vários estados possíveis, o arrefecimento
de tarefas [1 … i] ótimo estará alocado a ela. Existem Muito bom!
rápido cria produtos meta-estáveis de maior energia
algoritmos recursivos de programação dinâmica utili-
interna e o arrefecimento lento cria produtos mais
zados nesse contexto, porém a estratégia utilizada
estáveis de menor energia. Fazendo uma analogia aos
nesse trabalho trata-se de uma versão iterativa, onde
problemas combinatórios, os estados possíveis de um
uma matriz é utilizada para salvar todas as sub-
metal correspondem a soluções, a energia é a função
objetivo e a energia mínima ou máxima, depende do
soluções. Um exemplo da execução do algoritmo Além disso, as tarefas foram geradas aleatoriamen-
pode ser visto a seguir: te.
Tabela 1. Tarefas, tempo de resolução e importância.
100
Tempo (dias) Importância 80
Tarefa 1 5 5 60 PD
Tarefa 2 3 4 AG s
40
Tarefa 3 3 3 SA
Tarefa 4 2 2 20
Empate
Tabela 2. Execução e Resultado do Algoritmo. 0
PD x AG x Tempo - Solução -
SA AGxSA AGxSA
0d 1d 2d 3d 4d 5d
Figura 1: Comparativo de PD, AG e SA
- 0 0 0 0 0 0
Se já era esperado porque fez a pesquisa ??? Compravar apenas???
T1 0 0 0 0 0 5 Como já esperado, o PD teve melhor desempe-
T2 0 0 0 4 4 5 nho, apesar da complexidade e do consumo de me-
T3 0 0 0 4 4 5 mória, nos deu uma solução ótima e o custo compu-
T4 0 0 2 4 4 6 tacional não trouxe muitas complicações, pois devido
à natureza do problema, as instâncias trabalhadas
Na tabela 1, são apresentadas quatro tarefas, ca- foram pequenas, haja vista que a grande maioria dos
da uma com uma estimativa do tempo de resolução e projetos que utilizam a metodologia Scrum trabalha
também um número que representa sua importância com uma amostragem de 20 a 40 tarefas que deverão
para o cliente. O objetivo do algoritmo é encontrar a ser alocadas em uma sprint de 10 a 30 dias.
melhor forma de alocar essas tarefas em uma sprint Em relação as duas metas heurísticas, o AG deu
que tem um prazo de cinco dias. Na tabela 2, é apre- uma solução melhor em valor que o SA em 50% dos
sentado um exemplo de como o algoritmo soluciona testes, nos quais 30% foram soluções ótimas. Porém,
o problema, no caso, a matriz representa a execução em relação ao tempo, o SA foi melhor em 70%. Em
do algoritmo e o resultado. todos os testes, as três implementações foram execu-
Na tabela 2, basicamente, cada linha i representa tadas e PD ganhou tanto no fator tempo quanto no
uma tarefa e cada coluna j representa uma sprint de fator valor ótimo. Como podemos ver na Figura 1.
capacidade j (valor da coluna), o algoritmo começará
na linha 1 (tarefa 1) e tentará alocar essa tarefa a 4 Conclusão
sprint j, de tempo j dias, se o tempo da sprint com-
portar o tempo da tarefa, o algoritmo verificará se a
Nesse trabalho, foi apresentada uma solução
importância da tarefa i é superior a importância já
ótima para o problema de alocar itens de um Backlog
presente na sprint j, em caso afirmativo atualiza-se a
(tarefas) a uma sprint. Isso foi feito através da mode-
tabela com esse valor. Se o tempo da tarefa for menor
lagem matemática do problema em relação ao pro-
que o tempo da sprint, o algoritmo subtrairá o tempo
blema básico (0-1) da mochila e, posteriormente,
da sprint j ao tempo da tarefa i e o valor de importân-
através da implementação de um algoritmo que utili-
cia da sprint (j-i) será somado à importância da tarefa
za a técnica de programação dinâmica. Também foi
i, caso essa soma represente uma importância maior
efetuada a implementação de duas metas heurísticas,
que a importância já presente em j, a sprint j receberá
AG que populacional e SA que é iterativa, para fazer
a importância dessa soma. Se a sprint j não compor-
uma análise em relação a implementação de PD.
tar a tarefa i, repete-se o valor de importância já pre-
sente para a sprint j. Espera-se, posteriormente, implementar esse al-
goritmo em um aplicativo de gerenciamento de proje-
tos Scrum, com o objetivo de facilitar a priorização
3.4 Testes realizados de tarefas pela equipe de desenvolvimento, agilizan-
do ainda mais o processo de desenvolvimento de
Nesse trabalho, optou-se por uma implementa-
software utilizado na metodologia Scrum.
ção utilizando a linguagem C++ e uma máquina com
Ainda como trabalhos futuros, pode-se formular
processador Intel core i5 de 1.7gHz de processador e
o problema como múltiplas mochilas, onde cada
com 4gb de memória RAM.
sprint será uma mochila e/ou adequar o problema
Os testes realizados foram com 20, 30 e 40 tare-
para o problema da mochila com várias partições,
fas em uma Sprint de capacidade 100. Cada tarefa
utilizando cada membro da equipe como uma parti-
tem seu tempo variando de 1 a 20 e sua importância
ção da mochila. Também, outra possibilidade seria
de 1 a 5, onde 5 é a maior importância para o cliente.
formular o problema verificando se existe dependên- Ok!
cia entre as tarefas.

Agradecimentos

Agradecemos a CAPES pelo financiamento do pro-


grama de pós-graduação em Ciências da Computação
da UERN/UFERSA.

Referências Bibliográficas

Levitin, A(2003). The Design and Analysis of Algo-


rithms. New Jersey: Pearson Education Inc.
Martello, S; Toth, P (1987). Algorithms for Knap-
sack Problems, In: Silvano Martello, Gilbert La- Não encontrei no texto essa
referência!!!
porte, Michel Minoux and Celso Ribeiro, Edi-
tor(s), North-Holland Mathematics Studies,
North-Holland, Volume 132, Pages 213-257
Mitchell, M. (1995). Genetic algorithms: An over-
view. Complexity, 1(1), 31-39.
Kirkpatrick, S., Gelatt, C. D., & Vecchi, M. P.
(1983). Optimization by simmulated annealing. Não encontrei no texto essa referência!

science, 220(4598), 671-680.


Pisinger, D.(1995). An expanding-core algorithm for
the exact 0–1 knapsack problem. European Jour-
nal of Operational Research, v. 87, n. 1, p. 175-
187.
Pisinger, D.(1995). Algorithms fo Knapsack Pro-
blems. PhD thesis, Department of Computer Sci-
ence, University of Copenhagen.
Schwaber, K; Beedle, M (2001). Agile Software De-
velopment with Scrum (1st ed.). Prentice Hall
PTR, Upper Saddle River, NJ, USA.

Das könnte Ihnen auch gefallen