SlideShare uma empresa Scribd logo
1 de 51
Estimativas em projetos
de software


Vitor Alcântara Batista
Engenharia de Processos
Agenda


O que é uma estimativa e conceitos relacionados
Fatores que influenciam as estimativas
Técnicas de estimativa
– Wideband Delphi
– COCOMO II
– Composição/decomposição




                                                  2
1. O que é uma estimativa e conceitos
relacionados
O “Processo” usual de Estimativas de Software




                                                             O quêee?!
                                                            Tudo isso??



                                                        Mas precisamos
                                                        disso pronto em
Entrada            “Processo” de           Estimativa       2 meses!


  (?)                estimativa                (??)        Não seja
                                                          pessimista!
                                                         Neste projeto
                                                           tudo vai
                                                        caminhar melhor




        Estimativa “melhor”              “Readequação”
              (????)                        Gerencial
Por que ocorre essa “Revisão Gerencial”?


Provavelmente pelo desconhecimento da diferença
entre:
– Estimativa
– Meta
– Objetivo de negócio de uma organização
Estimativa, meta e objetivo de negócio




                                  Objetivo de negócio

                           Meta

              Estimativa




                                                        Prazo
Risco do projeto




                          Objetivo de negócio

                   Meta

                                       Estimativa


                                      Risco



                                                    Prazo
Estimativa x Meta




                      Estimativa




Meta
Exemplo de estimativa


Pergunta: “Forneça uma estimativa da temperatura da
superfície do Sol em ºC que tenha uma confiabilidade
de 90%”
Era esperado uma resposta do tipo: “Entre 500 ºC e
10.000 ºC”
Resposta correta: aproximadamente 6000 ºC.
Agora que aprendemos...


Estimar com 90% de confiança:
 – Qual a altura da torre Burj Dubai, o maior prédio do
   mundo?
 – Resp: aprox. 828m




                                                          10
O que é uma boa estimativa?




            100%
                       Mediana
                       (50/50)




Probabilidade



                            Cronograma, Esforço,
                            Custo
Uma boa estimativa é aquela que tem 25% ou menos de
         erro, em pelo menos 75% dos casos
                    [McConnell 2006]
A Lei de Parkinson


   “O trabalho expande-se de modo a preencher o
     tempo disponível para sua realização.”


Cyril Northcote Parkinson, “Parkinson's law: The pursuit of progress”, John Murray, 1958
Subestimar x superestimar




Nan, N., & Harter, D. E. (2009). Impact of Budget and Schedule Pressure on Software
Development Cycle Time and Effort. IEEE Transactions on Software Engineering
O cone da incerteza


10

           4

                             2
                                             1,5
                                                              1,25               1,1
                                                                                                 1
 1

                                                                                 0,9             1
                                                               0,8
                                            0,67
                           0,5

         0,25

0,1
      C on ce p ção   A p r ovação da    Re q u is itos   De s e n h o d e    De s e n h o    Pr o du to
         in icial      d e fin ição do   co m ple tos      in te r face s    d e talh ado    com p le to
                          pr o d u to                       com p le to      com p le to



                                         Fases do processo

      Barry Boehm, Software Engineering Economics, Prentice Hall, 1981.
Por que as estimativas dão errado?


Excesso de alterações de requisitos (acertar um alvo
que se move)
Falta de conhecimento da organização sobre sua
própria capacidade (dados históricos)
Otimismo
Requisitos imprecisos ou incompletos
Estimativas só são confiáveis em fases adiantadas dos
projetos, mas normalmente são requeridas na base do
“cone da incerteza”
Influência de dados irrelevantes


     2 Experimentos realizado com 165 profissionais
                    Grupo            Meta do cliente         Mediana da
                                                             estimativa
                   Very_low                 4                   60 h
                     Low                    40                  100 h
                     High                  800                  300 h
                    Control                  -                  160 h


                     Grupo           Palavras usadas         Mediana da
                                                             estimativa
                      Low            Pequena melhoria            40 h
                      High                  Nova                 80 h
                                       funcionalidade
                     Control              melhoria               50 h


