Ciência da Computação ENGENHARIA DE SOFTWARE Planejamento e Gerenciamento Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com
Roteiro Introdução; Pessoas, Produto, Processo e Projeto; Gerência de Projetos; Plano do Projeto; Fatores de Produtividade. 2/26
Introdução Gerencia de Projetos (organizar, planejar, escalonar, definir...) É um empreendimento temporário com o objetivo de criar um projeto único. Exemplo: A construção de uma estrada, a implantação de um ERP. Extremamente difícil (relativamente novo e projetos não são muito reutilizáveis); Necessita: Comprometimento do cliente e da equipe de desenvolvimento; Compreender o escopo do trabalho; Milestones (marcos de referência); Deliverables (fases de entrega do produto). 3/26
Introdução Segundo Pressman a gestão efetiva de projetos de software focaliza 4 Ps: Pessoas (comunicação e organização); selecionar e manter o pessoal motivado e altamente qualificado Produto (objetivos e escopo); estabelecer os objetivos e escopo do produto para poder planejar Processo (adequar pessoas e produto); definir e usar tarefas, eventos, produtos de trabalho e pontos de controle para garantia de qualidade, para a elaborar o plano de desenvolvimento do produto Projeto (planejar e estimar). conduzir projetos planejados e controlados para gerir complexidade 4/26
Pessoas Passo mais importante; Participantes: Gerentes seniores (interface entre negócios e profissionais); Gerentes de projeto (planejar, motivar, organizar e controlar); Profissionais (engenharia do produto); Clientes (estabelece requisitos); Usuários. 5/26
Pessoas (cont.) Líderes: Motivação (encorajar); Organização (moldar processos); Segurança (confiança de assumir o controle); Idéias ou Inovação (incentivar a ser criativo); Entender as necessidades das pessoas. Sabe onde quer chegar e vai (John Erskine); 6/26
Pessoas (cont.) Equipe: Democrática Descentralizada (consenso do grupo); Controlada Descentralizada (hierarquia de pessoas); Controlada Centralizada (único líder); Características: Confiança; Dividir tarefas adequadamente; Evitar Estrelismo. 7/26
Pessoas (cont.) Fatores que influenciam a equipe: Complexidade e grau de modularização do problema; Tamanho; Período de tempo; Qualidade e Confiabilidade; Prazo de entrega; Grau de sociabilidade. em qual(is) fator(es) cada abordagem é mais adequada??? 8/26
Produto Falta de informações sobre o produto Dificulta o estabelecimento de estimativas; Escopo: Contexto; Objetivos de informação (entradas e saídas); Função e desempenho. 9/26
Processo Escolher o modelo de desenvolvimento; Fusão do produto e do processo: Comunicação com o cliente; Planejamento (tarefas, prazos,...); Análise de risco; Engenharia (construção); Construção e entrega (documentação e treinamento); Avaliação pelo cliente (feedback). 10/26
Projeto Sinais que devem ser evitados em um projeto: Pessoal não entende a necessidade do cliente; Escopo do produto está mal definido; As modificações são mal-gerenciadas; A tecnologia escolhida sofre modificações; Prazos irreais; O patrocínio é perdido; Equipe não está adequadamente apta; Gerentes e profissionais evitam melhores práticas. 11/26
Projeto (cont.) Cinco partes utilizando bom senso: Comece com o pé direito (trabalhe duro); Mantenha a energia de momento (incentivos e maior agilidade para os profissionais); Acompanhe o progresso do projeto (garantia de qualidade, medidas coletadas); Tome decisões adequadas (simplicidade, riscos óbvios e estimativas adequadas); Faça uma análise a posterior (reflexão e lições aprendidas); 12/26
Boas práticas em Gerência de Projetos PMI - Project Management Institute PMBOK - Project Management Body of Knowledge Cinco grupos de processos; Nove áreas de conhecimento 44 processos Processo de Iniciação Processo de Planejamento Processo de Execução Processo de Controle Processo de Encerramento 13/26
Boas práticas em Gerência de Projetos Processo de Iniciação Obter o comportamento para o início do projeto Processo de Planejamento Escopo Planejamento do escopo Detalhamento do escopo Tempo Definição de atividades Sequenciamento de atividades Estimativa de duração de atividades Desenvolvimento de cronograma Custo Planejamento de recursos Estimativas de custos Orçamento de custos 14/26
Boas práticas em Gerência de Projetos Processo de Planejamento (cont.) Risco Identificação dos riscos Análise quantitativa Análise qualitativa Planejamento de resposta ao risco Planejamento de gerência de risco RH Planejamento organizacional Montagem de equipe Aquisição Planejamento de aquisição Preparação de aquisição Qualidade Planejamento da qualidade 15/26
Boas práticas em Gerência de Projetos Processo de Planejamento (cont.) Comunicação Planejamento da comunicação Integração Desenvolvimento do plano de projetos Processo de Execução Execução de plano Pedido de propostas Seleção de fornecedores Garantia de qualidade Desenvolvimento de equipe Administração de contratos Distribuição de informação 16/26
Boas práticas em Gerência de Projetos Processo de Controle Relatório de desempenho Controle integrado de mudanças Verificação do escopo Controle de mudanças de escopo Controle de custos Controle de qualidade Controle de cronograma Controle de resposta ao risco Processo de Encerramento Encerramento de contratos Encerramento administrativo 17/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Definir objetivos e escopos Função Desempenho restrições interfaces confiabilidade Cliente e engenheiros de software trabalham na mesma equipe Obtenção de informação (entrevista, entender o problema, efetividade da reunião). Viabilidade: Tecnologia Financeiro Tempo Recursos 18/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Elaboração de uma proposta (estimativas, custos e prazos); Métricas (processo e produto); Gerência Planejamento Estimativas (esforço humano, duração e custos); Estimar com base em projetos passados (Problema???) Outra forma: Utilizar métricas de software; Dividir um projeto em pequenas partes. 19/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Surgem várias questões; Se você não atacar ativamente os riscos, estes lhe atacarão ativamente. [GIL] Para atacar: Identificar; Avaliar; Priorizar; Planejar estratégias; Resolução; Monitorar. 20/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Humano: Seleção por Organização e especialidade; Definir quantidade Definir a estimativa de esforço. Ferramentas de hardware e software; Descrição; Declaração; Época; Prazo. Componentes de software reusáveis; Software de terceiros; Experiência Plena (projetos anteriores, muita experiência); Experiência Parcial (substancial modificação, experiência limitada, risco considerável); Novos. 21/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Equipes de desenvolvimento; Pessoas (engenheiro sênior, pessoal técnico, especialistas, pessoal do apoio); Gerir Vaidades e invejas; As equipes deve possibilitar: Abordar o projeto em um esforço conjunto; Ajuda na revisões técnicas; Melhora qualidade final; Aumento de aprendizagem dos membros; Comunicação correta; Entregar marcos (atividade) e produtos (fase); Gerentes devem acompanhar, reordenando, revisando, re-alocando, renegociando... 22/26
Plano do Projeto Estrutura analítica e programação para realizar o trabalho 1. Contexto 1. Objetivos; 2. Funções principais; 3. Desempenho 4. Restrições Técnicas e Administrativas 2. Estimativas 1. Dados Utilizados 2. Técnicas de Estimativas 3. Estimativas 3. Riscos do Projeto 1. Análise dos Riscos 2. Administração dos Riscos 4. Recursos Necessários 1. Pessoal 2. Software e Hardware 3. Outros Recursos 5. Organização do Pessoal 6. Cronograma 1. Divisão do esforço no projeto 2. Redes de tarefas; 3. Linha de tempo 4. Tabela de Recursos 7. Apêndices Pontos importantes para definir um cronograma: Relação tempo-esforço; Quantidade de tarefas e paralelismo; Medir o progresso; Distribuir esforço; Métodos para determinar os prazos; Representar e acompanhar o progresso o cronograma. 23/26
Fatores de Produtividade Humanos (tamanho e experiência); Problema (complexidade e mudanças); Processo (Técnicas, linguagens e ferramentas); Produto (Confiabilidade e desempenho); Recursos (hardware e software). Complexidade do projeto (familiaridade, usar medidas); Tamanho do projeto (interdependência entre as tarefas, dificuldade de decomposição); Grau de incerteza estrutural (requisitos sólidos, hierarquia de informações); 24/26
Bibliografia BIBLIOGRAFIA BÁSICA: PRESSMAN, R.S. Engenharia de Software. Mc Graw Hill, 5ª Edição 2001. SOMMERVILLE,I. Engenharia de Software. Addison Wesley, 6ª Edição 2003. REZENDE,D.A. Engenharia de Software e Sistemas de Informação. Brasport, 2ª edição. BIBLIOGRAFIA COMPLEMENTAR: WEBER,K.C. et all. Qualidade e produtividade em Software. Makron Books, 1999. ROCHA,A.R.C et all; Qualidade de Software. Editora Linarth, 1999. Anais do SBES - Simpósio Brasileiro de Engenharia de Software. SEI. SOFTWARE ENGINEERING INSTITUTE. CMMI for Development (CMMI-DEV), Version 1.2, Technical report CMU/SEI-2006-TR-008. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006. SOFTEX. MPS.BR - Melhoria de Processo do Software Brasileiro. Guia Geral, versão 1.2. 2007. ABNT ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 12207 Tecnologia de informação - Processos de ciclo de vida de software. Rio de Janeiro, 1998. ISO/IEC - The International Organization for Standardization and The International Electrotechnical Commission, ISO/IEC TR 15504 Software Process Assessment. 1998. 25/26
Ciência da Computação ENGENHARIA DE SOFTWARE Planejamento e Gerenciamento Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com