Professor: Gabriel Soares Baptista
Planejar não é adivinhar o futuro. É reduzir a incerteza o suficiente para tomar decisões responsáveis.
Esta aula reúne dois blocos do Capítulo 23 de Sommerville:
| Aspecto | Pergunta |
|---|---|
| Escopo | O que será feito? |
| Esforço | Quanto trabalho humano? |
| Cronograma | Quando cada parte? |
| Recursos | Pessoas, ferramentas, infraestrutura? |
| Riscos | O que pode dar errado e como reagir? |
Sistema acadêmico com matrícula, boletos, histórico e autenticação institucional.
Sem planejamento, a equipe começa pelas telas mais fáceis. Parece produtivo nas primeiras semanas.
| Momento | Informação | Objetivo |
|---|---|---|
| Proposta | Descrição geral | Viabilidade e preço |
| Iniciação | Requisitos, equipe | Orçamento, marcos, riscos |
| Acompanhamento | Progresso real | Atualizar e replanejar |
O problema não é mudar o plano. É mudar o projeto sem atualizar o plano.
| Conceito | Definição |
|---|---|
| Custo | Gasto para executar o projeto |
| Preço | Valor negociado com o cliente |
Componentes de custo: esforço (salários), hardware/software (licenças, servidores), viagens/treinamentos.
Estratégia em que a empresa estima o valor que o cliente espera pagar e adapta a proposta.
Legítimo: quando escopo, prazo e qualidade cabem no orçamento acordado.
Problemático: prometer funcionalidade irrealista e depender de cobranças por mudanças depois.
Trabalho planejado em detalhes. Comum em projetos grandes, contratos formais, sistemas críticos e ambientes regulados.
Seções do plano: introdução, organização, análise de riscos, recursos, divisão de trabalho, cronograma, monitoramento.
Sommerville defende equilíbrio. Projetos diferentes pedem combinações diferentes de dirigido a planos e ágil.
Resultados observáveis: "relatório de vendas com exportação CSV até semana 4" em vez de "trabalhar no módulo de relatórios".
Decide como o trabalho é dividido, quando executado e por quem.
Envolve: duração, esforço, dependências, alocação de pessoas, datas, marcos e entregáveis.
| Elemento | Significado |
|---|---|
| Duração | Tempo de calendário |
| Esforço | Trabalho humano (pessoas-dia ou mês) |
| Deadline | Data limite |
| Resultado | Evidência de término |
Duração e esforço não são a mesma coisa. Tarefa de 10 dias com esforço de 5 → meio período. Com esforço de 20 → duas pessoas em paralelo.
| Tarefa | Duração | Dependências |
|---|---|---|
| T1: modelo de dados | 5d | — |
| T2: API de alunos | 8d | T1 |
| T3: tela de cadastro | 6d | T2 |
| T4: massa de testes | 4d | T1 |
| T5: testar cadastro | 5d | T3, T4 |
Se T3 atrasar, T5 atrasa. Se T5 é contratual, o atraso se propaga.
| Conceito | Exemplo |
|---|---|
| Milestone (controle interno) | Arquitetura revisada |
| Entregável (produto ao cliente) | Versão executável, relatório |
Tabela, gráfico de barras (Gantt) ou rede de atividades.
T3 e T4 em paralelo. T5 no final porque depende das duas.
Atividades, paralelismo e milestones marcados no calendário.
O cronograma precisa considerar quem executa. Uma pessoa pode estar em vários projetos, de férias ou ser especialista em parte crítica.
Cronogramas tendem ao otimismo. A equipe imagina o caminho perfeito.
Sommerville recomenda contingência de 30% a 50% conforme incerteza e experiência.
Métodos ágeis também planejam, mas evitam detalhar tudo cedo demais.
| Nível | Horizonte | Foco |
|---|---|---|
| Release | Vários meses | Funcionalidades da versão |
| Iteração | 2-4 semanas | Histórias do próximo incremento |
| Conceito | Significado |
|---|---|
| História | Funcionalidade valiosa para o usuário |
| Pontos | Estimativa relativa (esforço, complexidade, incerteza) |
| Velocidade | Pontos concluídos por iteração |
O ponto não é uma hora. É relativo. Uma história de 8 pontos é maior/mais incerta que uma de 2.
Depende de envolvimento real do cliente, equipe estável e coordenação informal.
Estimar é difícil: software é invisível, flexível e dependente de conhecimento humano.
| Técnica | Força | Fragilidade |
|---|---|---|
| Experiência | Contexto prático | Falha em projetos muito novos |
| Algorítmica | Estrutura e repetibilidade | Depende de dados difíceis de estimar |
Se a estimativa inicial é $x$, o esforço real pode estar entre $0{,}25x$ e $4x$.
| Estágio | Incerteza |
|---|---|
| Viabilidade | Muito alta |
| Requisitos | Alta |
| Projeto | Moderada |
| Código | Menor |
| Entrega | Esforço real |
Quanto mais cedo, maior a faixa de erro. Estimativa inicial não é verdade final.
Usa conhecimento de projetos anteriores. Melhora quando várias pessoas participam.
Passos: listar entregáveis → decompor → estimar cada parte → discutir divergências → somar + contingência → revisar com o projeto.
$$ \text{Esforço} = A \times \text{Tamanho}^{B} \times M $$
Projetos maiores não crescem apenas em código. Aumentam comunicação, coordenação, integração e risco.
| Submodelo | Uso | Medida |
|---|---|---|
| Composição de aplicações | Protótipos, componentes | Pontos de aplicação |
| Projeto preliminar | Após requisitos | Pontos de função → código |
| Reúso | Integrar código reusado | Código equivalente |
| Pós-arquitetura | Após arquitetura | Código + 17 drivers de custo |
O submodelo depende da informação disponível no momento.
Fórmula para estimar esforço em pessoas-mês ($PM$):
$$ PM = \frac{NAP \; \times \; \bigl(1 - \frac{\%reúso}{100}\bigr)}{PROD} $$
| Variável | Significado |
|---|---|
| $PM$ | Esforço estimado (pessoas-mês) |
| $NAP$ | Número de pontos de aplicação (telas, relatórios, módulos, scripts) |
| $\%reúso$ | Porcentagem do sistema que será reaproveitada |
| $PROD$ | Produtividade da equipe (pontos de aplicação por pessoa-mês) |
A produtividade depende de experiência, capacidade e ferramentas (ICASE).
Protótipo com 80 pontos de aplicação. A equipe estima 25% de reúso. Produtividade: 10 pontos/mês.
Passo 1 — substituir os valores na fórmula:
$$ PM = \frac{80 \; \times \; \bigl(1 - \frac{25}{100}\bigr)}{10} $$
Passo 2 — resolver a porcentagem:
$$ PM = \frac{80 \times 0{,}75}{10} $$
Passo 3 — multiplicar e dividir:
$$ PM = \frac{60}{10} = 6 $$
Resultado: esforço aproximado de 6 pessoas-mês.
Os drivers de custo ajustam a estimativa para cima ou para baixo conforme características do projeto:
| Driver | Exemplo de impacto |
|---|---|
| Confiabilidade exigida | Sistema crítico exige mais teste e validação |
| Complexidade do produto | Algoritmos complexos exigem mais análise |
| Restrições de plataforma | Memória ou CPU limitada dificulta |
| Capacidade da equipe | Equipe experiente reduz esforço |
| Maturidade do processo | Processo maduro reduz retrabalho |
| Ferramentas | Boas ferramentas aumentam produtividade |
| Compressão do cronograma | Prazo apertado aumenta esforço |
Não basta dividir esforço por prazo. 60 pessoas-mês ≠ 60 pessoas em 1 mês.
A fórmula COCOMO para duração nominal em meses de calendário:
$$ TDEV = 3 \times PM^{\,0{,}33 \;+\; 0{,}2 \times (B - 1{,}01)} $$
| Variável | Significado |
|---|---|
| $TDEV$ | Duração nominal do projeto (meses) |
| $PM$ | Esforço total estimado (pessoas-mês) |
| $B$ | Expoente ligado à complexidade e fatores de escala |
O expoente $B$ reflete o overhead de projetos maiores: comunicação, coordenação, integração.
Projeto com esforço $PM = 60$ e expoente $B = 1{,}17$.
Passo 1 — calcular o expoente da potência:
$$ 0{,}33 + 0{,}2 \times (1{,}17 - 1{,}01) = 0{,}33 + 0{,}2 \times 0{,}16 $$
Passo 2:
$$ 0{,}33 + 0{,}032 = 0{,}362 $$
Passo 3 — aplicar a fórmula:
$$ TDEV = 3 \times 60^{\,0{,}362} $$
$$ TDEV \approx 3 \times 4{,}37 \approx 13 \text{ meses} $$
Com 60 pessoas-mês de esforço, a duração nominal é de aproximadamente 13 meses com uma equipe média de 4 a 5 pessoas.
Se o cliente exige 11 meses em vez dos 13 nominais (≈25% de compressão).
| Situação | Prazo | Esforço |
|---|---|---|
| Nominal | 13 meses | ~52 pessoas-mês |
| Comprimido | 11 meses | ~66 pessoas-mês |
Por que o esforço sobe com prazo menor?
Atraso de projeto raramente se resolve só adicionando pessoas. Adicionar tarde demais aumenta comunicação e retrabalho, piorando o atraso.
Gerenciamento de Qualidade (Capítulo 24).
Padrões, revisões, medições e práticas para aumentar a qualidade do produto e do processo.