M. Jørgensen, and S. Grimstad. Avoiding Irrelevant and Misleading Information When Estimating
Development Effort, IEEE Software(May/June):78-83, 2008.
Trabalhos semelhantes: http://simula.no/people/magnej/bibliography
                                                                                                16
Indicadores de acurácia de estimativas




                                              PRED(x) = % de
                                              erros menores que x




         ŷ = valor estimado, y = valor real


                                                                    17
2. Fatores que influenciam as estimativas
Alguns fatores que influenciam as estimativas


Tamanho do projeto/produto sendo desenvolvido
Tipo de produto
Equipe do projeto
Tamanho do produto


Em software há deseconomia de escala
Deseconomia de escala




Porque há essa deseconomia?
Crescimento exponencial dos canais de comunicação




       3 canais                    6 canais




E para uma equipe de 10 pessoas?         45 canais
Tipo do produto



                                        LOC/PM
Tipo de Software         10,000-LOC   100,000-LOC 250,000-LOC
Aeronáutica                   200          50          40
Sistemas de Gestão           3.000        600         500
Sistemas embutidos            300          70          60
Sistemas para Internet       1.500        300         200
Sistemas para Intranet       4.000        800         600
Tempo real                    200          50          40
Equipe
Outros fatores


Requisitos de desempenho / tamanho da base de dados
Requisitos de usabilidade
Flexibilidade na proposição da solução
Distribuição espacial da equipe
Pressão pelo prazo de entrega
3. Técnicas de estimativa
O Processo “correto” de estimativas


                      Requisitos


                                                Estimar tamanho          Tamanho
                                                   do produto

                                            Estimar esforço de           Produtividade
                                                                                            Dados
                                             desenvolvimento                               históricos
                                                                         Distribuição de
            Recursos                      Estimar cronograma e           esforço
           disponíveis                    alocação de recursos

           Indicadores de                           Estimar
          custo por recurso                          custo

                                                    Verificar                Estimativa
                              [ e stimati vas      estimativas               aprovada
                               reprovadas ]
                                                         [ estimativas                                  Analisar o processo
                                                          aprovadas ]                                      de estimativa
            [ obtenção de dados reais,
              alteração de requisitos ]           Acompanhar                Dados reais
                                                desenvolvimento              do projeto
[ sim ]      Necessário
             reestimar?

           [ não ]
Técnicas de estimativa


Utilização de dados históricos
Wideband Delphi
COCOMO II
Decomposição e composição
Outras
Tipos de dados históricos


Dados da Indústria (ISBSG, COCOMO, etc).
Dados da organização
Dados do projeto em execução
Dados básicos a serem coletados


Tamanho (LOC, PF, etc.)
Esforço (PM ou horas)
Prazo
Exemplo




Projeto     Tamanho (PF) Esforço (PM)   Prazo (meses)
   A           1000          12,5            12
   B           2000           29             22
   C            500          6,25             4

D (novo)        3500          ?              ?
Exemplo




                                                       Produtividade
Projeto    Tamanho (PF) Esforço (PM)   Prazo (meses)
                                                          (PF/PM)
   A          1000          12,5           12               80,00
   B          2000           29            22               68,97
   C          500             6            4                83,33
                                          Média             77,43

D (novo)      3500          45,20            ?             77,43
Dados ISBSG para novos desenvolvimentos
Wideband Delphi


É uma técnica de estimativa em grupos de
especialistas
Útil principalmente quando o conceito do projeto
ainda está muito indefinido
Como funciona:
 1. O coordenador distribui a “especificação do
      projeto/produto” e um formulário para estimativa
      a cada membro
 2. Os membros são reunidos para discutir
      aspectos de estimativa relacionados ao projeto.
 3. Cada participante faz a sua estimativa individual
Wideband Delphi (cont.)


4. O coordenador prepara um relatório com as
   estimativas:




