Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento,...

28
Gestão de Projetos de Software

Transcript of Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento,...

Page 1: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Gestão de Projetos de Software

Page 2: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Gerenciamento de Projeto

• É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais para acompanhar o desenvolvimento de um software.– São usados• Conceitos gerais• Conceitos específicos - Visibilidade

Page 3: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

O que gerenciar?

• Gerenciamento orientado ao processo– Gerenciamento de pequenas tarefas no ciclo de

vida do software é enfatizado.• Gerenciamento de Projeto– Ênfase no Projeto– Sucesso ou fracasso são diretamente atribuídos à

equipe.

Page 4: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Gerenciamento de Projeto• Projeto de Software bem sucedido depende de uma eficaz

Gerência de Projeto• Gerência de Projetos

– Abrange todo o processo de desenvolvimento.– Envolve:

• o escopo do trabalho a ser feito• os riscos a que se incorre• os recursos exigidos• as tarefas a serem executadas• o esforço (custo) despendido• a programação a ser seguida

Page 5: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Elementos Chave da Gerência de Projetos• Objetivos e Escopo do Projeto• Medidas e Métricas• Estimativa• Análise de Riscos• Determinação de Prazos• Monitoração e Controle

Page 6: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Mas antes temos que Planejar ...

• Atividade fundamental do PROCESSO DE GERENCIAMENTO e ADMINISTRAÇÃO de projetos

“Planejar é preciso ... “

• Planejar é a primeira camada do processo de desenvolvimento do software.

Page 7: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Objetivos do Planejamento• fornecer uma estrutura que possibilite ao gerente

• fazer estimativas razoáveis de recursos, custos e prazos

• estimar recursos necessários ao desenvolvimento do software:• - recursos humanos

• - de hardware

• - de software• identificar tarefas a serem efetuadas• elaborar cronogramas• estimar esforço (custo) despendido

Page 8: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Planejamento• Estabeleça as restrições do projeto• Faça a avaliação inicial dos parâmetros do projeto• Defina os marcos do projeto e os produtos a serem entregues• While projeto não estiver terminado ou cancelado

– Faça a programação do projeto– Inicie as atividades de acordo com programação– Aguarde– Examine o progresso do projeto– Revise as estimativas de parâmetros do projeto– Atualize a programação do projeto– Reanalise as restrições do projeto e os produtos a serem entregues– If surgirem problemas then

• Inicie revisão técnica– End if

• End While

Page 9: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

5W2H

• Why – por que o sistema está sendo desenvolvido? – Justifica gastos com recursos, ...

• What – o que vai ser feito?– Conjunto de tarefas

• When – quando vai ser feito?– Cronograma

• Who – quem é o responsável por uma função?

Page 10: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

5W2H

• Where – onde está na organização?• How – Como o trabalho será conduzido?– Uma vez estabelecido escopo deve se estabelecer

estratégia gerencial e técnica• How much – quanto vai custar?– estimativas

Page 11: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Objetivos e Escopo do Projeto

estabelecer objetivos e escopo considerar soluções alternativas identificar restrições administrativas e técnicas

PLANEJAMENTO DO PROJETOinício

Definir estimativas de custo razoáveis (e precisas) Divisão realística das tarefas de projeto Programação de projeto administrável que ofereça indícios

significativos de progresso

possibilita

Page 12: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Objetivos e Escopo do Projeto

• O desenvolvedor e o cliente reunem-se para definir os objetivos e o escopo do projeto. Objetivos: – identificam as metas globais do projeto sem levar

em consideração como essas metas serão atingidas

• Escopo: – identifica as funções primárias que o software

deve realizar e tenta delimitar essas funções de uma forma quantitativa.

Page 13: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Escopo do Software

• Primeira atividade• O escopo do software descreve– a função– o desempenho• processamento e tempo de resposta

– as restrições• limites impostos ao software pelo hardware externo,

memória disponível, outros sistemas

Page 14: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Escopo do Software– as interfaces

