Gerência de Projetos de Software Prof. Rodrigo Nin [email protected] 1 Referências CMMI (Capability Maturity Model® Integration) http://www.sei.cmu.edu/cmmi/ PMI (Project Management Institute) http://www.pmi.org 2 PMI – Project Management Institute • Associação de profissionais de Gerência de Projetos • Sem fins lucrativos • Fórum de excelência na área de Gerência de Projetos • PMBOK – Project Management Body of Knowledge Documento contendo técnicas, métodos e processos relativos a Gerência de Projetos • PMP - Project Management Professional Certificação do PMI para indivíduos • PMO - Project Management Office Estrutura organizacional para coordenação da Gerência de Projetos em organizações. Formalizam e padronizam práticas, processos e operações de Gerência de Projetos 3 Projetos Rotinas Trabalho Trabalho contínuo e repetitivo com resultado sempre “igual” • Executado por pessoas • Restringido por recursos limitados • Planejado, executado e controlado Projetos Adaptado de PMBOK 2000 - Project Management Institute Trabalho temporário com resultado único 4 Projetos É com projetos que coisas novas são criadas Exemplos • Desenvolver um novo produto • Implementar uma mudança estrutural na organização • Desenvolver um sistema de informação • Adquirir um software • Construir um prédio ou instalações • Desenvolver um sistema de abastecimento de águas • Realizar uma campanha política • Implementar um novo processo ou procedimento Projetos produzem algo que nunca foi feito antes pelas mesmas pessoas e que não se repetirá nas mesmas condições Adaptado de PMBOK 2000 - Project Management Institute 5 Projetos Projetos podem... • Envolver uma pessoas ou milhares • Durar poucas semanas ou anos • Envolver uma unidade isolada da organização ou transpor as fronteiras da organização ( consórcios, parcerias, etc.) São Elaborados Progressivamente Elaboração: A definição do projeto é bastante abrangente no início do projeto e vai sendo detalhada à medida que o projeto vai sendo executado Progressiva: Executado através de passos, incrementos iterativos Pessoas e recursos materiais são alocados a um projeto na medida das necessidades de cada etapa Adaptado de PMBOK 2000 - Project Management Institute 6 Projetos • Custos e equipe são pequenas no início, aumentam durante a execução e voltam a cair drasticamente no final • A probabilidade de sucesso é muito pequena no início • A influência dos contratantes é bastante mais alta no início Adaptado de PMBOK 2000 - Project Management Institute 7 Projetos Principais competências para o sucesso de projetos de software Engenharia do Produto saber projetar e construir Engenharia de Processos saber organizar o trabalho Gerência de Projetos saber planejar e controlar 8 Gerencia de Projetos - Processos O PMBOK apresenta cinco grupos de processos para administrar um projeto. • Processos de iniciação: Definição de responsabilidades e autorização para início do projeto ou fase • Processos de Planejamento: Definição e refinamento dos objetivos e plano de ação para alcançar os objetivos • Processos de execução: coordenação de pessoas e recursos para realização do plano definido • Processos de controle: monitoramento e avaliação de progresso e implementação de ações corretivas ou preventivas • Processos de encerramento: formalização da aceitação dos resultados e conclusão dos trabalhos Adaptado de PMBOK 2000 - Project Management Institute 9 Projetos - Processos Relacionamento entre grupos de processos em uma fase de projeto Adaptado de PMBOK 2000 - Project Management Institute 10 Projetos - Processos A execução dos processos não é estritamente seqüencial Adaptado de PMBOK 2000 - Project Management Institute 11 Projetos - Fases Possuem um Ciclo de Vida que... • Estabelece uma seqüência de fases com o objetivo de realizar algo e garantir um bom gerenciamento • Determina o início e fim do projeto • Oferece uma seqüência de pontos de decisão no planejamento • Oferece pontos de sincronização para o trabalho colaborativo da equipe • Tem pontos de aprendizado para melhoria dos próximos passos Fases com produtos explicitamente aprovados Adaptado de PMBOK 2000 - Project Management Institute e de Hermano Perrelli - Centro de Informática da UFPE 12 Projetos - Fases Estratégia Incremental Inicialmente um conjunto de funcionalidades são especificadas, implementadas, construídas e aprovadas. Em seguida o mesmo ciclo se repete até que todas as funcionalidades previstas na solicitação do sistema tenham sido atendidas. Adaptado de Hermano Perrelli - Centro de Informática da UFPE 13 Projetos - Fases Relacionamento entre as fases FASE 1 FASE 2 FASE 3 Adaptado de PMBOK 2000 - Project Management Institute 14 Gerencia de Projetos – Áreas do Conhecimento O que se tem que gerenciar para ter sucesso em um projeto? Adaptado de Hermano Perrelli - Centro de Informática da UFPE 15 Gerencia de Projetos – Processos X Áreas do Conhecimento Adaptado de PMBOK 2000 - Project Management Institute 16 Gerencia de Projetos – Processos X Áreas do Conhecimento Adaptado de PMBOK 2000 - Project Management Institute 17 Gerencia de Projetos Grupos de Processos X Áreas do Conhecimento Adaptado de Hermano Perrelli - Centro de Informática da UFPE 18 Gerencia de Projetos – CMMI Áreas de processo de Gerenciamento de Projetos do CMMI • Planejamento de Projetos • Monitoramento e Controle de Projetos • Gerenciamento de Acordos com Fornecedores • Gerenciamento Integrado de Projetos • Gerenciamento de Riscos • Integração de Equipes • Gerenciamento Quantitativo de Projetos • Gerência de Requisitos (escopo) • Gerência de Configuração (conteúdo produzido) Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 19 Gerencia de Configuração Situações típicas no desenvolvimento de software Software em constante evolução Software com múltiplas versões Diversas alterações concorrentes e em estágios diferentes 20 Gerencia de Configuração Simultaneamente temos ... Um desenvolvedor alterando um código Outro desenvolvedor alterando outro código Um terceiro criando código novo com alterações no banco de dados Uma alteração em homologação Outra alteração sendo instalada em alguns clientes Um usuário reportando um bug que exige correção emergencial Uma demonstração de “customização” sendo elaborada Et coetera… 21 Gerencia de Configuração Sintomas da perda de controle sobre a configuração de software Bugs já corrigidos reaparecem em versão posterior Funcionalidades já implementadas que desaparecem em versão posterior Impacto de mudanças mal avaliado acarretando em retrabalho, atrasos, erros, etc. Não se sabe com certeza qual versão está instalada no usuário Não se consegue reproduzir problema reportado pelo usuário 22 Gerencia de Configuração Conseqüências ... Cópias dos mesmos arquivos (?) em servidores e estações de trabalho Arquivos perdidos ou com falhas de integridade Arquivos sobrescritos Inconsistências: código X código X DLLs X banco de dados X ... Dificuldade de saber quem está alterando o que Impossibilidade de saber qual arquivo foi utilizado na elaboração de outro ...PERIGO! 23 Gerencia de Configuração Razões para a perda do controle sobre o software Software é complexo Software é intangível Software é sofre muitas alterações Software é fácil de alterar, o que é difícil é alterar certo 24 Gerencia de Configuração Conceito Abordagem sistemática e disciplinada do problema de gerenciar a evolução de produtos de software, visando manter a integridade e a rastreabilidade durante todo o ciclo de vida dos produtos Objetivo Estabelecer e manter a integridade dos artefatos (produtos de trabalho) ao longo de todo o ciclo de vida do software Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 25 Gerencia de Configuração 26 Gerencia de Configuração 27 Gerencia de Configuração 28 Gerencia de Configuração 29 Gerencia de Configuração 30 Gerencia de Configuração A Gerência de Configuração envolve ... Selecionar e identificar os itens de configuração Definir baselines de configuração Controlar sistematicamente as mudanças na configuração Manter a integridade dos itens de configuração Manter a rastreabilidade dos itens de configuração Prover dados precisos sobre o estado da configuração ao longo de toda a vida do software Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 31 Gerencia de Configuração Exemplos de itens de configuração Cronogramas Descrições de processo Regras de negócio Requisitos Modelos e especificações de artefatos Código fonte Código executável Estruturas e scripts de banco de dados Compiladores e componentes adquiridos Manuais Casos de teste etc… (qualquer coisa que se decida controlar) Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 32 Gerencia de Configuração Baselines São conjuntos de artefatos formalmente definidos que servem de base para desenvolvimento posterior e que só podem ser alterados através de procedimentos controlados e formalmente estabelecidos Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 33 Gerencia de Configuração Baselines são planejados Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 34 Gerencia de Configuração Baselines Os baselines são os marcos de referência no desenvolvimento de um software Os baselines são versões estáveis e consistentes de um software contendo todos os artefatos que o compõem em um dado momento O processo de desenvolvimento de software segue de baseline em baseline, acumulando itens de configuração novos ou alterados Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 35 Gerencia de Configuração Exemplos de baselines Uma descrição aprovada de um software que contém internamente versões consistentes de requisitos, matrizes de rastreabilidade, planos, etc. Uma versão completa de um software para ser instalado Uma versão completa de um software que foi adequado a uma nova tecnologia Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 36 Gerencia de Configuração Versionamento Indentificação de uma nova versão (ou revisão) dos itens a cada alteração 1.2 1.1 Versão atual do item (topo da pilha) 1.0 Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 37 Gerencia de Configuração Versionamento X Baseline Cada baseline é constituída de versões específicas de cada item de configuração Item A 1.3 1.2 1.1 1.0 Item B Item C 1.0 1.2 1.1 1.0 Adaptado de CMMI-SE&SW V1.1 (Staged Representation) Baseline 2 Baseline 1 38 Gerencia de Configuração Versionamento: Check-out Disponibiliza a última versão do item na área de trabalho do desenvolvedor bloqueando check-outs posteriores 1.2 Área do Desenvolvedor Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 1.2 1.1 1.0 Versão atual do item (topo da pilha) Área do Sistema 39 Gerencia de Configuração Versionamento: Check-in Retira o item da área de trabalho do desenvolvedor, adiciona como uma nova versão na área do sistema e libera p/check-out 1.2 Área do Desenvolvedor Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 1.3 1.2 1.1 1.0 Versão atual do item (topo da pilha) Área do Sistema 40 Gerencia de Configuração Versionamento: Distribuições Distribuições: Versões entregues ao cliente Baseline 7 Baseline 6 Baseline 5 Baseline 4 Baseline 3 Distribuição 3 Baseline 2 Distribuição 2 Baseline 1 Distribuição 1 Adaptado de CMMI-SE&SW V1.1 (Staged Representation) 41