5. O grupo se reúne e discute as variações
6. Os participantes votam anonimamente, se aceitam ou
   não a média. Se não houver unanimidade, recomeça
   do passo 3.
COCOMO II


COnstrutive COst MOdel.
– Método paramétrico proposto por Barry
  Boehm (e outros) para estimar tamanho e
  prazo de projetos.
– Se baseia nas equações abaixo:
Destrinchando o COCOMO




B = 0,91
SFj = Fatores de escala
– Precedência
– Flexibilidade na solução
– Resolução de riscos/arquitetura
– Coesão da equipe
– Maturidade do processo
Fatores de escala



Impactam no expoente da equação
Destrinchando o COCOMO, parte 2




A = 2,94
Size = tamanho em milhares de SLOC, mas pode-se
usar pontos de função não ajustados ou pontos de
objetos
EMi = 16 (ou 5) multiplicadores de esforços, divididos
em:
– Produto
– Plataforma
– Pessoal
– Projeto
Níveis dos fatores de escala
Níveis dos multiplicadores de esforço


Para o parâmetro CPLX (complexidade do produto)



Para ACAP (capacitação do analista de requisitos)
Resumindo




               A = 2,94 e      B = 0,91

Com todos os parâmetros no nível nominal, teremos:
              E = 0,91 + 0,01 x 18,97 = 1,1
                PM = 2,94 x Size^1,1 x 1
Resultados do COCOMO II no Synergia



Sem calibração




Calibrado
Composição e decomposição


Dividir o projeto em partes menores, como módulos
ou funcionalidades
      Funcionalidade   Esforço estimado (PM)
             1                    2
             2                   2,5
             3                    1
             4                   0,5
             5                    1
             6                    3
           Total                 10

Qual a vantagem?
“Lei dos números grandes”




                  Esforço
Funcionalidade                Esforço real    Erro
                 estimado
      1              2               3        50,0%
      2             2,5             2,1      -16,0%
      3              1              0,5      -50,0%
      4             0,5             1,2      140,0%
      5              1               2       100,0%
      6              3               2       -33,3%
    Total            10            10,8       8,0%
Experiência no Synergia




                          46
Resultado de estimativas feitas pelos executores das
   tarefas no Synergia




MMRE = 21,8%.               Anterior: 52,8%.
PRED(0,25) = 69,6% .        Anterior: 36,8%
Outras técnicas de estimativa


Modelos baseados em Proxy
– Utiliza tabelas de complexidade baseada em número de alguns
  componentes. Ex: telas, classes, relatórios, tabelas de banco de
  dados, etc.
Técnicas de Aprendizado de máquina
 – redes neurais e redes neuro-fuzzy
Técnicas estatísticas de regressão linear
Qual a melhor técnica?


Não há uma resposta definitiva
– Jorgensen, M., & Shepperd, M. (2007). A Systematic Review
  of Software Development Cost Estimation Studies. IEEE
  Transactions on Software Engineering.




                                                              49
Perguntas?
Contato


Vitor Alcântara Batista
Equipe de Engenharia de processos
vitor@dcc.ufmg.br




                                    51

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Iso 12207
Iso 12207Iso 12207
Iso 12207
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
[Palestra] Gestão de Processos
[Palestra] Gestão de Processos[Palestra] Gestão de Processos
[Palestra] Gestão de Processos
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?Como especificar requisitos em metodologias ágeis?
Como especificar requisitos em metodologias ágeis?
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Introdução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com UnityIntrodução ao Desenvolvimemto de Jogos com Unity
Introdução ao Desenvolvimemto de Jogos com Unity
 
Mitos e verdades sobre o MVP (Minimum Viable Product)
Mitos e verdades sobre o MVP (Minimum Viable Product)Mitos e verdades sobre o MVP (Minimum Viable Product)
Mitos e verdades sobre o MVP (Minimum Viable Product)
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Business Intelligence & Sistemas de Apoio à Decisão
Business Intelligence & Sistemas de Apoio à DecisãoBusiness Intelligence & Sistemas de Apoio à Decisão
Business Intelligence & Sistemas de Apoio à Decisão
 
Modelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de SoftwareModelo V - Desenvolvimento de Software
Modelo V - Desenvolvimento de Software
 
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseadaDesenvolvendo sistemas gigantes na internet com arquitetura baseada
Desenvolvendo sistemas gigantes na internet com arquitetura baseada
 
Apresentação Metodologia Ágil: Família Crystal de Cockburn
Apresentação Metodologia Ágil: Família Crystal de CockburnApresentação Metodologia Ágil: Família Crystal de Cockburn
Apresentação Metodologia Ágil: Família Crystal de Cockburn
 
Como criar uma persona passo a passo de maneira fácil e definitiva
Como criar uma persona passo a passo de maneira fácil e definitivaComo criar uma persona passo a passo de maneira fácil e definitiva
Como criar uma persona passo a passo de maneira fácil e definitiva
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas15 padrões de mensageria para integração de sistemas
15 padrões de mensageria para integração de sistemas
 

Destaque

Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricas
elliando dias
 
Informativo OpenTech
Informativo OpenTechInformativo OpenTech
Informativo OpenTech
Cintia Galvan
 
Estimativa de Esforço
Estimativa de EsforçoEstimativa de Esforço
Estimativa de Esforço
elliando dias
 

Destaque (20)

Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
 
SaaS - Como precificar?
SaaS - Como precificar?SaaS - Como precificar?
SaaS - Como precificar?
 
USC COCOMO II
USC COCOMO IIUSC COCOMO II
USC COCOMO II
 
Análise de Pontos de Função
Análise de Pontos de FunçãoAnálise de Pontos de Função
Análise de Pontos de Função
 
COCOMO E COCOMO II
COCOMO E COCOMO IICOCOMO E COCOMO II
COCOMO E COCOMO II
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricas
 
Plano de projeto de software
Plano de projeto de softwarePlano de projeto de software
Plano de projeto de software
 
Estimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de SoftwareEstimativas de Esforço - Engenharia de Software
Estimativas de Esforço - Engenharia de Software
 
Finanças para startup (preço de venda)
Finanças para startup (preço de venda)Finanças para startup (preço de venda)
Finanças para startup (preço de venda)
 
Protótipo de Software para Rastreamento de Cargas (Apresentação)
Protótipo de Software para Rastreamento de Cargas (Apresentação)Protótipo de Software para Rastreamento de Cargas (Apresentação)
Protótipo de Software para Rastreamento de Cargas (Apresentação)
 
Informativo OpenTech
Informativo OpenTechInformativo OpenTech
Informativo OpenTech
 
Análise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAnálise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean Startups
 
TDC 2015 Porto Alegre - Preciso estimar mesmo?
TDC 2015 Porto Alegre - Preciso estimar mesmo?TDC 2015 Porto Alegre - Preciso estimar mesmo?
TDC 2015 Porto Alegre - Preciso estimar mesmo?
 
Otimização do Desempenho de Times Ágeis - UaiJUG techdays - Uberlândia - MG
Otimização do Desempenho de Times Ágeis - UaiJUG techdays - Uberlândia - MGOtimização do Desempenho de Times Ágeis - UaiJUG techdays - Uberlândia - MG
Otimização do Desempenho de Times Ágeis - UaiJUG techdays - Uberlândia - MG
 
Fi ti- aula 10
Fi ti- aula 10Fi ti- aula 10
Fi ti- aula 10
 
Cadernodequestes ano2007
Cadernodequestes ano2007Cadernodequestes ano2007
Cadernodequestes ano2007
 
COCOMO II
COCOMO IICOCOMO II
COCOMO II
 
Estimativa de Esforço
Estimativa de EsforçoEstimativa de Esforço
Estimativa de Esforço
 
