introdução ao planejamento de projetosleomurta/courses/2009.2/es2/aula3.pdf · antigo e fazer...
TRANSCRIPT
Exercício motivacional(sério!!!)
• Em grupo, imaginem que estão em 2.500 AC
• Um Faraó lhes disse:
– Quero uma pirâmidepara mim!!!
• Como vocês fariam para concretizar o desejo do Faraó?
Leonardo Murta 2Introdução ao Planejamento de Projetos
Outro exercício motivacional(sério também!)
• Em grupo, imaginem que vamos fazer um churrasco de início do curso de ES 2
• Como vocês fariam para concretizar o nosso churrasco?
Leonardo Murta 3Introdução ao Planejamento de Projetos
Análise dos exercícios
• O que teve em comum em fazer pirâmide no Egito antigo e fazer churrasco em Niterói?
– Ambos podem ser vistos como projetos, e projetos precisam ser gerenciados!
“Um projeto é um esforço temporário, realizado para criar um produto ou serviço único”
(PMI, 2004)
Leonardo Murta 4Introdução ao Planejamento de Projetos
Quais desses são projetos?
• Criar o logo para uma camisa do curso de ES 2• Produzir 50 camisas com esse logo• Passar na disciplina de ES 2• Estudar• Arrumar um(a) namorado(a)• Ficar com alguém• Idealizar um novo modelo de casa pré-moldada• Produzir milhares de casas pré-moldadas• Desenvolver um novo software• Dar manutenção nesse software
Leonardo Murta 5Introdução ao Planejamento de Projetos
Mas os que não são projetos não importam?
• Importam! Eles são operações permanentes, e também precisam ser gerenciados, contudo...
– São repetitivos
– Têm um grau mais alto de previsibilidade
– Exigem pouca criatividade
– Em alguns casos, podem ser automatizados
• Em suma: são mais fáceis de serem gerenciados!
Leonardo Murta 6Introdução ao Planejamento de Projetos
Operações Permanentes x Projetos
Operação 1 Operação 2 ... Operação N Operação N + 1
Projeto
Leonardo Murta 7Introdução ao Planejamento de Projetos
Voltando ao exercício...
• Mas fazer pirâmide ou churrasco é um projeto ouuma operação permanente?
• Depende...
– A primeira pirâmide construída sem dúvida é um projeto
– Um churrasco feito por uma churrascaria sem dúvida é uma operação permanente
A resposta está associada ao grau de inovação da tarefa!
Leonardo Murta 8Introdução ao Planejamento de Projetos
Tarefa de Casa
• Um dos maiores projetos da humanidade foi a ida à lua
• O Discovery Channel e a NASA fizeram um documentário sobre esse projeto– “When We Left Earth”
– São 6 episódios de 45 minutos cada
– Está disponível no Youtube
• Assistam ao vídeo!!!– Tragam comentários para as próximas aulas
Leonardo Murta Introdução ao Planejamento de Projetos 9
Projeto de Software
• Então, fazer software é igual a fazer pirâmide, churrasco, hambúrguer, ponte ou prédio? Não!!!– Software é intangível
– Software não está sujeito a leis externas ou normas aceitas universalmente
– Software não tem economia de escala
• Mas... Quando pensamos em uma ponte inédita, como a ponte Rio-Niterói quando foi construída, podemos encontrar sim algumas semelhanças!!!
Leonardo Murta 10Introdução ao Planejamento de Projetos
Software como produto intangível
• Um hambúrguer, um prédio ou uma ponte são produtos concretos
• Software é invisível
– Em alguns casos, vemos uma possível interface do software, em outros casos, nem isso!
• Software é pouco repetitivo
– Um prédio de 100 andares pode ter a mesma planta em cada andar
– Cada parte do software será (deveria ser!) diferente
Leonardo Murta 11Introdução ao Planejamento de Projetos
Software e as leis da natureza
• Na construção civil, o espaço da solução é restringido por– Leis da natureza (e.g., gravidade)
– Normas (obrigatórias) internacionais (e.g., IEEE/ISO)
• Na construção de software, o espaço de opções se assemelha ao das artes– Não existem leis
– Normas são adotadas por opção
Leonardo Murta Introdução ao Planejamento de Projetos 12
Economia de escala
• Quanto maior for a compra, mais barato será proporcionalmente
• Quais desses produtos estão sujeitos a economia de escala:– Refrigerante (350 ml, 600 ml ou 2 litros)
– Ações na bolsa de valores (100 ou 100.000 ações)
– Disco rígido de computador (40, 80, 120 ou 500 Gb)
– Diamante (1, 10, 100 ou 1000 gramas)
– Prato no restaurante (para 1 ou 2 pessoas)
– Software (10, 100 ou 1000 KLOCS)
Leonardo Murta Introdução ao Planejamento de Projetos 13
Economia de escala em software
200 ml R$ X
2 litros Menos que 10 x R$ X
10 KLOC R$ X
100 KLOCs Mais que 10 x R$ X
Leonardo Murta 14Introdução ao Planejamento de Projetos
O que torna um projeto complexo?
• Número de sub-sistemas e elementos relacionados no contexto do projeto
• Número de empresas envolvidas na execução do projeto
• Número de áreas do conhecimento relacionadas ao projeto
• Número de fases necessárias na execução do projeto
Leonardo Murta Introdução ao Planejamento de Projetos 15
Quais fatores dificultam um projeto?
• Especificações incompletas ou imprecisas
• Domínio de conhecimento volátil
• Troca ou heterogeneidade tecnológica
• Mão de obra insuficiente ou incapacitada
• Alta rotatividade da equipe
• Verbas inexistentes ou intermitentes
• Influências políticas contradizendo decisões técnicas
Leonardo Murta 16Introdução ao Planejamento de Projetos
Gerência de Projetos
• Gerência de Projetos visa “aplicar conhecimentos, habilidades, ferramentas e técnicas nas atividades do projeto de maneira a atingir os objetivos estabelecidos” (PMI, 2004)
• Etapas:
Leonardo Murta Introdução ao Planejamento de Projetos 17
Planejamento
Execução
Monitoramento e Controle
Iniciação Encerramento
Planejamento
• Planejar é uma atividade fundamental para prever problemas e se preparar para lidar com eles
Leonardo Murta Introdução ao Planejamento de Projetos 18
Questões básicas a serem tratadas no Planejamento
• O que precisa ser feito (escopo)?
• Quanto tempo vai levar para fazer (prazo)?
• Quanto vai custar para fazermos (custo)?
• Quais pessoas e equipamentos vão estar disponíveis (recursos)?
• É possível ou viável executar o trabalho com um grau de qualidade aceitável (qualidade)?
Leonardo Murta Introdução ao Planejamento de Projetos 19
Exercício
• Imagine as seguintes alterações no planejamento e diga o efeito colateral nos outros elementos do plano (escopo, prazo, custo, qualidade)– Aumento do escopo: “por favor, permita também que o
software faça venda parcelada”
– Diminuição do prazo: “preciso do software funcionando 1 mês antes do combinado”
– Diminuição dos recursos: “infelizmente somente poderemos pagar 80% do valor acertado”
– Aumento da qualidade: “O software deve funcionar em Linux e Mac, além de Windows”
Leonardo Murta Introdução ao Planejamento de Projetos 21
Etapas do planejamento (Métodos Clássicos)
Especificar o escopo
Detalhar o escopo
Definir as atividades
Definir a seqüência das
atividades
Estimar a duração das atividades
Estimar os custos das atividades
Definir o cronograma
Definir o orçamento
Integrar planos
Leonardo Murta Introdução ao Planejamento de Projetos 22
Passo 1: especificar o escopo
• Escopo do produto: características e funcionalidades que o produto deve ter quando estiver pronto
• Escopo do projeto: trabalho que deve ser feito para construir o produto
Leonardo Murta Introdução ao Planejamento de Projetos 23
Problema!!!
• Especificar o escopo do produto (sem planejamento) para posteriormente especificar o escopo do projeto
• Especificar o escopo do projeto (impreciso) e uma das atividades ser a especificação do escopo do produto
Leonardo Murta Introdução ao Planejamento de Projetos 24
Problema!!!
Leonardo Murta Introdução ao Planejamento de Projetos 25
Escopo do produto primeiro
• Custo não orçado para o projeto
• Provável prejuízo caso o projeto não se concretize
Escopo do projeto primeiro
• Alto grau de incerteza no planejamento
• Elevação do risco de prejuízo caso o projeto se concretize (erro para baixo)
• Elevação do risco do projeto não se concretizar (erro para cima)
Solução...
• Para a especificação do escopo do projeto, é possível iniciar com o escopo do produto
• O nível de refinamento e detalhe será diretamente proporcional ao risco envolvido
• Existem diferentes opções para especificar o escopo do produto:– Documento de Visão (RUP)– Histórias (Métodos Ágeis)– Casos de uso – Cenários– Narrativa livre– Etc.
• O plano deve ser refinado sempre que mais conhecimento for adquirido
Leonardo Murta Introdução ao Planejamento de Projetos 26
Passo 2: detalhar o escopo
• Planejar em granularidade grossa é uma atividade propensa a erros
• Para evitar esses erros, devemos aplicar a técnica dividir para conquistar– Quebrar o problema em problemas menores
– Planejar em granularidade fina
– Inferir o planejamento completo a partir das partes
• Documento resultante (Métodos Clássicos):– Estrutura analítica do projeto (EAP, do inglês, WBS – Work
Breakdown Structure)
Leonardo Murta Introdução ao Planejamento de Projetos 27
EAP
• Técnica criada pelo Departamento de Defesa (DoD) e NASA, nos EUA, em 1962
• Oficializada pelo PMI em 1987
• Define elementos e suas decomposições
Leonardo Murta Introdução ao Planejamento de Projetos 28
Todo
1 Parte A
1.1 Parte X
1.2 Parte Y
...
2 Parte B 3 Parte C
Características da EAP
• Não determina seqüência entre elementos (somente decomposição)
• Precisa ter 100% de cobertura– A decomposição do todo é 100% equivalente às partes– Nenhuma parte se repete em diferentes todos
• O somatório do trabalho das partes deve ser equivalente ao todo
Leonardo Murta Introdução ao Planejamento de Projetos 29
∑=
Características da EAP
• No primeiro nível, é representado o produto completo
• No segundo nível podem ser representados– Fases do desenvolvimento
– Produtos parciais
• Nos demais níveis são representadas– Decomposições de fases ou produtos parciais
– Pacotes de trabalho (tarefas)
• Cada nível deve ser numerado: 1, 2.3, 5.3.4, etc.
Leonardo Murta Introdução ao Planejamento de Projetos 30
Exemplos de EAP
Leonardo Murta Introdução ao Planejamento de Projetos 31
Churrasco
1 Local
1.1 Visitar Local
1.2 Escolher local
1.3 Limpar local
2 Bebidas
2.1 Escolher bebidas
2.2 Comprar bebidas
2.3 Gelar bebidas
3 Convidados
3.1 Escolher Convidados
3.2 Enviar convite
Churrasco
1 Planejamento
1.1 Escolher local
1.2 Escolher bebidas
1.3 Escolher convidados
2 Preparação
2.1 Visitar local
2.2 Comprar bebidas
2.3 Convidar pessoas
2.4 Gelar bebidas
3 Finalização
3.1 Limpar local
Os pacotes de trabalho se repetem, independentemente da organização (por fases, produtos parciais, etc)
Como construir a EAP
• Abordagem top-down
– Pense no panorama geral
– Insira as grandes fases ou produtos parciais
– Repita a decomposição para os demais níveis
• Abordagem bottom-up
– Faça um brainstorming com a equipe, visando identificar tarefas pontuais necessárias
– Organize as tarefas obtidas gerando fases ou produtos parciais de mais alto nível
Leonardo Murta Introdução ao Planejamento de Projetos 32
Quando parar de decompor a EAP?
• Quando for possível estimar com segurança o pacote de trabalho
• Pacotes de trabalhos muito grandes
– Imprecisão nas estimativas
– Incapacidade de monitoramento e controle precisos
• Pacotes de trabalho muito pequenos
– Ineficiência no planejamento, monitoramento e controle
Leonardo Murta Introdução ao Planejamento de Projetos 33
Exercício
• Faça uma EAP para o churrasco editando e complementando a EAP parcial abaixo
Leonardo Murta Introdução ao Planejamento de Projetos 34
Churrasco
1 Local
1.1 Visitar local
1.2 Escolher local
2 Compras
2.1 Comprar bebidas
3 Convidados
3.1 Convidar Professor
Passo 3: definir as atividades
• Para cada pacote de trabalho da EAP, definir:
– As atividades necessárias para gerar o pacote de trabalho
– Os recursos necessários para executar as atividades
• Exemplo para o pacote de trabalho 2.1 comprar bebidas
– Atividade: ir ao supermercado adquirir as bebidas
– Recurso: uma pessoa, um carro, dinheiroLeonardo Murta Introdução ao Planejamento de Projetos 35
Passo 4: definir a seqüência das atividades
• Para executar uma determinada atividade, outras atividades precisam já terem sido concluídas
• Assim, é necessário estabelecer as dependências (ou seqüência) das atividades
• Dependências para a atividade ir ao supermercado adquirir as bebidas– Definir quantidade de bebidas a serem compradas
– Escolher supermercado com melhor preço
Leonardo Murta Introdução ao Planejamento de Projetos 36
Exercício
• Estabeleça as atividades necessárias para cada pacote de trabalho
• Estabeleça a lista de dependências de cada atividade
Leonardo Murta Introdução ao Planejamento de Projetos 37
Passo 5: estimar aduração das atividades
• Cada atividade tem uma duração esperada• Caso a atividade seja ainda muito grande, será
complexo determinar a sua duração– Neste caso, decomponha a atividade
• Existem diferentes técnicas para estipular a duração da atividade, dentre elas:– Opinião de especialista (membro do projeto)– Estimativa por analogia (projeto anterior)– Planning Poker (Métodos Ágeis)– PERT - Program Evaluation and Review Technique– Estimativa paramétrica (fórmula)
Leonardo Murta Introdução ao Planejamento de Projetos 38
Estimativa via Planning Poker
• Técnica que visa o comprometimento dos membros da equipe
– Todos participam do processo de estimativa
– Todos são responsáveis pela sua concretização
• Permite rapidamente chegar a uma estimativa
• Normalmente cativa os envolvidos por ter uma dimensão lúdica
• É baseada em consenso!
Leonardo Murta Introdução ao Planejamento de Projetos 39
Estimativa via Planning Poker(artefatos necessários)
• Elementos a serem estimados
– Histórias
– Casos de Uso
– Pacotes de trabalho
– Atividades
– Etc.
Leonardo Murta Introdução ao Planejamento de Projetos 40
Título: Pagamento em cartão de créditoDescrição: O usuário será capaz de pagar a compra em cartão de crédito VISA.
Estimativa via Planning Poker(artefatos necessários)
• Um deque de 13 cartas para cada membro da equipe
– As cartas representam homens-dia
– Ex.: 3 = 3 pessoas em 1 dia ou 1 pessoa em 3 dias
Leonardo Murta Introdução ao Planejamento de Projetos 41
Estimativa via Planning Poker(processo)
1. Coloque o elemento a ser estimado no centro da mesa
2. Cada membro coloca a sua carta de estimativa na mesa, virada para baixo– A estimativa não é só codificação, mas inclui também
modelagem, testes, integração, etc.– Nenhum membro deve argumentar a razão da sua
escolha
3. As cartas são virada para cima ao mesmo tempo– Raramente cartas iguais aparecem. Isso é normal!!!
4. Calcula-se a média e o desvio padrão das estimativas
Leonardo Murta Introdução ao Planejamento de Projetos 42
Estimativa via Planning Poker(processo)
5. As estimativas são analisadas
– Os membros com estimativas distantes da média explicam seus raciocínios (eles podem ser os certos!!!)
– Se o desvio padrão está muito alto, pode ser necessário decompor o elemento sendo estimado e estimar as partes
– Se as estimativas estiverem baseadas em hipóteses não fundamentadas, essas hipóteses devem ser discutidas com o cliente
6. O processo se repete até que o consenso seja obtido
Leonardo Murta Introdução ao Planejamento de Projetos 43
Estimativa via PERT
• Coleta de estimativas de tempo (usando diferentes técnicas)– Melhor caso - Otimista (O)
– Caso mais Provável - Normal (N)
– Pior Caso - Pessimista (P)
• Cálculo do Tempo Esperado (TE)– Baseado em distribuição Beta
– Pior e melhor casos a 3 desvios-padrão da média
– TE = (O + 4 x N + P) / 6
Leonardo Murta Introdução ao Planejamento de Projetos 44
Estimativa paramétrica
• A partir da execução de diversos projetos semelhantes, é possível construir fórmulas via regressão que representem esses projetos
• Essas fórmulas normalmente levam em consideração o contexto para aumentar a precisão– Linguagem de programação
– Nível de qualidade
– Domínio do problema
– Etc.
Leonardo Murta Introdução ao Planejamento de Projetos 45
Estimativa paramétrica
• Cada organização deve adaptar as fórmulas para a suas situação específica!!!
• Não é necessária a decomposição das atividades do projeto para sua utilização
• Não permite um entendimento analítico da estimativa obtida
• Normalmente são utilizadas como complemento a outras técnicas, com intuito comparativo
• Alguns modelos paramétricos para estimativas: COnstructive COst Model (COCOMO) e Análise de pontos de função (APF)
Leonardo Murta Introdução ao Planejamento de Projetos 46
Estimativa via COCOMO• Modelo paramétrico criado por Berry Boehm• O modelo é dividido em níveis de complexidade• Está implementado em diversas ferramentas
– http://csse.usc.edu/tools/COCOMOII.php– http://cost.jsc.nasa.gov/COCOMO.html
• Fórmula básica:– Projetos simples: fácil entendimento e equipe pequena
– Projetos de complexidade media: experiência limitada da equipe
– Projetos complexos: software crítico, interagindo com hardware
• Esforço calculado em homem-mês!
Leonardo Murta Introdução ao Planejamento de Projetos 47
05,14,2 KLOCEsforço
12,10,3 KLOCEsforço
20,16,3 KLOCEsforço
Estimativa via COCOMO
• Duração– Projetos simples: fácil entendimento e equipe pequena
– Projetos de complexidade media: experiência limitada da equipe
– Projetos complexos: software crítico, interagindo com hardware
• Duração calculada em meses!
Leonardo Murta Introdução ao Planejamento de Projetos 48
38,05,2 EsforçoDuração
35,05,2 EsforçoDuração
32,05,2 EsforçoDuração
Mas como saber o número de LOC antes de ter o produto?
• Análise de Pontos de Função (APF) visa contar a quantidade de funcionalidades de um sistema
– É independente da linguagem de programação
– Permite dar uma noção de tamanho do software
– Útil para estimativas e normalização de outras métricas
• APF ocorre baseado em informações de análise
• Existem constantes de transformação entre pontos de função e LOC
Leonardo Murta Introdução ao Planejamento de Projetos 49
Estimativa via APF(algoritmo)
1. Contar os elementos do software– Número de Entradas Externas (EE): conjunto de dados únicos
que entram na fronteira do sistema – Ex.: tela de cadastro de produtos
– Número de Saídas Externas (SE): conjunto de dados únicos que saem da fronteira do sistema – Ex.: relatório de vendas
– Número de Consultas Externas (CE): combinação de entrada e saída onde a saída ocorre em função da entrada
– Número de Arquivos Lógicos Internos (ALI): entidades únicas manipuladas pelo sistema – Ex.: entidade pedido
– Número de Arquivos de Interface Externos (AIE): entidades compartilhadas por diferentes sistemas externos – Ex.: estoque sendo compartilhado pelos sistemas de vendas e financeiro
Leonardo Murta Introdução ao Planejamento de Projetos 50
Estimativa via APF(algoritmo)
2. Determinar o nível de complexidade de cada elemento do software
– Para Número de Arquivos Lógicos Internos (ALI) e Número de Arquivos de Interface Externos (AIE)
Leonardo Murta Introdução ao Planejamento de Projetos 51
Campos de Dados
1 a 19 20 a 50 51 ou mais
Reg
istr
os
de
Dad
os 1 Baixa Baixa Média
2 a 5 Baixa Média Alta
6 ou mais Média Alta Alta
Estimativa via APF(algoritmo)
2. Determinar o nível de complexidade de cada elemento do software
– Para Número de Saídas Externas (SE) e Número de Consultas Externas (CE)
Leonardo Murta Introdução ao Planejamento de Projetos 52
Campos de Dados
1 a 5 6 a 19 20 ou mais
Tip
os
de
Dad
os 0 ou 1 Baixa Baixa Média
2 a 3 Baixa Média Alta
4 ou mais Média Alta Alta
Estimativa via APF(algoritmo)
2. Determinar o nível de complexidade de cada elemento do software
– Para Número de Entradas Externas (EE)
Leonardo Murta Introdução ao Planejamento de Projetos 53
Campos de Dados
1 a 4 5 a 15 16 ou mais
Tip
os
de
Dad
os 0 ou 1 Baixa Baixa Média
2 Baixa Média Alta
3 ou mais Média Alta Alta
Estimativa via APF(algoritmo)
3. Atribuir peso para as contagens de cada elemento do software
Leonardo Murta Introdução ao Planejamento de Projetos 54
Elemento\Complexidade Baixa Média Alta
Entradas Externas (EE) 3 4 6
Saídas Externas (SE) 4 5 7
Consultas Externas (CE) 3 4 6
Arquivos Lógicos Internos (ALI) 7 10 15
Arquivos de Interface Externos (AIE) 5 7 10
Estimativa via APF(algoritmo)
4. Obter Pontos de Função não Ajustados (PFNA)
5. Ajustar os pontos de função
– Responder a 14 questões
– Menor nota: 0 (não importante ou não aplicável)
– Maior nota: 5 (absolutamente essencial)
Leonardo Murta Introdução ao Planejamento de Projetos 55
PesoElementoPFNA
Estimativa via APF
• Questões de ajuste1. Necessita de backup?2. Necessita de mecanismos especializados de comunicação?3. Tem processamento distribuído?4. Precisa de alto desempenho?5. Terá grande número de usuários em paralelo?6. Precisará de entrada de dados on-line?7. No caso de entradas on-line, existirão múltiplas telas?8. A atualização das entidades será feita on-line?9. As entradas e saídas de dados serão complexas?10. O processamento interno será complexo?11. O código será projetado para ser reutilizado?12. Migração e instalação estarão incluídos?13. O sistema será instalado em diversas organizações?14. O projeto pretende facilitar mudanças e operação do usuário?
Leonardo Murta Introdução ao Planejamento de Projetos 56
Estimativa via APF(algoritmo)
6. Obter Pontos de Função Ajustados (PF)
7. Converter PFNA em LOC
– 1 PFNA é igual a...
Leonardo Murta Introdução ao Planejamento de Projetos 57
)01,065,0( RespostaPFNAPF
Linguagem LOC
Assembly 320
C 128
C++ 55
COBOL 91
Linguagem LOC
FORTRAN 77 107
Java 53
PASCAL 91
PERL 27
Linguagem LOC
Prolog 64
Shell Script 107
Visual Basic 5 29
Visual C++ 34
Exemplo
• Orçar um sistema de automação residencial
Leonardo Murta Introdução ao Planejamento de Projetos 58
Fonte: Pressman
Exemplo
• Contagem de PFNA– Entradas Externas (EE): 3 x 3 = 9– Saída Externa (SE): 2 x 4 = 8– Consultas Externas (CE): 2 x 3 = 6– Arquivos Lógicos Internos (ALI): 1 x 7 = 7– Arquivos de Interface Externos (AIE): 4 x 5 = 20
• PFNA = 50• Desenvolvimento em Java
– Tamanho ≈ 2,6 KLOC– Esforço ≈ 6,5 homem-mês– Duração ≈ 5 meses– Custo da mão de obra (R$ 3.000,00 por pessoa) ≈ R$ 19.500,00
Leonardo Murta Introdução ao Planejamento de Projetos 59
Exercício
• Estabeleça a duração das atividades utilizando a técnica de Planning Poker
Leonardo Murta Introdução ao Planejamento de Projetos 60
Passo 6: estimar oscustos das atividades
• Tendo em mãos...– Os recursos necessários para a execução das atividades
– A duração estimada das atividades
• ... é possível estimar os custos das atividades
• Recursos diferentes influenciam diferentemente nos custos:– Recursos humanos: valor por hora do recurso x duração em
horas
– Recursos de capital (e.g., carro): valor do recurso x número de recursos (esses recursos podem ser reutilizados em atividades que não estejam em paralelo)
– Recursos de consumo (e.g., combustível): valor do recurso x quantidade necessária para a atividade
Leonardo Murta Introdução ao Planejamento de Projetos 61
Exercício
• Defina o valor dos recursos necessários
– Humanos
– Capital
– Consumo
• Defina o custo das atividades
Leonardo Murta Introdução ao Planejamento de Projetos 62
Passo 7: definir o cronograma
• Um elemento chave do planejamento é o cronograma
• O cronograma define– O que deve ser feito
– Em que ordem deve ser feito
– Quanto tempo leva para fazer
– Quanto custa para fazer
• Cronogramas existem sempre, mas em diferentes graus de detalhamento– Métodos Clássicos: cronograma detalhado com atividades
– Métodos Ágeis: cronograma em alto nível, com iterações
Leonardo Murta Introdução ao Planejamento de Projetos 63
Marcos de cronograma
• Além das atividades, os cronogramas definem marcos(do inglês, milestones)– Representam o encerramento de alguma etapa– São um bom momento para uma avaliação geral do
andamento do projeto
• Pense em uma viagem longa...
Leonardo Murta Introdução ao Planejamento de Projetos 64
Tarefa de casa
• Analise algum projeto open-source e traga na próxima aula
– O seu cronograma (chamado de roadmap por alguns projetos)
– Os marcos (chamado de release milestones por alguns projetos)
Leonardo Murta Introdução ao Planejamento de Projetos 65
Gráfico de Gantt
• Cronogramas são usualmente representados por meio de gráficos de Gantt– Eixo X: tempo
– Eixo Y: atividades
• Gráficos de Gantt contém– As atividades
– A dependência entre as atividades
– A duração das atividades
Leonardo Murta Introdução ao Planejamento de Projetos 66
Caminho crítico
• Um cronograma define a ordem e duração de atividades
• Com isso, algumas atividades podem ser executadas em paralelo
• Mas determinadas atividades são mais críticas que outras, pois podem impactar no atraso de todo o projeto
Leonardo Murta Introdução ao Planejamento de Projetos 68
CPM
• CPM (Critical Path Method) é uma técnica clássica criada nos anos 50 para encontrar o caminho crítico
• O caminho crítico contém as atividades que, caso atrasem, atrasarão o projeto como um todo
• As atividades que não estão no caminho crítico têm folga– Que também é calculada via CPM
• As atividades que estão no caminho critico, quando otimizadas, melhoram o desempenho do projeto como um todo!!!
Leonardo Murta Introdução ao Planejamento de Projetos 69
Exercício
• Encontre o caminho crítico e as folgas das atividades do Churrasco.
• Qual algoritmo você usou para encontrar esses valores?
Leonardo Murta Introdução ao Planejamento de Projetos 70
Algoritmo CPM
1. Construa um grafo onde as atividades são nós e as dependências são arestas direcionadas
2. Coloque um nó “início” e um nó “fim” no grafo
3. Conecte todas as atividades sem dependência de entrada com uma dependência vindo de “início”, e sem dependência de saída com dependência indo para “fim”
4. Escreva a duração de cada atividade sobre a atividade
Leonardo Murta Introdução ao Planejamento de Projetos 71
Algoritmo CPM
Leonardo Murta Introdução ao Planejamento de Projetos 72
Escolher local
Escolher bebidas
Escolher convidados
Visitar local
Comprar bebidas
Convidar pessoas
Contratar local
Gelar bebidas
Limpar local
Início
Fim
2
3
2
1
1
1
1
1
1
1
Algoritmo CPM
5. Encontre todos os caminhos entre o início e o fim via busca em profundidade
6. Para cada caminho encontrado, some a duração das atividades
• O caminho com a maior duração é o caminho crítico
• A folga das atividades do caminho crítico é zero
• A folga das atividades fora do caminho crítico é a duração do seu caminho mais longo menos a duração do caminho crítico
Leonardo Murta Introdução ao Planejamento de Projetos 73
Algoritmo CPM
Leonardo Murta Introdução ao Planejamento de Projetos 74
Escolher local
Escolher bebidas
Escolher convidados
Visitar local
Comprar bebidas
Convidar pessoas
Contratar local
Gelar bebidas
Limpar local
Início
Fim
2
3
2
1 1
1
1
1
1
4
5
4
5
Algoritmo CPM
Leonardo Murta Introdução ao Planejamento de Projetos 75
Escolher local
Escolher bebidas
Escolher convidados
Visitar local
Comprar bebidas
Convidar pessoas
Contratar local
Gelar bebidas
Limpar local
Início
Fim
2
3
2
1 1
1
1
1
1
Folga=0
Folga=0
Folga=0
Folga=0
Folga=0 Folga=0
Folga=0
Folga=1
Folga=1
Exercício
• Refaça o exercício anterior e verifique se o caminho crítico e as folgas tinham sido encontradas corretamente
• Além disso, determine para cada atividade a sua data mínima e máxima de início e término imaginando que queremos o churrasco para daqui a 2 semanas
Leonardo Murta Introdução ao Planejamento de Projetos 76
Tarefa de Casa
• Utilize alguma ferramenta para gerar o gráfico de Gantt, o caminho crítico e as folgas para o trabalho do curso
– No nosso laboratório temos o MS Project instalado
– Outras ferramentas podem ser encontradas em http://en.wikipedia.org/wiki/List_of_project_management_software
Leonardo Murta Introdução ao Planejamento de Projetos 78
Passo 8: Definir o orçamento
• Orçamento = ∑ custos das atividades + margem de lucro
• Custos pode ser maior ou menos que o Orçamento– Custos < Orçamento (é o mais comum) visa lucro– Custos > Orçamento visa aumentar a probabilidade de
ganhar o projeto (para projetos estratégicos)
• O orçamento deve conter também o cronograma de desembolsos– Ex.: Orçamento de R$ 100.000,00, com 4 desembolsos
semestrais de R$ 25.000,00– Normalmente os desembolsos são associados a marcos do
projeto!
Leonardo Murta Introdução ao Planejamento de Projetos 79
Exercício
• Defina o orçamento do churrasco
• Especifique as formas de desembolso
Leonardo Murta Introdução ao Planejamento de Projetos 80
Passo 9: integrar planos
• O plano do projeto envolve, além do planejamento de escopo, custo e cronograma, o planejamento das demais práticas de ES:– Plano de comunicação
– Plano de testes
– Plano de gerência de configuração
– Plano de segurança
– Plano de implantação
– Plano de reutilização
– Etc.
Leonardo Murta Introdução ao Planejamento de Projetos 81
Exemplo: plano de riscos
• O propósito do processo Gerência de Riscos é identificar, analisar, tratar, monitorar e reduzir continuamente os riscos em nível organizacional e de projeto (SOFTEX, 2009)
• Visa:– Identificar os riscos do projeto
– Estabelecer a probabilidade de ocorrência, o impacto e a exposição (probabilidade x impacto) de cada risco identificado
– Priorizar os riscos (ordenar decrescentemente por exposição)
– Mitigar os riscos (definir planos de contenção e contingência)
– Monitorar periodicamente
– Tomar ações corretivas quando necessário
Leonardo Murta Introdução ao Planejamento de Projetos 82
Exemplo ilustrativo
• Cenário: subida de serra na terra
• Risco 1: colisão com carro vindo na outra direção
Leonardo Murta Introdução ao Planejamento de Projetos 83
Exemplo ilustrativo
• Probabilidade: 20% (pouca neblina)
• Impacto: 0,8 (ferimentos graves)
• Exposição: 0,16
• Prioridade: média
Leonardo Murta Introdução ao Planejamento de Projetos 84
Impacto
Pro
bab
ilid
ade
0 0,2 0,4 0,6 0,8 1
100% 0 0,2 0,4 0,6 0,8 1
80% 0 0,16 0,32 0,48 0,64 0,8
60% 0 0,12 0,24 0,36 0,48 0,6
40% 0 0,08 0,16 0,24 0,32 0,4
20% 0 0,04 0,08 0,12 0,16 0,2
0% 0 0 0 0 0 0
Exemplo ilustrativo
• Mitigação
– Contenção: dirigir em baixa velocidade, carro com ABS
– Contingência: uso de cinto de segurança, carro com AirBag
Leonardo Murta Introdução ao Planejamento de Projetos 85
Exemplo ilustrativo
• Monitoramento– A cada 10 minutos
– Verificar mudanças climáticas
– Verificar condições da pista e claridade (dia/noite)
– Atualizar avaliação de probabilidade e impacto do risco
Leonardo Murta Introdução ao Planejamento de Projetos 86
Exercício
• Defina os riscos relacionados ao trabalho do curso
– Identifique a probabilidade e o impacto desses riscos
– Calcule a exposição ao risco
– Priorize os riscos
– Mitigue (medidas de contenção e contingência) os riscos com maior prioridade
– Determine o período de monitoramento e execute o monitoramento nesse período
Leonardo Murta Introdução ao Planejamento de Projetos 87
Referências
• Greene, J.; Stellman, A.; 2007. Head First PMP. O’Reilly Media
• Orth, A. I., Prikladnicki, R., “Planejamento e Gerência de Projetos”, ediPUCRS, Porto Alegre, 2009.
• Pilone, D.; Miles, R.; 2008. Head First Software Development. O’Reilly Media.
• Pressman, R. S.; 2004. Software Engineering: A Practitioner’s Approach. 6 ed. McGraw-Hill.
• SOFTEX, 2009. Guia de Implementação – Parte 5: Nível C. http://www.softex.br/mpsbr
Leonardo Murta 88Introdução ao Planejamento de Projetos