Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

IBM Setembro

No description
by

GRAZIELA TONIN

on 2 May 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of IBM Setembro

Dívida Técnica
Agenda
Objetivos da Pesquisa
Pesquisas Realizadas
Status da Pesquisa
“... 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 através 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...”
(Ward Cunningham, 1992).
Dívida Técnica
Agradecimentos
Graziela Simone Tonin
Gestão de Dívida Técnica

Alfredo Goldman
São Paulo, Setembro, 2013.
Instituto de Matemática e Estatística
Universidade de São Paulo
Contextualização
Próximos Passos
Desenvolvimento x Manutenção de Software
Contextualização
Impactam
Necessidade de priorizar tarefas sob restrição de tempo e limitação de recursos.
Comumente compromissos de manutenção como Dívida Técnica não são incorporados ao processo de tomada de decisão
Dívida Técnica quando introduzida tem menor visibilidade para tomadores de decisão [Seaman, 2012]
Contextualização
Compreensível
Muitos exemplos de casos onde o não monitoramento da Dívida Técnica implicou:
Custos altíssimos
Problemas graves de qualidade
Incapacidade de adicionar novos recursos sem quebrar os já existentes
Incluindo perda prematura do sistema
Dificuldade de reagir as necessidades do negócio
Contextualização
Por outro lado
[Guo, 2011]
Comumente equipes tem sua produtividade medida levando em conta:
O quanto elas deveriam ter desenvolvido.
O quanto foi desenvolvido
Contextualização
Adicionalmente
[Guo, 2011]
Qualidade???
Pesquisas do Gartner (2012) CAsT (2011) apontam:
Dívida Técnica em 5 anos (2010 -2015) irá custar $1 trilhão.
250 bilhões de linha de código estavam em manutenção nos EUA em 2000.
O mercado de manutenção de software movimentava por ano nos EUA cerca de $70 bilhões (1993).
Contextualização
Adicionalmente
Surge o Manifesto Ágil
Vem obtendo bons resultados nos últimos anos.
Enfatiza a importância de se adaptar as mudanças.
Foco no que é importante para o cliente.
Bom o suficiente
Entregas contínuas
Contextualização
Em contrapartida
Compreender melhor o conceito de Dívida Técnica no contexto de Métodos Ágeis.
Desenvolver um modelo a ser seguido para o gerenciamento da dívida.
Validar o modelo aplicando em casos reais
Objetivos
Os Métodos Ágeis seguem os princípios e valores do Manifesto Ágil [Beck 2001] que surgiu em 2001, com o objetivo de discutir sobre uma nova maneira de olhar para o desenvolvimento de software diferente dos métodos tradicionais. Estes vem ganhando força nos últimos anos como uma forma eficaz e eficiente de gestão de projetos de software [Williams 2010]
Métodos Ágeis
Agradecimentos
Marco Aurelio Stelmar Netto.
Marcos Assunção.
(1) Identificar estudos sobre gerenciamento de Dívida Técnica;
(2) Identificar estudos que relacionam gerenciamento de Dívida Técnica e Metodologias Ágeis;
(3) Identificar métricas modelos e técnicas que vem sendo utilizadas para monitorar e identificarDívida Técnica;
Objetivos
(4) Sugerir um modelo de gerenciamento de Dívida Técnica, integrado aos princípios das Metodologias Ágeis;
(5) Aplicar o modelo em empresas de desenvolvimento de software;
(6) Expor o impacto gerado após a aplicação do modelo, levando em conta aspectos positivos e negativos.
Objetivos
Pesquisa de Mestrado: Decisões em Projetos de Desenvolvimento de Software e a Metáfora do Débito Técnico:
Um Estudo de Caso Exploratório
Pesquisas Realizadas
Pesquisas Realizadas
Metodologia de coleta de dados históricos
Pesquisas Realizadas
Metodologia de coleta de dados históricos por etapas
Pesquisas Realizadas
Uma Análise de Dívida Técnica em uma Empresa de Tecnologia com Desenvolvimento baseado em Scrum
(1) A empresa em estudo conhece o conceito de Dívida Técnica? Caso sim, como é considerado na gestão do projeto?
(2) Decisões Estratégicas implicaram na contração de Dívida Técnica?
(3) Qual foi o impacto ao longo do tempo?
Pesquisas Realizadas
Uma Análise de Dívida Técnica em uma Empresa de Tecnologia com Desenvolvimento baseado em Scrum
Pesquisas em Andamento
Trabalho de conclusão de curso
Análise das ferramentas existentes que podem auxiliar a identificar evidências de Dívida Técnica.
Dissertação de Mestrado:
(1) Considerar Dívida Técnica explicitamente na tomada de decisão impacta no custo de manutenção?
(2) Qual é a melhor forma para times de desenvolvimento integrar gerenciamento de Dívida Técnica em seus processos?
Pesquisas em Andamento
Tese de doutorado
Estudo Sobre Gerenciamento de Dívida Técnica no Contexto de Métodos Ágeis de Desenvolvimento de Software
Modelo de Gerenciamento de Dívida Técnica
Identificar
Monitorar
Gerenciar
Status da Pesquisa
Início de coleta de dados em empresas
Experimento realizado na disciplina de Laboratório de Programação Extrema
Qual a influência de deixar Dívida Técnica explícita para a equipe?
Mudanças no comportamento da equipe?
Próximos Passos
Continuar realizando múltiplos estudos de caso.
Fazer pesquisa ação sugerindo mudanças como:
Adotar determinadas ferramentas
Considerar Dívida Técnica
Monitorar o efeito dessas interferências ao longo do tempo
Definição do Conceito
Pesquisas existentes
Não existe uma teoria apenas uma metáfora
Carolyn Seaman estendeu a metáfora incluindo também outros artefatos que não somente código.
Pesquisas existentes
Framework Inicial de Gerenciamento de Dívida Técnica
Dívida Técnica Lista
Pesquisas existentes
Tarefas que deixaram de ser implementadas, mas que correm o risco de causar problemas futuros se não implementadas.
Ex: Testes que necessitam ser terminados.
Componentes/módulos/classes que necessitam de refactoring.
Dívida Técnica Lista
Pesquisas existentes
Que informações guardar sobre um item da lista
Descrição: O que? Onde? Porquê?
Principal: Quanto custaria se eu fosse fazer hoje.
Interesse: O que vai acontecer se eu não fizer?
Montante: quantidade de trabalho extra, se isso causar problemas mais tarde.
Probabilidade: de causar futuros problemas.
Monitoramento da Lista
Rever a lista de DT após cada release
Quais itens adicionar, quais pagar
Tipos de Dívida Técnica
Pesquisas existentes
Código/Design: código pobre, muito acoplamento.
Teste: baixa cobertura de testes, testes planejados mas não realizados.
Documentação: falta ou documentação inadequada.
Defeito: quais defeitos não foram fixados.
Infraestrutura: demora nas decisões de upgrade de versão.
Você vai precisar usar ferramentas e análises manuais
[Seaman, 2013]
[Seaman, 2013]
[Seaman, 2013]
[Seaman, 2013]
Dívida Técnica Estimativa
Pesquisas existentes
Melhor usar categorias como:
Baixo
Medio
Aldo
Adiar estimativas mais precisas até quando seja absolutamente necessário
Usar dados históricos quando possível
Qualquer estimativa é melhor que o método atual - Pressentimento
[Seaman, 2013]
Dívida Técnica Tomada de Decisão Cenário
Pesquisas existentes
Quando e quais itens de DT devem ser pagos?
Ex:
Significativo trabalho foi planejado para o componente X na próxima release , devemos pagar uma DT ao mesmo tempo?
Possibilidade
Lista de DT ordenadas por componentes e classficadas como baixa, média e alta prioridade
[Seaman, 2013]
Próximos Passos
Há algum projeto que trabalha com Dívida Técnica?
O que é Dívida Técnica para a IBM?
Que projetos poderiam ser analisados?
Laboratório XP
4 equipes em média 5 membros.
Projetos reais com clientes reais.
Entregas reais.
Qual a influência de deixar explícita Dívida Técnica para a equipe?

