Gerenciamento de Projeto de Software
Gerência de Projetos de TI é a capacidade de equilibrar dedicação e implementação de tecnologia, ao mesmo tempo liderando e inspirando os membros da equipe. DINSMORE (1992). Gerência de Projetos de TI é a aplicação de conhecimentos, habilidades, e técnicas para projetar atividades ligadas à informática para atingir os requerimentos do projeto MAXIMIANO (1997). Objetivo principal o pleno êxito do projeto através da coordenação de pessoas, informações e do uso de Profa. Maria técnicas. Auxiliadora
(Planejamento)
(Atividades de Gerenciamento) Elaboração de propostas (planejar) Planejamento de atividades e cronogramas (planejar) Elaboração de custos (planejar) Monitoramento e revisões (controlar, revisar) Seleção e avaliação de pessoal (garantir) Elaboração de relatórios e apresentações.
(Rede de dependências)
(Planejamento de Projeto)
(Planejamento de Atividades) O planejamento deve ser baseado em estimativas de tempo (duração entre 1 e 3 semanas, não sendo aconselhável ultrapassar 10 semanas). O planejamento deve ser baseado em julgamento da complexidade das tarefas, que são necessariamente imprecisos.
(Elaboração de Cronograma) PERT (Programme Evaluation Review Technique- Método de Avaliação e Revisão de Programa) usada inicialmente em 1958 no desenvolvimento do míssil Polaris consiste de um conjunto de nodos, representando as atividades de um projeto, relacionados segundo as dependências entre estas atividades.
(Elaboração de Cronograma) Identifique as atividades. Identifique as dependências entre elas. Estime a duração de cada atividade. Considere a disponibilidade de pessoal. Crie gráficos de atividades para o projeto.
(Elaboração de Cronograma) A atividade C depende das atividades A e B, enquanto as atividades D e E dependem da atividade C
(Elaboração de Cronograma) Um nodo em um diagrama PERT possui geralmente 4 campos: Nom. Nome da atividade Dur. Duração da atividade. IMC. Data de início mais cedo. IMT. Data de início mais tarde Nom IMC Dur IMT
(Elaboração de Cronograma) Um diagrama PERT é construído do seguinte modo: 1) Percorre-se o diagrama a partir das atividades iniciais, calculando-se a data de início mais cedo de cada atividade. 1.1) A IMC de cada atividade inicial é 0. 1.2) A IMC de uma atividade X é igual ao maior valor (IMCy + Dury) de todas as atividades Y das quais X depende. 1.3) A duração do projeto é igual ao maior valor (IMCy + Dury) de todas as atividades finais Y.
(Elaboração de Cronograma)
(Elaboração de Cronograma) 2) Percorre-se o diagrama, de volta, a partir das atividades finais, calculando-se a data de início mais tarde de cada atividade. 2.1) A IMT de cada atividade final é igual à duração do projeto menos a duração da atividade. 2.2) A IMT de uma atividade X é igual ao menor valor (IMTy - Durx) considerando-se todas as atividades Y que dependem de X.
(Elaboração de Cronograma)
(Elaboração de Cronograma) 3) A folga de cada atividade é dada pela diferença: IMT - IMC. 4) O caminho crítico é composto pelas atividades que não tem folga.
(Elaboração de Cronograma - Exemplo) Atividade Duração Dependências A 3 B 2 C 4 D 3 A E 5 A,B F 2 E G 6 C,E H 4 D,F I 4 F J 6 H K 4 G,H,I
Gerenciamento de Pessoal Resolver problemas Usar o pessoal disponível; Motivar os membros do time, de acordo com capacidade, experiência e estilo de trabalho; Planejar o que as pessoas têm que fazer; Estimar com que rapidez elas podem produzir; Controlar controlar as atividades das pessoas; Organizar a maneira com as pessoas trabalham.
Gerenciamento de Pessoal Escolha de pessoal Alocação de atividades (tarefas) Gerenciamento de Pessoal Estilos de trabalho Canais de Comunicação O mito do Pessoa-Mês Dependência entre tarefas em projetos de software.
Gerenciamento de Pessoal Compartilhamento de tarefas Algumas tarefas da engenharia de software podem ser compartilhadas Entrevistas com diversos clientes para levantamento de requisitos; Elaboração dos modelos da arquitetura de software; Codificação das diferentes unidades; (módulos e componentes) de um software Testes de unidades.
Gerenciamento de Pessoal Esforço pessoa-mês, homem-hora Para estimar a duração de uma atividade, no lugar de uma unidade de tempo, usa-se uma medida do esforço. O esforço mede a relação inversa entre a quantidade de pessoas e o tempo gasto para realizar a atividade.
Gerenciamento de Pessoal Esforço pessoa-mês, homem-hora Função inversa: número_de_pessoas*unidade_de_tempo = 1 Unidades: pessoa-mês, homem-hora, etc. Por ex.: 10 homens-hora significa 1 homem faz a atividade em 10 hora 10 homens fazem a atividade em 1 hora
Gerenciamento de Pessoal O mito do Pessoa-Mês Pessoa-mês é uma unidade de medida do esforço humano necessário para realizar uma tarefa. Um esforço de 3 pessoa-mês indica que: Se existe 1 pessoa na equipe, serão gastos 3 meses para terminar a tarefa Se existem 3 pessoas na equipe, em 1 mês a tarefa estará concluída Mito: este raciocínio é, na maioria das situações reais, FALSO. As tarefas precisam ser completamente divisíveis e independentes para que seja verdadeiro.
Exemplos de atividades de um projeto Levantamento de requisitos Descrição de cenários Modelagem de Casos de Uso Arquitetura do sistema e do software Projeto do Banco de Dados Codificação e teste de unidades de software Integração e teste de software Manutenção
Gerenciamento de Pessoal Organização da equipe Da experiência trabalho dos membros da equipe; Estilo de trabalho dos membros da equipe; Do número de pessoas na equipe; Dos estilos de gerenciamento adotado no projeto; Das atividades a serem realizadas.
Gerenciamento de Pessoal Equipe básica Programador-chefe Capacidade gerencial associada a alta capacidade de programação. Responsável pela arquitetura do software. Aloca as tarefas de programação e controla as interfaces, interações e sincronismos.
Gerenciamento de Pessoal Equipe básica Programador reserva Deve conhecer tanto do projeto e ter a mesma capacidade técnica e gerencial do programador-chefe. Programador bibliotecário Responsável por toda a organização (códigos, modelos e documentos produzidos).
Gerenciamento de Pessoal Times democráticos Reestrutura o ambiente social e valores dos programadores; Grupos de 10 programadores sem-ego ; O time todo é dono do código; Cometer erros é considerado normal; Encoraja o time a encontrar erros; Maior produtividade; Atuação colaborativa na resolução de problemas difíceis.
Gerenciamento de Pessoal Times democráticos Problemas Precisa desabrochar espontaneamente; Dificuldade de gerenciamento; Rejeição a achar falhas no seu código.
Gerenciamento de Pessoal Tendências Líder Projeto Líder Equipe Líder Equipe Líder Equipe Progra - mador Progra - mador Progra - mador Progra - mador Progra - mador Progra - mador Progra - mador
Conclusão Um bom gerenciamento de projeto de software é essencial para que os projetos de engenharia de software sejam desenvolvidos dentro do prazo e do orçamento.