ITFT - Cocomo model
ITFT -  Cocomo modelITFT -  Cocomo model
ITFT - Cocomo model
 
Medida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de FunçãoMedida de Esforço de Software com Análise de Ponto de Função
Medida de Esforço de Software com Análise de Ponto de Função
 

Semelhante a Estimativas em projetos de software

Gerenciamento de Riscos: uma abordagem prática
Gerenciamento de Riscos: uma abordagem práticaGerenciamento de Riscos: uma abordagem prática
Gerenciamento de Riscos: uma abordagem prática
elliando dias
 
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou QuantitativaAnálise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
elliando dias
 
09 risco pitagoras
09 risco    pitagoras09 risco    pitagoras
09 risco pitagoras
fernandao777
 

Semelhante a Estimativas em projetos de software (20)

Agile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeitaAgile brazil 2013: desconstruindo o mito da estimativa perfeita
Agile brazil 2013: desconstruindo o mito da estimativa perfeita
 
Aula02 gestao tradicional
Aula02 gestao tradicionalAula02 gestao tradicional
Aula02 gestao tradicional
 
Desenvolvimento Dos Si
Desenvolvimento Dos SiDesenvolvimento Dos Si
Desenvolvimento Dos Si
 
Gerenciamento de Riscos: uma abordagem prática
Gerenciamento de Riscos: uma abordagem práticaGerenciamento de Riscos: uma abordagem prática
Gerenciamento de Riscos: uma abordagem prática
 
Macrosolutions Consultoria: Implantação de Métodos Quantitativos e Simuladore...
Macrosolutions Consultoria: Implantação de Métodos Quantitativos e Simuladore...Macrosolutions Consultoria: Implantação de Métodos Quantitativos e Simuladore...
Macrosolutions Consultoria: Implantação de Métodos Quantitativos e Simuladore...
 
Gerenciamento de Riscos
Gerenciamento de RiscosGerenciamento de Riscos
Gerenciamento de Riscos
 
O Pensamento Enxuto na Análise de Negócios
O Pensamento Enxuto na Análise de NegóciosO Pensamento Enxuto na Análise de Negócios
O Pensamento Enxuto na Análise de Negócios
 
Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro Locaweb
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb Curitiba
 
Implementação de projetos
Implementação de projetosImplementação de projetos
Implementação de projetos
 
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
Gestão de Projetos - Aula 4 (TAD-MA4 e TAD-NA4)
 
Prasys gerenciamento de riscos ágil
Prasys   gerenciamento de riscos ágilPrasys   gerenciamento de riscos ágil
Prasys gerenciamento de riscos ágil
 
Macrosolutions Consultoria: Estruturação dos Processos de Gerenciamento de Ri...
Macrosolutions Consultoria: Estruturação dos Processos de Gerenciamento de Ri...Macrosolutions Consultoria: Estruturação dos Processos de Gerenciamento de Ri...
Macrosolutions Consultoria: Estruturação dos Processos de Gerenciamento de Ri...
 
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou QuantitativaAnálise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
Análise de Riscos em Projetos : Uma Abordagem Qualitativa ou Quantitativa
 
Da Gestão 1.0 A Gestão 2.0
Da Gestão 1.0 A Gestão 2.0Da Gestão 1.0 A Gestão 2.0
Da Gestão 1.0 A Gestão 2.0
 
Gestão de Projetos - Aula 9 (TAD-NB4)
Gestão de Projetos - Aula 9 (TAD-NB4)Gestão de Projetos - Aula 9 (TAD-NB4)
Gestão de Projetos - Aula 9 (TAD-NB4)
 
09 risco pitagoras
09 risco    pitagoras09 risco    pitagoras
09 risco pitagoras
 
Agilidade com Pontos de Função é um Paradoxo? Agile Brazil 2015
Agilidade com Pontos de Função é um Paradoxo? Agile Brazil 2015Agilidade com Pontos de Função é um Paradoxo? Agile Brazil 2015
Agilidade com Pontos de Função é um Paradoxo? Agile Brazil 2015
 
