08 julho, 2015

Gestão do Desenvolvimento de Software

Gerência de riscos

Risco, na área de TI está muito relacionado a questões de requisitos, comunicação, tecnologias, etc. São eventos incertos e se acontecerem podem ocasionar problemas, conhecidos como ameaça, ou podem ocorrer riscos positivos, conhecidos como oportunidade.

Devem ser identificados, quantificados e enfrentados se possível. Apresentam duas dimensões:

  • Probabilidade de ocorrência 
  • Impacto

A origem dos riscos, se deve a dois elementos: Incerteza e Complexidade.

É importante identificar os riscos, pois eles podem levar a:
  • Possíveis perdas financeiras
  • Podem levar ao fracasso de um projeto
  • Pessoas podem ser afetadas 
  • Patrocinadores não querem ver os riscos acontecendo
  • Equipe deve estar preparada para enfrentar os riscos
O PMBOK define 6 processos para gerência de risco, mostrado a seguir:
  1. Planejamento de riscos
    • Se faz o planejamento de ações para gerenciar os riscos
  2. Identificação dos riscos
    • Se faz um estudo individualizado dos riscos
  3. Análise qualitativa dos riscos
    • Avalia a prioridade dos riscos identificados
  4. Análise quantitativa dos riscos
    • Atribuir valores aos riscos
  5. Planejamento de respostas aos riscos
    • Definir as ações que vão ser tomadas
  6. Monitoramento e controle dos riscos
    • Se faz o monitoramento e tratamento dos riscos

Planejamento e acompanhamento de projetos

  • Projetos devem estar alinhados a estrategia da empresa
  • Para acompanhar, é preciso, antes, planejar
  • Metodologias de gerência de projetos são importantes para viabilizar essas atividades


Função de Planejamento
  • Informática, função de apoio
  • Estratégias empresarias refletem na informática
  • Complexidade inerente a área
  • Planejamento de necessidades e recursos devem ser rigorosos
  • Diagramas de controle de projetos são fundamentais
  • Riscos podem se tornar muito altos e até inviabilizar projetos

O problema básico do planejamento estratégico:
  1. Saber pra onde ir -> meta
  2. Definir como ir -> metodologia

Planejar um projeto significa estabelecer planos e monitorar resultados e dificuldades, a cada etapa do projeto, visando aplicar os conhecimentos e utilizar bem os recursos.

Planejamento requer diagnóstico da situação atual para elaboração de indicadores.

Relação entre planejamento empresarial e de projeto

  • Estratégico: objetivos de longo prazo (mais de 3 anos) que definem metas
  • Tático: ações de médio prazo (de 1 a 3 anos) que implementam metas estratégicas
  • Operacional: programação de curto prazo (até 1 ano), execução de projetos/subprojetos

Metodologias de gerenciamento de projetos

  • Uma boa metodologia de GP deve-se basear no conhecimento e na experiência
  • Deve considerar 10 áreas de GP do PMBOK
  • Deve ser adequada ao porte do projeto
  • Definir a abordagem (foco): orientada a processo, a resultados, qualidade, etc.
Metodologias visam
  • Criar padrões
  • Definir como chegar aos objetivos
  • Prover um checklist gerencial
  • Definir o ponto de partida e os pontos de verificação (milestones)

Problemas que podem afetar uma metodologia de gerenciamento projetos
  • Preocupação excessiva com procedimentos
  • Menosprezar dificuldades
  • Definir planos inexequíveis
  • Definir recursos sub ou super dimensionado
  • Não considerar o contexto
  • Ignorar a importância da equipe

Estrutura geral de um projeto, deve passar pelos passos
  1. Ambiente de projeto
  2. Escopo e objetivos
  3. Produtos a serem entregues
  4. Todos envolvidos (stakeholders)
  5. Análise de custo-benefício
  6. Prioridades (projeto e tarefas)
  7. Análise dos riscos
  8. Detalhamento do projeto
Estrutura geral de um projeto
  • Cronograma físico
  • Cronograma financeiro
  • Mapa de riscos
  • Recursos
  • Perfis e papéis da equipe
  • Treinamentos
  • Contratação de serviços

