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) PSP0.1: – – – 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 PSP1.1: – – – 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 PSP2.1: – – 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: – – 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