PSP - Personal Software Process Maria Cláudia F. P. Emer
PSP: Personal Software Process Já foram vistas ISO/IEC 9126 – foco no produto ISO 9001 e CMM – foco no processo de desenvolvimento Critica a essas abordagens Difícil aplicação em pequenas empresas ou no nível individual
PSP: Personal Software Process Surgimento do PSP SEI (Software Engineering Institute), por Watts Humphrey Objetivo ajudar as pessoas a serem melhores engenheiros de software
PSP: Personal Software Process Visa melhorar, no nível pessoal: Capacidade de planejamento Acompanhamento Qualidade dos resultados Benefícios Melhoria de produtividade Melhoria do perfil de qualidade dos produtos
Os quatro níveis do PSP
PSP0: Processo referencial (Baseline process) Estabelecimento de práticas de medidas Formatos de relatórios – base para melhoria contínua pessoal
PSP0: Processo referencial (Baseline process) Padrões de programação Práticas de medida de tamanho de produto de trabalho Proposta de melhoria de processo (PIP – Process Improvement Proposal) – registro de problemas nos processos, experiências e propostas de melhoria
PSP1: Processo de planejamento pessoal Práticas de planejamento Relatório de teste Práticas de estimativa de tamanho e recurso
PSP1: Processo de planejamento pessoal Planejamento de tarefas Elaboração de cronogramas O planejamento no nível pessoal permite: Melhor compreensão do tamanho do programa e tempo gasto no seu desenvolvimento Assumir compromissos com certeza de seu cumprimento Organizar o trabalho Acompanhar melhor o status do desenvolvimento
PSP2: Processo de gestão pessoal de qualidade Gerenciamento dos próprios erros Técnicas de inspeção e revisão para detecção de defeitos Coleta e análise de dados de defeitos de compilação e teste detectados em programas anteriores Avaliação da evolução do nível de qualidade do programador
PSP2: Processo de gestão pessoal de qualidade Processo de design Auxilia no estabelecimento de critérios de completitude e de técnicas de verificação e consistência
PSP3: Processo pessoal cíclico Subdividir o programa em módulos Desenvolvimento incremental Cada módulo é um ciclo completo de design, codificação e teste (PSP2) Controle de qualidade de cada módulo Uso de relatórios Testes de regressão
Utilização do PSP Benefícios concretos para os desenvolvedores [Humphrey 95]: Melhor entendimento do trabalho, através da definição, medição e acompanhamento Uso de uma estrutura de processos definida e critérios mensuráveis avaliação de experiências anteriores Possibilidade de selecionar métodos e técnicas que melhor se adaptem ao trabalho Maior produtividade e eficácia nas equipes de desenvolvimento
Utilização do PSP Princípios que influenciam a produtividade e qualidade do processo de desenvolvimento Um processo bem definido e estruturado pode melhorar a eficiência no trabalho O processo pessoal deve ser ajustado ao conhecimento e preferência de cada um O desenvolvedor se sente à vontade com o processo se participar de sua definição Na medida que o conhecimento e habilidade de um profissional evoluem, o processo utilizado deve evoluir A melhoria contínua fica facilitada com um processo de realimentação permanente
PSP e CMM PSP foi criado a partir do CMM A idéia é trazer ao nível de programador os conceitos de processo tratados pelo CMM
SPICE – ISO/IEC 15504 Maria Cláudia F. P. Emer
SPICE – ISO/IEC 15504 SPICE – Software Process Improvement and Capability dEtermination Nome dado ao projeto de elaboração da futura norma ISO/IEC 15504 Surgiu pela necessidade de uma norma de avaliação de processo de software
SPICE – ISO/IEC 15504 Objetivo: É dividida em duas dimensões: Ser mais geral e abrangente que modelos existentes Ser mais específica que a ISO 9001 É dividida em duas dimensões: Processo Capacidade de processo
Documentos que formam o SPICE
Uso da ISO/IEC 15504 Pode ser usada para avaliação quanto a: Melhoria de processo Gerar um perfil dos processos que serão usados em um plano de melhorias O perfil deve conter objetivos e contexto para avaliação, modelo e método para avaliação e objetivos de melhoria
Uso da ISO/IEC 15504 Melhoria de processo
Uso da ISO/IEC 15504 Pode ser usada para avaliação quanto a: Determinação da capacidade dos processo de uma organização Avaliar um possível fornecedor Perfil de capacidade – objetivos e métodos de avaliação, modelos e métodos de avaliação e requisitos esperados O perfil de capacidade permite estimar o risco associado a contratação do fornecedor
Uso da ISO/IEC 15504 Determinação da capacidade
Estrutura do Modelo de Referência Dimensão de processo Processos de desenvolvimento são vistos conforme a norma ISO/IEC 12207 (ciclo de vida de software) Dimensão de capacidade Modelo de medição com base na identificação de um conjunto de atributos que permite determinar a capacidade de um processo para atingir seus propósitos
Dimensão de processos Três agrupamentos básicos Processos primários: categorias de engenharia de software e de ralação cliente-fornecedor Processo de apoio: categoria de processos de apoio Processos organizacionais: categorias de processos de gestão e processos organizacionais
Dimensão de processos Cinco categorias de processos CUS: cliente-fornecedor (customer-supplier) ENG: engenharia de software (engineering) SUP: apoio (support) MAN: gestão (management) ORG: organizacionais (organization)
Dimensão de processos - primários
Dimensão de processos - Processos primários Categoria CUS CUS: processos que afetam diretamente o cliente CUS.1 processo de aquisição: obtenção de um produto que satisfaça as necessidades expressas pelo cliente Preparação para aquisição Seleção do fornecedor Monitoramento do fornecedor aceitação
Dimensão de processos - Processos primários Categoria CUS CUS.2 processo de fornecimento: fornecimento do software para o cliente, satisfazendo suas necessidades Preparação de um contrato Entrega Instalação do produto
Dimensão de processos - Processos primários Categoria CUS CUS.3 elicitação de requisitos: indica coletar, processar, controlar e acompanhar os requisitos do cliente Mecanismos de comunicação com o cliente Mecanismos de controle de mudanças de requisitos
Dimensão de processos - Processos primários Categoria CUS CUS.4 processo de operação: fazer operar o software no ambiente de software e hardware para o qual ele foi desenvolvido e fornecer suporte ao cliente Processo de uso operacional Processo de suporte ao usuário
Dimensão de processos - Processos primários Categoria ENG ENG: processos relacionados à construção e manutenção do produto de software ENG.1 processo de desenvolvimento: objetivo de transformar os requisitos em um produto de software Processo de análise de requisitos do sistema Processo de análise de requisitos de software
Dimensão de processos - Processos primários Categoria ENG ENG.1 continuação Processo de projeto de software Processo de construção de software Processo de integração de software Processo de teste de software Processo de integração e teste de sistema
Dimensão de processos - Processos primários Categoria ENG ENG.2 processo de manutenção de software e de sistema: gerenciar modificações, migrações e desativações de software e sistema, a pedido do usuário
Dimensão de processos - Processos apoio
Dimensão de processos – Processo de apoio Categoria SUP SUP: processos relacionados ao apoio ou suporte SUP.1 processo de documentação: desenvolver e manter documentos que registrem informações produzidas por outro processo ou atividade Elaboração, controle, manutenção, revisão, aprovação e publicação de documentos e seu acesso
Dimensão de processos – Processo de apoio Categoria SUP SUP.2 gestão de configuração: estabelecer e manter a integridade de todos os produtos de trabalho de algum processo ou do projeto Estratégia de gestão da configuração Identificação de itens de configuração Controle de acesso e de mudanças de itens Registro da situação de todos os itens Controle do armazenamento e manuseio desse registro
Dimensão de processos – Processo de apoio Categoria SUP SUP.3 garantia da qualidade: assegurar que os produtos de trabalho e atividades de um processo ou projeto estão de acordo com os requisitos especificados e satisfazem aos planos e regras estabelecidos Estabelecimento de procedimentos para o tratamento de desvios encontrados em relação as regras, procedimentos e padrões Pode fazer uso de resultados de processos de verificação, validação, revisão conjunta, auditoria e resolução de problemas Os envolvidos com a garantia de qualidade devem ter autonomia na execução de suas tarefas
Dimensão de processos – Processo de apoio Categoria SUP SUP.4 processo de verificação: examinar se cada produto de trabalho ou serviços obtidos de um processo reflete as especificações de entrada do processo Definição de uma estratégia de verificação Definição de critérios de verificação A verificação deve assegurar que os defeitos encontrados serão removidos e que os resultados serão disponibilizados para elementos relevantes Processo relacionado com os processos ENG1.6 e ENG1.7
Dimensão de processos – Processo de apoio Categoria SUP SUP.5 processo de validação: examinar se estão satisfeitos os requisitos para o uso pretendido de cada produto de trabalho ou serviço, resultado de um processo Definição de uma estratégia de validação Definição de critérios de validação A verificação deve assegurar que os defeitos encontrados serão removidos, que os resultados serão disponibilizados para elementos relevantes e que os produtos são adequados para o uso pretendido Processo relacionado ao processo ENG1.7
Dimensão de processos – Processo de apoio Categoria SUP SUP.6 processo de revisão conjunta: permitir ao cliente a visibilidade do andamento do desenvolvimento quando comparado ao especificado no contrato Aspectos técnicos e administrativos Realização de revisões periódicas da situação de produtos e atividades por todas as partes interessadas em datas preestabelecidas Solução de todas as pendências, problemas e desvios detectados
Dimensão de processos – Processo de apoio Categoria SUP SUP.7 processo de auditoria: determinar a conformidade de produtos identificados e atividades com planos, requisitos e com o contrato Definição da estratégia de programação da auditoria Especificação dos itens que serão auditados e por quais regras O pessoal que conduz a auditoria deve ser independente àquele que executa o desenvolvimento Os problemas detectados devem ser comunicados aos responsáveis para sua correção
Dimensão de processos – Processo de apoio Categoria SUP SUP.8 processo de resolução de problemas: assegurar que todos os problemas encontrados sejam analisados, resolvidos e que tendências sejam observadas, para planejamento e execução de ações corretivas
Dimensão de processos – Processos organizacionais
Dimensão de processos – Processos organizacionais Categoria MAN MAN: processos que contêm práticas de natureza geral MAN.1 processo de gestão: organizar, monitorar e controlar a execução de qualquer processo ou função dentro da organização para garantir a satisfação de seus objetivos e dos objetivos de negócio da organização Planejamento das atividades e dos recursos necessários Análise da viabilidade de se atingir os objetivos associando às restrições técnicas, de custo e de prazo
Dimensão de processos – Processos organizacionais Categoria MAN MAN.2 processo de gestão de projeto: identificar, estabelecer, coordenar e monitorar atividades, tarefas e recursos necessários para que um projeto produza serviços ou produtos de acordo com requisitos especificados Definição do contexto de trabalho Realização de análise de viabilidade Produção de estimativas de recursos e esforço necessário para realização das tarefas
Dimensão de processos – Processos organizacionais Categoria MAN MAN.3 processo de gestão da qualidade: monitorar a qualidade dos produtos e serviços do projeto e garantir a satisfação do cliente Estabelecimento de metas conforme necessidades explícitas e implícitas dos clientes Definição de pontos intermediários de verificação Estabelecimento de uma estratégia contendo práticas de verificação e de garantia de qualidade, monitorando os resultados, comparando-os com as metas estabelecidas e coordenando as correções necessárias
Dimensão de processos – Processos organizacionais Categoria MAN MAN.4 processo de gestão de risco: identificar, analisar, priorizar e monitorar riscos continuamente, desenvolvendo planos de contingência para os mais críticos Níveis organizacionais e de projeto Definição de uma estratégia de gestão de riscos Monitoramento contínuo dos riscos Análise e priorização dos riscos definição de métricas quantitativas de risco (evolução e variação) Planejamento e execução de planos de contingência para prevenção de problemas
Dimensão de processos – Processos organizacionais Categoria ORG ORG: processos associados às atividades gerais da organização, desde os objetivos do negócio até a gestão de recursos humanos ORG.1 processo de alinhamento gerencial: assegurar que os indivíduos na organização conheçam e entendam o seu papel e trabalhem para alcançar os objetivos de negócio da empresa, e também, compreendam a visão da empresa e sua missão
Dimensão de processos – Processos organizacionais Categoria ORG ORG.2 processo de melhoria: estabelecer, medir, controlar e aperfeiçoar os processos do ciclo de vida de software Processo para o estabelecimento de processos Processo para a avaliação de processos Processo de melhoria de processos
Dimensão de processos – Processos organizacionais Categoria ORG ORG.3 processo de gestão de recursos humanos: prover para organização indivíduos capacitados para exercer os seus papéis, como indivíduos e em grupo Avaliação periódica da necessidade de treinamento Verificação da necessidade de recrutamento e contratação Apoio à interação produtiva e harmônica entre grupos Avaliação do desempenho dos profissionais da organização
Dimensão de processos – Processos organizacionais Categoria ORG ORG.4 processo de infra-estrutura: manter de forma estável e confiável a infra-estrutura necessária para apoiar a execução de outros processos A infra-estrutura inclui: hardware, software, métodos, ferramentas, técnicas, padrões e facilidade para o o desenvolvimento, operação e manutenção
Dimensão de processos – Processos organizacionais Categoria ORG ORG.5 processo de medida: coletar e analisar dados relacionados aos produtos desenvolvidos e processos implementados na organização, apoiar a sua gestão e demonstrar de forma objetiva a qualidade dos produtos
Dimensão de processos – Processos organizacionais Categoria ORG ORG.6 processo de reuso: promover e facilitar o reuso de produtos de trabalho de software novos ou existentes Desenvolvimento de estratégia de reuso Identificação de atividades relacionadas Estabelecimento de infra-estrutura de apoio (rede de computadores, repositórios e gestão de configuração)
Dimensão de capacidade de processo Estabelece uma escala de capacidade de processo Seis níveis crescentes Roteiro claro para orientar a melhoria de um processo Medida de capacidade – atributos de processo
Dimensão de capacidade de processo – descrição dos atributos de processo
Dimensão de capacidade de processo – Níveis Nível 0: processo incompleto Processo não implementado Processo não gera os produtos esperados Não há atributos de processo
Dimensão de capacidade de processo – Níveis Nível 1: processo executado Processo consegue alcançar os objetivos de alguma forma Processo gera os produtos esperados Atributo: PA 1.1 atributo de execução de processo: transformação de produtos de entrada em produtos de saída e os resultados esperados do processo são alcançados
Dimensão de capacidade de processo – Níveis Nível 2: processo gerenciado Processo executado de modo planejado, controlado, acompanhado, verificado e corrigido Atributos: PA 2.1 atributo de execução de processo: mede até que ponto o processo é gerenciado para produzir os produtos que satisfazem ao seu objetivo Características: objetivos do processo em termos de qualidade, prazo e uso de recursos identificados, atribuição de responsabilidade pelo produto de trabalho feita, execução do processo é gerenciada
Dimensão de capacidade de processo – Níveis Nível 2: processo gerenciado Atributos: PA 2.2 atributo de gestão dos produtos de trabalho: mede até que ponto os produtos de trabalho são documentados, controlados e verificados Características: requisitos dos produtos de trabalho documentados, requisitos para documentação e controle de produtos de trabalho definidos, dependências entre produtos de trabalho estão definidas, os produtos de trabalho têm suas mudanças controladas e são distribuídos em baselines, os produtos são verificados
Dimensão de capacidade de processo – Níveis Nível 3: processo estabelecido Processo executado e gerenciado, é definido com base em princípios de engenharia de software Atributos: PA 3.1 atributo de definição de processo: mede até que ponto o processo é definido com base em um processo padronizado Características: existe um processo padronizado na empresa, no qual as adaptações podem ser feitas; o processo é executado conforme um processo padronizado ou adaptado de acordo com orientações para adaptações; dados históricos do processo são coletados para auxiliar na compreensão do comportamento estatístico do processo; a experiência acumulada é usada para refinar o processo
Dimensão de capacidade de processo – Níveis Nível 3: processo estabelecido Atributos: PA 3.2 atributo de recursos de processo: mede até que ponto o processo faz uso de recursos humanos e materiais para ser executado com sucesso Características: os papéis, responsabilidades e competências necessárias para execução do processo são identificados e documentados; a infra-estrutura necessária para a execução do processo é identificada e documentada; os recursos necessários são alocados e utilizados na execução do processo
Dimensão de capacidade de processo – Níveis Nível 4: processo previsível Processo executado, gerenciado e definido, é executado dentro de limites quantitativos bem definidos Atributos: PA 4.1 atributo de medida: mede até que ponto métricas e objetivos de processo/produto são usados para assegurar que a execução do processo é efetiva, alcançando os objetivos de negócio da empresa Características:métricas são identificadas e coletas; as tendências observadas são analisadas; a capacidade de processo é medida
Dimensão de capacidade de processo – Níveis Nível 4: processo previsível Atributos: PA 4.2 atributo de controle de processo: mede até que ponto o processo é controlado por intermédio da coleta, análise e uso de medidas para servir de base para ações corretivas, quando necessário Características: técnicas de medida são estabelecidas; características de produto e processo são medidas e usadas como insumo para permitir o controle de processo dentro de limites de variabilidade; o processo é gerenciado de forma quantitativa
Dimensão de capacidade de processo – Níveis Nível 5: processo em otimização Processo executado, gerenciado, definido e executado dentro de limites quantitativos, pode ser mudado e evoluído de maneira dinâmica e sob controle Atributos: PA 5.1 atributo de mudança de processo: mede até que ponto mudanças na definição, gerência e execução do processo são controladas Características: impacto de mudança versus objetivos do processo e de seus produtos é avaliado; mudanças realizadas de forma controlada e prevenida; eficácia das mudanças é medida em relação ao planejado
Dimensão de capacidade de processo – Níveis Nível 5: processo em otimização Atributos: PA 5.2 atributo de melhoria contínua: mede até que ponto as mudanças de processo contribuem para melhoria contínua Características: metas de melhoria de processo são estabelecidas conforme objetivos de negócio; possíveis fontes de risco e de problemas são identificadas; estratégia de melhoria contínua é estabelecida
Mecanismos de Pontuação Baseia-se na verificação do grau de satisfação dos atributos de processo Escala ordenada de quatro valores: N (not achieved) ou não atendido: 0% a 15% P (partially achieved) ou parcialmente atendido: 16% a 50% L (largely achieved) ou largamente atendido: 51% a 85% F (fully achieved) ou totalmente atendido: 86% a 100%
Nível de capacidade Processo pontuado em determinado nível se todos os atributos de processo dos níveis inferiores estiverem totalmente atendidos e que os atributos de processo desse nível sejam pelo menos largamente atendidos
Nível de capacidade Exemplo: PA 1.1 – F PA 3.2 – P PA 2.1 – F PA 4.1 – L PA 2.2 – L PA 4.2 – L PA 3.1 – F PA 5.1 – N Qual o nível desse processo?
Perfil de nível de capacidade por projeto
Perfil de nível de capacidade por projeto Situação dos processos ENG1.1, ENG 1.2, ENG 1.3 e ENG 1.4 em vários projetos de uma organização 40% dos projetos têm o processo em ENG 1.3 no nível 2 20% dos projetos têm o processo em ENG 1.4 no nível 1, 70% no nível 2 e 10% no nível 3
Evoluções recentes Foram detectados alguns problemas no TR (Technical Report) Nova estrutura Prevê a redução do número de partes de nove para cinco Parte 1: conceitos e vocabulário Parte 2: realização de uma avaliação Parte 3: guia para a realização de uma avaliação Parte 4 guia para a utilização dos resultados de uma avaliação Parte 5 um modelo-exemplo para avaliação Remoção da dimensão de processos