Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Defesa do Mestrado em Engenharia de Software - IPT/USP

Defesa do Mestrado em Engenharia de Software - IPT/USP

Apresentação na defesa de mestrado em engenharia de computação com ênfase em engenharia de software

5659853d6c105644c6521dbf7586baef?s=128

Frederico Oliveira

July 01, 2015
Tweet

Transcript

  1. Gerenciamento da Dívida Técnica em projetos de software utilizando Scrum:

    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
  2. Agenda • Motivação da pesquisa • Objetivo • Estudos relacionados

    • Método • Ciclos dessa pesquisa-ação • Análise de resultados • Ciclo de adaptações • Limitações • Recomendações para futuros trabalhos • Conclusão geral
  3. Motivação da pesquisa Metáfora da Dívida Técnica “A primeira vez

    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)
  4. Motivação da pesquisa • Dívida Técnica x Métodos Ágeis •

    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)
  5. Motivação da pesquisa • Dívida Técnica x Scrum • Falta

    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)
  6. Motivação da pesquisa • Pesquisa de Zazworka et al. (2013):

    ê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)
  7. Objetivo Avaliar a aplicação dos três estágios do framework de

    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.
  8. Estudos relacionados Gerenciamento da Dívida Técnica por C. Seaman e

    Y. Guo Fonte: Adaptado de Seaman et al. (2011) e Oliveira (2011)
  9. Dívida Técnica durante o planejamento do ciclo Estudos relacionados Gerenciamento

    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.
  10. Dívida Técnica durante o planejamento do ciclo Estudos relacionados Gerenciamento

    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)
  11. Estudos relacionados Gerenciamento da Dívida Técnica por C. Seaman e

    Y. Guo
  12. Monitoramento da Dívida Técnica ao longo do tempo Estudos relacionados

    Gerenciamento da Dívida Técnica por C. Seaman e Y. Guo Fonte: Adaptado de Seaman et al. (2011) Principal Juros
  13. Estudos relacionados Dívida Técnica visível Fonte: Adaptado de Rubin (2013)

  14. • Pesquisa-Ação (DICK, 1993) , (KOCK et. al, 1997), (THIOLLENT,

    2011), (O´BRIEN, 1998) • Pesquisa: ampliar o conhecimento científico. • Ação: promover uma melhoria na organização. • Pesquisadores e participantes estão envolvidos de modo cooperativo; • Problemas reais. • 4 ciclos • Identificação; • Medição; • Tomada de Decisão; • Adaptação do framework. • Seminários Método Fonte: Adaptado de Susman (1983)
  15. Método - Projetos Selecionados

  16. • Fontes de informação • Notas de Reunião obtidas nos

    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
  17. Ciclos dessa pesquisa-ação Diagnosticar • Software de gestão de benefícios

    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.
  18. Ciclos dessa pesquisa-ação Diagnosticar • Solicitação de ambos os projetos

    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.
  19. Ciclos dessa pesquisa-ação (ambos projetos) 1º ciclo: Identificar as dívidas

    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.
  20. Ciclos dessa pesquisa-ação (ambos projetos) 1º ciclo: Identificar as dívidas

    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
  21. Ciclos dessa pesquisa-ação (ambos projetos) 1º ciclo: Identificar as dívidas

    e escolher um método para visualizá-las • Avaliação e Aprendizagem
  22. Ciclos dessa pesquisa-ação (ambos projetos) 2º ciclo: Medição da Dívida

    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.
  23. Ciclos dessa pesquisa-ação (ambos projetos) 2º ciclo: Medição da Dívida

    Técnica • Avaliação e Aprendizagem
  24. Ciclos dessa pesquisa-ação (ambos projetos) 3º ciclo: Monitoramento da Dívida

    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.
  25. Ciclos dessa pesquisa-ação (ambos projetos) 3º ciclo: Monitoramento da Dívida

    Técnica • Avaliação e Aprendizagem
  26. Ciclos dessa pesquisa-ação (ambos projetos) 3º ciclo: Monitoramento da Dívida

    Técnica • Avaliação e Aprendizagem
  27. Análise de Resultados • Papéis do Scrum para identificação, medição

    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.
  28. Análise de Resultados • Medição da Dívida Técnica • Principal

    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.
  29. Ciclo de Adaptações (SoftOne) • Diagnosticar • Primeira dificuldade: três

    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...
  30. • Planejamento das Ações e Agir • Reduzir de 3

    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)
  31. • Planejamento das Ações e Agir • Passo 3: para

    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)
  32. • Planejamento das Ações e Agir • Seja feito para

    cada dívida. • Utilização da ferramenta Excel. • Durante 4 semanas. Ciclo de Adaptações (SoftOne) Monitoramento da Dívida Técnica
  33. Ciclo de Adaptações (SoftOne) • Avaliação e Aprendizagem • 5

    novas dívidas foram criadas. • Tempo médio gasto no preenchimento dos campos de identificação e medição: 6 minutos.
  34. Ciclo de Adaptações (SoftOne) • Avaliação e Aprendizagem Você é

    a favor ou contra com a continuidade do framework adaptado no projeto? 84% SIM 16% NÃO
  35. • Novos ciclos referentes à nova abordagem devem ser concluídos

    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
  36. • Aplicação da nova abordagem em novos ciclos de pesquisa-ação

    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
  37. Conclusão geral • Apesar da condução de 3 ciclos da

    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.