Laboratório XP
Treinamento para as equipes sobre Dívida Técnica.
Primeira entrevista.
Quadro de Dívida Técnica.
Segunda entrevista.
Laboratório XP - Exemplo de quadro
Laboratório XP - Primeiros Resultados
O que é DT?
Laboratório XP - Primeiros Resultados
Afeta a forma de desenvolver software?
Laboratório XP - Primeiros Resultados
Antes


Conceito existia mas era tratado de uma maneira informal.
Fazia uma ‘gambiarra’ e esquecia.
Tinha consciência mas não mudava.
Laboratório XP - Primeiros Resultados
Depois

A equipe discutia mais sobre o problema.
O desenvolvedor pensa ‘mais’ antes de contrair a Dívida.
Dívidas explícitas perturbam.
Dívidas contraídas que antes eram esquecidas agora eram pagas.
Acredita-se que melhora a qualidade.
E que pode auxiliar em possíveis negociações com clientes.
Priorizar qualidade.

Laboratório XP - Primeiros Resultados
Forma de coleta de dados sobre Dívida
Não foi considerado muito trabalho ter que preencher os cartões.
Positivo para deixar evidente as Dívidas.
Com o tempo pode se acostumar.

Quadro

Laboratório XP
Cartão
Alguns dados de preenchimento desnecessários ou muito difícil de estimar.
Juros.
Probabilidade de causar futuros problemas.


Casos UOL e MAPs
Treinamento
Acompanhamento das reuniões de Sprint.
Sugestões de como identiifcar.
Decidir quais equipes.
Sonar.
Jmine.
UOL
MAPs
Full transcript