Produtos a serem entregues
  • Definir o que será entregue ao cliente, em termos de produtos/serviços
  • Os produtos entregues são detalhados nos objetivos do projeto
  • A entrega dos produtos e/ou a prestação dos serviços é o objetivo final do projeto

Stakeholders (envolvidos)
  • Clientes, fornecedores
  • Outros gerentes
  • Outros projetos
  • Requisitos externos (leis, normas, etc)
  • Assessorias/Consultorias
  • Recursos
  • Processos
  • Tecnologias e padrões

Para saber se um projeto é viável, faz-se a análise de custo-benefício, levantando fatores, comparando com outros projetos, etc.

A prioridade do projetos deve ser discutida com o cliente e internamente, deve-se levar em conta a orientação estratégica, importância,  custo/benefício, urgência, etc.

Papel do gerente de projeto
  1. Manter visão do projeto
  2. Estabelecer comunicação
  3. Focar nas metas do projeto
  4. Construir um estilo de abordagem pró-ativo
  5. Monitorar o projeto (tracking)
  6. Gerenciar recursos
  7. Tomar decisões pertinentes
  8. Fazer o papel de coaching

Competências do gerente de projetos
  • Dominar técnicas de gerenciamento de projeto
  • Aceitar críticas construtivas da equipe
  • Ter disposição para reuniões, seminários, cursos
  • Procurar ajuda sobre questões de difícil solução
Métodos e técnicas de GP
  • Gantt Chart
  • Critical Path Method (CPM)
  • Program Evaluation Review Technique (PERT)
Ferramentas de gerência de projetos
  • Brainstorming
  • Reuniões
  • Cronogramas
  • Gráfico de Gantt
  • Diagrama de rede
  • Planos de ação 5w2h
  • Análise SWOT

Ferramentas computacionais para gerência de projetos

  • WBS Chart Pro
  • MindManager
  • Microsoft Project
  • Primavera Teamplay
  • PMOffice
  • Open Project Management
  • Tassc Estimator Manager

Processos da gerência de projetos no MPS.Br

É aderente ao PMBOK, todos processos atendem ao processos do PMBOK.
  • GPR1 - O escopo do trabalho para o projeto é definido
  • GPR2 - As tarefas e os produtos de trabalho do projeto são dimensionados utilizando métodos apropriados
  • GPR3 - O modelo e as fases do ciclo de vida do projeto são definidos
  • GPR4 - (Até o nível F) O esforço e o custo para a execução das tarefas e dos produtos de trabalho são estimados com base em dados históricos ou referências técnicas
  • GPR4 - (Até o nível E) O planejamento e as estimativas das tarefas do projeto são feitos baseados no repositório de estimativas e no conjunto de ativos de processo organizacional
  • GPR5 - O orçamento e o cronograma do projeto, incluindo a definição de marcos e pontos de controle são definidos e mantidos
  • GPR6 - Os riscos do projeto são identificados e o seu impacto, probabilidade de ocorrência e prioridade de tratamento são determinados e documentados
  • GRP7 - Os recursos humanos para o projeto são planejados considerando o perfil e o conhecimento necessários para executá-lo
  • GPR8 - (Até o nível F) Os recursos e o ambiente de trabalho necessários para executar o projeto são planejados
  • GPR8 - (A partir do nível E) Os recursos e o ambiente de trabalho necessários para executar os projetos são planejados a partir dos ambientes padrão de trabalho da organização.
  • GRP9 - Os dados relevantes do projeto são identificados e planejados quanto à forma de coleta, armazenamento e distribuição.
  • GRP10 - Um plano geral para a execução do projeto é estabelecido com a integração de planos específicos.
  • GPR11- A viabilidade de atingir as metas do projeto é explicitamente avaliada considerando restrições e recursos disponíveis. Se necessário, ajustes são realizados.
  • GPR12 - O plano do projeto é revisado com todos os interessados e o compromisso com ele é obtido e mantido.
  • GPR13 - O escopo, as tarefas, as estimativas, o orçamento e o cronograma do projeto são monitorados
  • GPR14 - Os recursos materiais e humanos são monitorados em relação ao planejado.
  • GPR15 - Os riscos são monitorados
  • GPR16 - O envolvimento entre as partes interessadas no projeto é planejado, monitorado e mantido
  • GPR17 - Revisões são realizadas em marcos do projeto e conforme estabelecidos no planejamento
  • GPR18 - Registros de problemas identificados e o resultado da análise de questões pertinentes são estabelecidos e tratados com as partes interessadas
  • GPR19 - Ações para corrigir desvios em relação ao planejado e para prevenir a repetição dos problemas identificados são estabelecidas, implementadas e acompanhadas até sua conclusão.
  • GPR20 - (A partir do nível F) Equipes envolvidas no projeto são estabelecidas, mantidas a partir das regras e diretrizes para estruturação, formação e atuação
  • GPR21 - (A partir do nível E) Experiências relacionadas aos processos contribuem para os ativos de processo organizacional
  • GPR22 - (A partir do nível E) Um processo definido para o projeto é estabelecido de acordo com a estratégia para adaptação do processo da organização
  • GPR22 - (A partir do nível B) Os objetivos de qualidade e de desempenho do processo definido para o projeto são estabelecidos e mantidos
  • GPR23 - (A partir do nível B) O processo definido para o projeto que o possibilita atender seus objetivos de qualidade e de desempenho é composto com base em técnicas estatísticas, etc;
  • GPR24 - (A partir do nível B) Subprocessos e atributos críticos para avaliar o desempenho e que estão relacionados ao alcance dos objetivos de qualidade e de desempenho do processo do projeto são selecionados
  • GPR25 - (A partir do nível B) Selecionar medidas e técnicas analíticas a serem utilizadas na gerência quantitativa
  • GRP26 - (A partir do nível B) O desempenho dos subprocessos escolhidos para gerência quantitativa é monitorado usando técnicas estatísticas e outras técnicas quatitativas
  • GPR27 - (A partir do nível B) O projeto é gerenciado usando técnicas estatísticas e outras técnicas quantitativas para determinar se seus objetivos de qualidade e de desempenho do processo serão atingidos
  • GPR28 - (A partir do nível B) Questões que afetam os objetivos de qualidade e de desempenho do processo do projeto são alvo de análise de causa raiz

















