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

Defesa do Mestrado em Engenharia de Software - ...

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

Frederico Oliveira

July 01, 2015
Tweet

More Decks by Frederico Oliveira

Other Decks in Technology

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. 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
  12. • 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)
  13. • 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
  14. 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.
  15. 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.
  16. 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.
  17. 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
  18. 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
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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...
  24. • 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)
  25. • 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)
  26. • 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
  27. 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.
  28. 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
  29. • 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
  30. • 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
  31. 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.