Pdca p-g
Pdca p-gPdca p-g
Pdca p-g
 
Produtividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de SoftwareProdutividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de Software
 

Mais de Synergia - Engenharia de Software e Sistemas

Mais de Synergia - Engenharia de Software e Sistemas (13)

Testes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de confortoTestes ágeis: saindo da zona de conforto
Testes ágeis: saindo da zona de conforto
 
Desenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWTDesenvolvendo aplicações web com GWT
Desenvolvendo aplicações web com GWT
 
Teste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagensTeste de Aceitação: problemas, desafios e abordagens
Teste de Aceitação: problemas, desafios e abordagens
 
Por que contratar projetos ágeis?
Por que contratar projetos ágeis?Por que contratar projetos ágeis?
Por que contratar projetos ágeis?
 
Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
 
Como os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeisComo os testes irão se modificar com o advento das metodologias ágeis
Como os testes irão se modificar com o advento das metodologias ágeis
 
Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)Gestão de Processos de Negócio (BPM)
Gestão de Processos de Negócio (BPM)
 
Controle estatístico de processos
Controle estatístico de processosControle estatístico de processos
Controle estatístico de processos
 
O retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuárioO retorno do investimento no projeto adequado de interfaces de usuário
O retorno do investimento no projeto adequado de interfaces de usuário
 
Gerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente críticaGerenciamento de projetos usando corrente crítica
Gerenciamento de projetos usando corrente crítica
 
Aplicações Web Ricas e Acessíveis
Aplicações Web Ricas e AcessíveisAplicações Web Ricas e Acessíveis
Aplicações Web Ricas e Acessíveis
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®Introdução a gerenciamento de projetos e PMBoK®
Introdução a gerenciamento de projetos e PMBoK®
 