03 julho, 2015

Gerência de Configurações

A Gerência de Configuração tem por objetivo cuidar dos ativos de um projeto de software, tais como
  • Programas;
  • Documentação Técnica;
  • Documentação Gerencial;
  • Informações sobre projetos e indicadores;
  • Etc.

No RUP, a disciplina que cuida dessa parte é a Gerência de Configuração e Mudança.

Exemplos de ferramentas de GC

  • SVN
  • Tortoise
  • Subversion
  • MS Sharepoint
  • IBM Clearcase

Conceitos de gerenciamento de mudanças

  • SCM (Gerência de Configuração) é uma atividade que abrange e é aplicada em todo processo de engenharia de um software. Como as mudanças podem ocorrer a qualquer tempo, as atividades de SCM são desenvolvidas para (1) identificar mudanças; (2) controlar mudanças; (3) garantir que a mudança esteja sendo adequadamente implementada; e (4) ressaltar a mudança a outras pessoas que possam ter interesse nela. Pressman
  • Uma configuração descreve um estado temporal que um elemento se encontra. Deve conter todos elementos significativos daquele sistema, tais como, estado do hardware, do software, documentação técnica relevante, bibliotecas, etc.
  • Controle de versão é o controle das revisões, mudanças na evolução de um item de produto. Objetivos:
    • Automatizar o rastreamento de arquivos
    • Prevenir conflitos de desenvolvedores
    • Recuperar versões previas
    • Permitir o desenvolvimento paralelo
    • Auditar o desenvolvimento
    • Reduzir o espaço de armazenamento
    • Estabelecer relacionamento entre arquivos, versões e distribuições
  • Gerencia de configuração controla as revisões, mudanças e dependências de um item de produto. Portanto, gerencia de configuração é mais amplo que controle de versão.
  • Item de configuração são itens que devem ser mantidos sob o controle da gerencia de configuração. São itens individuais. Ex. versão da espec. de requisitos, código fonte, cronograma de projeto, planilha de verificação.
  • Baseline é uma versão formalmente aprovada de um item de configuração, independente de mídia, formalmente definida e fixada em um determinado momento durante o ciclo de vida do item de configuração. Ou seja, é o estado inicial de configuração de um projeto. Os principais tipos, são:
    • Funcional: proposta do desenvolvimento de sistemas
    • Alocação: especificação de requisitos
    • Projeto: especificação de implementação e revisão critica
    • Produto: doc. de implementação, plano de teste e aceitação
    • Operacional: doc. comprova a aceitação do usuário
  • Repositório é um local sobre controle de acesso, onde são armazenados os itens de configuração de software.
  • Build representa uma versão ainda incompleta do sistema mas com certa estabilidade. Inclui outros docs, além do fonte.
  • Branches e Trunks, são ramificações laterais de versões que se originam de uma revisão da linha principal de desenvolvimento.
  • Versão alfa, é uma versão produzida após um ciclo de desenvolvimento e utilizada em testes controlados
  • Versão de homologação ou beta, é liberada aos clientes para testes
  • Versão oficial, liberada comercialmente para clientes
  • Versões emergenciais visa resolver bugs
  • Checkout quando se obtém uma cópia da versão do arquivo para modificação e simultaneamente se impede o acesso a outros usuários. Checkin quando se cria uma nova versão do arquivo e se libera o acesso a essa nova versão.