hardware que executa o software e dispositivos que são indiretamente controlados pelo software

software que já existe e deve ser ligado ao novo produto (banco de dados)

pessoas que fazem uso do software (periféricos de E/S) – a confiabilidade

menos preciso não é possível quantificar a confiabilidade do software tão

precisamente no escopo sistema de controle de tráfego aéreo, controle de estoque,

processador de texto, etc...

Page 15: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Recursos

• Segunda atividade: estimativa dos recursos exigidos para desenvolver o software– recursos humanos– recursos de hardware– recursos de software

Page 16: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Recursos Humanos

• Tanto os profissionais (engenheiros, gerentes) quanto as especialidades são definidas

• Projetos Pequenos: uma única pessoa por ano– consulta a especialistas quando necessário

Page 17: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Recursos Humanos Projetos Grandes: participação varia através do ciclo

de vida– estimativa de esforço de desenvolvimento (pessoas-mês,

pessoas-ano)– técnicas

estimativas de linha de código (LOC): contar linhas de código estimativa pontos por função (FP - function point): concentrar na

funcionalidade ou utilidade do software– medidas indiretas– relação empírica baseada em medidades de informações e

complexidade

Page 18: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Recursos de Hardware Três categorias

– o hardware de desenvolvimento (host system) um computador e os periféricos relacionados que serão usados

durante o desenvolvimento do software– o hardware de produção (target machine)

máquina que o software será executado multi-usuário, distribuído

– elementos de hardware do novo sistema software de cálculo numérico deve ter um recurso específico

Page 19: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

19

Recursos de Software (Ferramentas)

• Usamos hardware para construir um novo hardware

• Usamos software para auxiliar no desenvolvimento de um novo software

Page 20: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.
Page 21: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Medidas e Métricas

• As medições e as métricas ajudam-nos a entender o processo técnico usado para se desenvolver um produto, como também o próprio produto.– O processo é medido num esforço para melhorá-

lo.– O produto é medido num esforço para aumentar

sua qualidade.

Page 22: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Estimativas• guiadas pela experiência passada• projetos semelhantes

– tamanho e funções• mesma quantidade de esforço• mesmo tempo no calendário• custo mesmo

• novos projetos– Experiência passada não é suficiente

• técnicas de estimativa disponibilizadas para o desenvolvimento de software

Page 23: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Estimativas Primórdios da computação

– um erro nas estimativas de custo de software tinha pouco impacto

Atualmente– software é um elemento “caro”– custo pode ser desastroso para o desenvolvedor

Oferece ao planejador as informações necessárias para concluir as atividades de planejamento do projeto

Page 24: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Estimativas• Nunca serão exatas, são afetadas por variáveis

humanas, técnicas, ambientais e políticas• Para se ter estimativas com graus aceitáveis de risco,

opções:1) retardar as estimativas do projeto L2) usar técnicas de decomposição (dividir o

problema complexo em pequenos problemas)3) desenvolver modelo empírico4) adquirir ferramentas de estimativa

Page 25: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Análise de Riscos

• áreas de “incerteza”– as necessidades são entendidas?– técnicas e ferramentas computacionais

• é crucial para um bom gerenciamento de projetos

• Segundo Gilb (1988): “Se você não atacar ativamente os riscos (técnicos e de projeto), eles atacarão ativamente”

Page 26: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Determinação de Prazos

• programação de atividades para sua realização• cronograma das atividades– tarefas– pessoas– recursos

Page 27: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Monitoração e Controle

• Monitorar as atividades e controlar as atividades, a fim de que as atividades:– Dentro do prazo – Dentro dos custos– Se foram executadas

Page 28: Gestão de Projetos de Software. Gerenciamento de Projeto É uma tarefa importante de planejamento, direção, motivação e coordenação de grupos profissionais.

Qualidade de Software

"Concordância com os Requisitos Funcionais e de Desempenho explicitamente colocados, Padrões de Desenvolvimento explicitamente documentados e

características implícitas que são esperadas de todo profissional que desenvolve software”