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
Download

Gerencia de Configuração