Funções da Gerencia de Configuração

  1. Identificação de configuração
    • Tem como objetivo a seleção dos itens de configuração desejados;
    • Definição de um esquema de codificação
    • Descrição dos itens
  2. Controle de configuração
    • Permite o acompanhamento da evolução dos itens de configuração. Estabelece as atividades para que os itens possam evoluir de forma controlada:
    • (1) solicitação de modificação, iniciando o ciclo de controle para uma manutenção
    • (2) classificação da modificação
    • (3) análise de impacto
    • (4) avaliação da modificação pelo comitê de controle de configuração
    • (5) implementação da modificação
    • (6) verificação da modificação com relação à proposta de implementação levantada
    • (7) atualização da baseline 
  3. Contabilização de configuração
    • Possui duas responsabilidades:
    • (1) Armazenar informações geradas pelas demais funções
    • (2) Permitir que as informações possam ser acessadas
  4. Avaliação e revisão da configuração
    1. Ocorre quando a baseline (gerada no controle de configuração) é selecionada para ser liberada para o cliente. Suas atividades são:
    2. (1) Auditoria funcional da baseline
    3. (2) Auditoria física de baseline
  5. Gerenciamento de liberação e entrega
    1. Construção: produzindo novos itens de configuração
    2. Liberação: identificado versões particulares de cada item de configuração
    3. Entrega: implantando produto no ambiente final de produção

Papeis, Artefatos e Atividades de GC

  • Gerente de configuração: papel de controlar as configurações de software
  • Auditor de configuração: responsável pela auditoria dos projetos
  • Equipe de projeto: usuários da gerencia de configuração de software
  • Bibliotecário: responsável pelo acesso a biblioteca de configurações (repo)
  • Comitê Controle de Mudança: responsável pelas decisões de modificação

Gerência de Configuração MPS-BR


Pertence ao Nível F junto com as atividades de 
  • Aquisição
  • Garantia da qualidade
  • Medição
  • Gerência de portfólio de projetos
GCO é composta por 7 REPs (Resultados Esperados no Processo), apresentados a seguir:
  • GCO1 - Um Sistema de Gerência de Configuração é estabelecido e mantido;
  • GCO2 - Os itens de configuração são identificados com base em critérios estabelecidos;
  • GCO3 - Os itens de configuração sujeitos a um controle formal são colocados sob baseline
  • GCO4 - A situação dos itens de configuração e das baselines é registrada ao longo do tempo e disponibilizada;
  • GCO5 - Modificação em itens de configuração são controladas;
  • GCO6 - O armazenamento, o manuseio e a liberação de itens de configuração e baselines são controlados;
  • GCO7 - Auditorias de configuração são realizadas objetivamente para assegurar que as baselines e os itens de configuração estejam íntegros, completos e consistentes.


O objetivo da GCO é estabelecer e manter a integridade de todos os produtos de trabalho de um projeto e disponibiliza-los para equipe.