uma pesquisa-ação Frederico Sousa Oliveira Orientador: Prof. Dr. Alfredo Goldman Coorientadora: Profª. Drª. Viviane Santos 03 de Julho de 2015 Mestrado Profissional em Engenharia de Computação Defesa
que a qualidade do código é comprometida é como se estivesse incorrendo em Dívida Técnica. Uma pequena Dívida Técnica acelera o desenvolvimento até que seja paga por meio da reescrita do código. O perigo ocorre quando a Dívida Técnica não é paga. Cada minuto em que o código é mantido em inconformidade, juros são acrescidos na forma de reimplementação”. (CUNNINGHAM, 1992)
Entregas muito rápidas, o pouco tempo para projeto ou a falta de rigor em testes automatizados, levam alguns software a um nível considerável de Dívida Técnica. (KRUCHTEN et al., 2012) • Definir uma estratégia para reduzir a Dívida Técnica é difícil, pois é algo que NÃO é parte do processo de desenvolvimento regular, que se concentra na implementação das funcionalidades. (BUCH, 2011) • Scrum: funcionalidades priorizadas do Backlog do Produto. (SCHWABER et al., 2013)
da definição do papel responsável pela sua redução (Time, Dono do Produto, Scrum Master ou todos eles); • Dono do Produto frequentemente não entende as necessidades e benefícios de reduzir a Dívida Técnica; • Dívida Técnica encontrada nos projetos não se encontra de uma forma estruturada e documentada, que possa ser visualizada pelo time. (BUCH, 2011)
ênfase na identificação da Dívida Técnica. Encontram-se evidências na literatura do uso parcial do framework, mas não dos seus 3 estágios em um projeto real de desenvolvimento de software, que ainda aplica Scrum para gerenciamento ágil. • Carolyn Seaman e Yuepu Guo propõem um framework de gerenciamento da Dívida Técnica. Fonte: Adaptado de Umbc (2014)
gerenciamento da Dívida Técnica proposto por Seaman et al. (2011), por meio de uma pesquisa-ação, no contexto real de dois projetos de software que utilizam Scrum.
da Dívida Técnica por C. Seaman e Y. Guo • Passo 1: extrair os itens da Dívida Técnica associados aos componentes que estarão sendo feitos no ciclo. • Passo 2: reavaliar as estimativas das métricas em “alto”, “médio” ou “baixo” com base no plano do próximo ciclo.
da Dívida Técnica por C. Seaman e Y. Guo • Passo 3: fazer estimativas numéricas para os itens com alta Probabilidade de Juros e alto Valor dos Juros. • Passo 4: para cada item do Passo 3, comparar o custo (Principal) com o benefício (Probabilidade dos Juros * Valor dos Juros) e considerar aqueles que o valor do benefício é MAIOR que o custo. • Passo 5: Repetir os passos 3 a 5 com itens com alta Probabilidade dos Juros e Valor dos Juros assinalados como “médio” e vice-versa. Repetir os mesmos passos considerando “médio” para ambos, e assim por diante, até que não seja mais possível o pagamento da dívida no ciclo. (SEAMAN et al., 2011)
seminários; • Questionários (Apêndices da dissertação). • Análise de Dados • Procuram-se sentenças sobre questões de interesse da pesquisa ou que provêm novos itens de pesquisa; • Estas são agrupadas em categorias; • Identificação de posições favoráveis, neutras ou que se opõem aos temas da pesquisa. Método – Coleta e Análise de Dados
previdenciários • 12/2014: número de pessoas no projeto aumentou significativamente (de 15 para 30 pessoas). • Gerente do projeto e Time começam a se preocupar com as Dívidas Técnicas. • Software de gerenciamento de cotações de seguros • Diretor da SoftTwo: preocupação com a inclusão rápida e desorganizada de funcionalidades como resultado da pressão por entregas imediatas pelos clientes. • Time já estava cadastrando as dívidas no Jira. • Mas não conheciam o termo Dívida Técnica.
Implantar uma abordagem para o gerenciamento da Dívida Técnica: • Identificar e visualizar a Dívida Técnica; • Medir as dívidas do projeto; • Tomar a decisão de quais delas e quando pagá-las. • Proposta: Framework de gerenciamento da Dívida Técnica de Seaman e Guo.
e escolher um método para visualizá-las • Planejamento das Ações e Agir • Identificar a Dívida Técnica por 4 semanas; • Registrá-las na forma escolhida de visualização; • Preencher os 6 primeiros campos na forma de visualização escolhida; • Registrar o tempo gasto para preenchimento; • Novos tipos de dívida podem ser criados. • Questionário do Apêndice A.
e escolher um método para visualizá-las • Forma escolhida de visualização da dívida na SoftOne • 1ª e 3ª abordagens de Rubin (2013): Vtiger e Trello • Forma escolhida de visualização da dívida na SoftTwo • 2ª abordagem de Rubin (2013): Jira
Técnica • Planejamento das Ações e Agir • Medir a Dívida Técnica por 2 semanas; • Preencher os 3 últimos campos na forma de visualização escolhida e registrar tempo gasto; • Definir escala de valores para ALTO, MÉDIO e BAIXO. • SoftOne: • 25% das dívidas identificadas foram medidas; • Medição feita em pares. • SoftTwo: • Número aleatório definido pelos participantes; • Medição feita individualmente. • Questionário do Apêndice B.
Técnica • Planejamento das Ações e Agir • Todas as dívidas previamente medidas deveriam ser verificadas se o Benefício (Valor dos Juros * Probabilidade dos Juros) excede o Principal. • Utilizar os 5 passos descritos pelo framework de Seaman et al. (2011) na próxima Reunião de Planejamento para priorizar a dívida na Sprint. • Monitorar a Dívida Técnica através de um gráfico de linha contendo Total Ponderado do Principal e o Total Ponderado dos Juros. • Questionário do Apêndice C.
e monitoramento da Dívida Técnica • Identificação da Dívida Técnica • Maioria das dívidas encontradas: Defeito e Projeto. • Novos tipos criados (SoftOne): Usabilidade, Desempenho e Infraestrutura. • Tempo médio de 3 minutos (SoftOne) para preenchimento dos seis primeiros campos.
Estimado, Valor Estimado dos Juros e Probabilidade dos Juros: dificuldades no seu preenchimento. • Tempo médio de 10 minutos (SoftOne): 3 vezes maior comparado ao tempo de preenchimento 6 outros campos. • Medição em pares (SoftOne): não eliminou a dificuldade de encontrar os valores. • Tomada de Decisão e Monitoramento da Dívida Técnica • 5 passos: claros e lógicos; • Ferramentas não oferecem suporte para a criação de gráficos ou uma integração, por exemplo, com Excel.
medidas de natureza probabilística. Não há valor real dos juros acumulados de uma dívida no projeto. • Segunda dificuldade: as ferramentas usadas não são capazes de criar gráficos para comparações entre os Juros e o Principal. Primeira dificuldade Atuamos na...
para 2 medidas: Principal e Valor Atual dos Juros, sendo que o último é: • Campos a serem preenchidos na identificação e medição: • Registrar o tempo gasto durante 2 semanas. Ciclo de Adaptações (SoftOne)
cada item do Passo 1, comparar o custo (Principal) com o benefício (Valor dos Juros) e considerar aqueles que o valor do benefício é MAIOR que o custo. • Passo 4: Repetir o passo 3 até que não seja mais possível o pagamento da dívida no ciclo. • Passo 1: extrair os itens da Dívida Técnica associados aos componentes que estarão sendo feitos no ciclo. • Passo 2: reavaliar o Principal com base no plano do próximo ciclo. Tomada de Decisão (5 passos ficaram 4): Ciclo de Adaptações (SoftOne)
nos projetos para validar realmente as mudanças no framework. • Medição do tempo médio gasto para o preenchimento das 6 primeiras linhas não foi realizado na SoftTwo. • Os gerentes de projeto selecionaram os recursos dentre os papéis do Scrum bem como determinaram as ferramentas. • A nova abordagem não foi colocada em prática na SoftTwo. • O autor participa ativamente da pesquisa-ação na SoftOne. • As dúvidas na SoftTwo eram discutidas por e-mail e chamadas telefônicas. Autor não estava presente. Limitações
para características de times diferentes; • Análise da eficiência entre o framework original e a abordagem com as adaptações. Criar novas métricas para comparação; • Verificar a inclusão de métricas como o Planning Poker no decorrer do framework de Seaman et al. (2011); • Aplicação do framework com ferramentas de identificação automática de dívidas; • Criação de ferramentas que monitoram as dívidas através da nova abordagem, oferecendo alertas ao Time caso os Juros excedem o Principal. Recomendações para futuros trabalhos
pesquisa-ação considerando o framework original e 1 ciclo para as adaptações, este estudo ainda não é conclusivo. • Novos ciclos referentes à nova abordagem devem ser conduzidos nos projetos escolhidos para este estudo para validar realmente as mudanças no framework. • O framework de Seaman et al. (2011) é um primeiro e importante passo, porém com as adaptações realizadas é mais aceito pelos participantes da pesquisa.