Estimativas em projetos de software

  • 1. Estimativas em projetos de software Vitor Alcântara Batista Engenharia de Processos
  • 2. Agenda O que é uma estimativa e conceitos relacionados Fatores que influenciam as estimativas Técnicas de estimativa – Wideband Delphi – COCOMO II – Composição/decomposição 2
  • 3. 1. O que é uma estimativa e conceitos relacionados
  • 4. O “Processo” usual de Estimativas de Software O quêee?! Tudo isso?? Mas precisamos disso pronto em Entrada “Processo” de Estimativa 2 meses! (?) estimativa (??) Não seja pessimista! Neste projeto tudo vai caminhar melhor Estimativa “melhor” “Readequação” (????) Gerencial
  • 5. Por que ocorre essa “Revisão Gerencial”? Provavelmente pelo desconhecimento da diferença entre: – Estimativa – Meta – Objetivo de negócio de uma organização
  • 6. Estimativa, meta e objetivo de negócio Objetivo de negócio Meta Estimativa Prazo
  • 7. Risco do projeto Objetivo de negócio Meta Estimativa Risco Prazo
  • 8. Estimativa x Meta Estimativa Meta
  • 9. Exemplo de estimativa Pergunta: “Forneça uma estimativa da temperatura da superfície do Sol em ºC que tenha uma confiabilidade de 90%” Era esperado uma resposta do tipo: “Entre 500 ºC e 10.000 ºC” Resposta correta: aproximadamente 6000 ºC.
  • 10. Agora que aprendemos... Estimar com 90% de confiança: – Qual a altura da torre Burj Dubai, o maior prédio do mundo? – Resp: aprox. 828m 10
  • 11. O que é uma boa estimativa? 100% Mediana (50/50) Probabilidade Cronograma, Esforço, Custo Uma boa estimativa é aquela que tem 25% ou menos de erro, em pelo menos 75% dos casos [McConnell 2006]
  • 12. A Lei de Parkinson “O trabalho expande-se de modo a preencher o tempo disponível para sua realização.” Cyril Northcote Parkinson, “Parkinson's law: The pursuit of progress”, John Murray, 1958
  • 13. Subestimar x superestimar Nan, N., & Harter, D. E. (2009). Impact of Budget and Schedule Pressure on Software Development Cycle Time and Effort. IEEE Transactions on Software Engineering
  • 14. O cone da incerteza 10 4 2 1,5 1,25 1,1 1 1 0,9 1 0,8 0,67 0,5 0,25 0,1 C on ce p ção A p r ovação da Re q u is itos De s e n h o d e De s e n h o Pr o du to in icial d e fin ição do co m ple tos in te r face s d e talh ado com p le to pr o d u to com p le to com p le to Fases do processo Barry Boehm, Software Engineering Economics, Prentice Hall, 1981.
  • 15. Por que as estimativas dão errado? Excesso de alterações de requisitos (acertar um alvo que se move) Falta de conhecimento da organização sobre sua própria capacidade (dados históricos) Otimismo Requisitos imprecisos ou incompletos Estimativas só são confiáveis em fases adiantadas dos projetos, mas normalmente são requeridas na base do “cone da incerteza”
  • 16. Influência de dados irrelevantes 2 Experimentos realizado com 165 profissionais Grupo Meta do cliente Mediana da estimativa Very_low 4 60 h Low 40 100 h High 800 300 h Control - 160 h Grupo Palavras usadas Mediana da estimativa Low Pequena melhoria 40 h High Nova 80 h funcionalidade Control melhoria 50 h M. Jørgensen, and S. Grimstad. Avoiding Irrelevant and Misleading Information When Estimating Development Effort, IEEE Software(May/June):78-83, 2008. Trabalhos semelhantes: http://simula.no/people/magnej/bibliography 16
  • 17. Indicadores de acurácia de estimativas PRED(x) = % de erros menores que x ŷ = valor estimado, y = valor real 17
  • 18. 2. Fatores que influenciam as estimativas
  • 19. Alguns fatores que influenciam as estimativas Tamanho do projeto/produto sendo desenvolvido Tipo de produto Equipe do projeto
  • 20. Tamanho do produto Em software há deseconomia de escala
  • 21. Deseconomia de escala Porque há essa deseconomia?
  • 22. Crescimento exponencial dos canais de comunicação 3 canais 6 canais E para uma equipe de 10 pessoas? 45 canais
  • 23. Tipo do produto LOC/PM Tipo de Software 10,000-LOC 100,000-LOC 250,000-LOC Aeronáutica 200 50 40 Sistemas de Gestão 3.000 600 500 Sistemas embutidos 300 70 60 Sistemas para Internet 1.500 300 200 Sistemas para Intranet 4.000 800 600 Tempo real 200 50 40
  • 25. Outros fatores Requisitos de desempenho / tamanho da base de dados Requisitos de usabilidade Flexibilidade na proposição da solução Distribuição espacial da equipe Pressão pelo prazo de entrega
  • 26. 3. Técnicas de estimativa
  • 27. O Processo “correto” de estimativas Requisitos Estimar tamanho Tamanho do produto Estimar esforço de Produtividade Dados desenvolvimento históricos Distribuição de Recursos Estimar cronograma e esforço disponíveis alocação de recursos Indicadores de Estimar custo por recurso custo Verificar Estimativa [ e stimati vas estimativas aprovada reprovadas ] [ estimativas Analisar o processo aprovadas ] de estimativa [ obtenção de dados reais, alteração de requisitos ] Acompanhar Dados reais desenvolvimento do projeto [ sim ] Necessário reestimar? [ não ]
  • 28. Técnicas de estimativa Utilização de dados históricos Wideband Delphi COCOMO II Decomposição e composição Outras
  • 29. Tipos de dados históricos Dados da Indústria (ISBSG, COCOMO, etc). Dados da organização Dados do projeto em execução
  • 30. Dados básicos a serem coletados Tamanho (LOC, PF, etc.) Esforço (PM ou horas) Prazo
  • 31. Exemplo Projeto Tamanho (PF) Esforço (PM) Prazo (meses) A 1000 12,5 12 B 2000 29 22 C 500 6,25 4 D (novo) 3500 ? ?
  • 32. Exemplo Produtividade Projeto Tamanho (PF) Esforço (PM) Prazo (meses) (PF/PM) A 1000 12,5 12 80,00 B 2000 29 22 68,97 C 500 6 4 83,33 Média 77,43 D (novo) 3500 45,20 ? 77,43
  • 33. Dados ISBSG para novos desenvolvimentos
  • 34. Wideband Delphi É uma técnica de estimativa em grupos de especialistas Útil principalmente quando o conceito do projeto ainda está muito indefinido Como funciona: 1. O coordenador distribui a “especificação do projeto/produto” e um formulário para estimativa a cada membro 2. Os membros são reunidos para discutir aspectos de estimativa relacionados ao projeto. 3. Cada participante faz a sua estimativa individual
  • 35. Wideband Delphi (cont.) 4. O coordenador prepara um relatório com as estimativas: 5. O grupo se reúne e discute as variações 6. Os participantes votam anonimamente, se aceitam ou não a média. Se não houver unanimidade, recomeça do passo 3.
  • 36. COCOMO II COnstrutive COst MOdel. – Método paramétrico proposto por Barry Boehm (e outros) para estimar tamanho e prazo de projetos. – Se baseia nas equações abaixo:
  • 37. Destrinchando o COCOMO B = 0,91 SFj = Fatores de escala – Precedência – Flexibilidade na solução – Resolução de riscos/arquitetura – Coesão da equipe – Maturidade do processo
  • 38. Fatores de escala Impactam no expoente da equação
  • 39. Destrinchando o COCOMO, parte 2 A = 2,94 Size = tamanho em milhares de SLOC, mas pode-se usar pontos de função não ajustados ou pontos de objetos EMi = 16 (ou 5) multiplicadores de esforços, divididos em: – Produto – Plataforma – Pessoal – Projeto
  • 40. Níveis dos fatores de escala
  • 41. Níveis dos multiplicadores de esforço Para o parâmetro CPLX (complexidade do produto) Para ACAP (capacitação do analista de requisitos)
  • 42. Resumindo A = 2,94 e B = 0,91 Com todos os parâmetros no nível nominal, teremos: E = 0,91 + 0,01 x 18,97 = 1,1 PM = 2,94 x Size^1,1 x 1
  • 43. Resultados do COCOMO II no Synergia Sem calibração Calibrado
  • 44. Composição e decomposição Dividir o projeto em partes menores, como módulos ou funcionalidades Funcionalidade Esforço estimado (PM) 1 2 2 2,5 3 1 4 0,5 5 1 6 3 Total 10 Qual a vantagem?
  • 45. “Lei dos números grandes” Esforço Funcionalidade Esforço real Erro estimado 1 2 3 50,0% 2 2,5 2,1 -16,0% 3 1 0,5 -50,0% 4 0,5 1,2 140,0% 5 1 2 100,0% 6 3 2 -33,3% Total 10 10,8 8,0%
  • 47. Resultado de estimativas feitas pelos executores das tarefas no Synergia MMRE = 21,8%. Anterior: 52,8%. PRED(0,25) = 69,6% . Anterior: 36,8%
  • 48. Outras técnicas de estimativa Modelos baseados em Proxy – Utiliza tabelas de complexidade baseada em número de alguns componentes. Ex: telas, classes, relatórios, tabelas de banco de dados, etc. Técnicas de Aprendizado de máquina – redes neurais e redes neuro-fuzzy Técnicas estatísticas de regressão linear
  • 49. Qual a melhor técnica? Não há uma resposta definitiva – Jorgensen, M., & Shepperd, M. (2007). A Systematic Review of Software Development Cost Estimation Studies. IEEE Transactions on Software Engineering. 49
  • 51. Contato Vitor Alcântara Batista Equipe de Engenharia de processos vitor@dcc.ufmg.br 51