Gestão de Projetos de Software 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 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. 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 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 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. 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 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 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? 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 Objetivos e Escopo do Projeto início PLANEJAMENTO DO PROJETO estabelecer objetivos e escopo considerar soluções alternativas identificar restrições administrativas e técnicas possibilita 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 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. 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 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... Recursos • Segunda atividade: estimativa dos recursos exigidos para desenvolver o software – recursos humanos – recursos de hardware – recursos de software 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 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 Recursos de Hardware Três categorias – o hardware de desenvolvimento (host system) – o hardware de produção (target machine) – um computador e os periféricos relacionados que serão usados durante o desenvolvimento do software 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 Recursos de Software (Ferramentas) • Usamos hardware para construir um novo hardware • Usamos software para auxiliar no desenvolvimento de um novo software 19 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. 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 Estimativas Primórdios da computação – Atualmente – – um erro nas estimativas de custo de software tinha pouco impacto 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 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 L 2) usar técnicas de decomposição (dividir o problema complexo em pequenos problemas) 3) desenvolver modelo empírico 4) adquirir ferramentas de estimativa 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” Determinação de Prazos • programação de atividades para sua realização • cronograma das atividades – tarefas – pessoas – recursos 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 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”