Melhoria de Processos de Software Reinaldo Cabral [email protected] O curso PARTE I Definição e Execução de Processos de Software PARTE II Melhoria PARTE de Processos de Software III Melhoria Software Radical em Processos de Roteiro - Parte II 1. Notas introdutórias 2. Exercícios (Torneio – 2ª Etapa) 3. Abordagens para Melhoria 4. Modelos para Melhoria 5. Foco no Processo Organizacional 6. Melhorar sem Melhorias 7. Fatores de Sucesso \ Lições Aprendidas 8. Referências 9. Verificação do Alcance dos Objetivos de Aprendizagem Melhoria de Processos de Software 1. Notas Introdutórias O que significa melhorar? Existe melhoria para pior? Existe piora para melhor? Ganha-ganha Como saber se melhorou? “Só a própria organização pode melhorar o seu processo.” (Basili et. al, 2002) “A melhoria deve ter um valor perceptível” (Rifkin, 2001) Melhoria de Processos de Software 2. Exercícios – 2ª Etapa Formar Definir grupos de no máximo 6 pessoas os papéis dos integrantes nos grupos Contexto de trabalho e apresentação do processo Executar o processo Papéis Líder Comunicação com o cliente Guardião do material GQPP Aderência do processo Registra inconformidades Grupo de Métricas Mensura o desempenho na execução do processo Equipe de desenvolvimento Monta o artefato Melhoria de Processos de Software 3. Abordagens para Melhoria Top-Down Bottom-up Uso de Modelos e Normas - CMMI, MPS.BR - ISO 12207, 15504, 90003 Foco no contexto organizacional Riscos dimensionados Baixa previsibilidade dos riscos Impacto cultural Comprometimento dos executores Eficiência na definição Definição requer esforço de coordenação e comunicação, tende ao infinito. Requer muita disciplina Implantação facilitada Melhoria de Processos de Software 3. Abordagens para Melhoria Vertical Horizontal Visa o atendimento a outras áreas de processo. Integração com outros processos. Mudança de escopo local. Apenas no processo. Nível de maturidade Nível de capacidade Avaliação em conjuntos de processo Avaliação processo a processo. Melhoria de Processos de Software 4. Modelos para Melhoria PDCA (Ciclo de Deming) Walter A. Shewhart em 1931 publicou o livro “Economic Control of Quality of Manufactured Product”, que estabeleceu as bases para o controle estatístico de processo e fundamentos para controle total da qualidade. Melhoria de Processos de Software 4. Modelos para Melhoria IDEAL (McFeeley, 1996) Melhoria de Processos de Software 4. Modelos para Melhoria QIP (Basili, 1985) 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria de Processo Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP1.1. Estabelecer Necessidades do Processo Organizacional Processos organizacionais operam em um contexto de negócio que deve ser compreendido. Aspectos cobertos por necessidades e objetivos do processo organizacional Características do processo Objetivos de desempenho do processo Eficácia do processo Produto : Necessidades e objetivos do processo organizacional. 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP1.2. Avaliar Processos da Organização Avaliar os processos da organização periodicamente e quando necessário, para manter um entendimento dos pontos fortes e fracos destes processos Produtos: Planos para a avaliação de processos da organização Resultados obtidos com as avaliações relacionados aos pontos fortes e fracos dos processos da organização Recomendações de melhorias para os processos da organização 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP 1.3 Implementar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP1.3. Identificar Melhorias para o Processo da Organização Determinar melhorias de processo candidatas Priorizar melhorias de processo candidatas Identificar e documentar as melhorias de processo que deverão ser implementadas Revisar a lista de melhorias planejadas Produtos: Análise das melhorias de processo candidatas Identificação de melhorias para os processos da organização 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 SP2.1 Estabelecer Estabelecer Planosde Planos Açãode para o Ação do Processo Processo 5. Foco no Processo Organizacional SP2.1. Estabelecer Planos de Ação do Processo Estabelecer e manter planos de ação de processos para tratar das melhoria dos processos da organização e dos seus ativos de processoo. É fundamental a participação dos stakeholders. Produto: Planos de Ação Aprovados 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos de Processo da Organização SP2.2 SP 2.2 Implementar Implementar Planos Planosde Ação para de Ação doo Processo Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP2.2. Implementar Planos de Ação do Processo Implementar planos de ação do processo na organização. Produtos: Comprometimento entre as várias equipes envolvidas com o processo Resultados e situação dos planos de ação do processo que estão sendo implementados Planos para pilotos 5. Melhoria de Processos de Software Teste para as ações de melhoria Abordagens: Simulação dinâmica de processos Execução de Pilotos Modelos que sugerem a adoção de pilotos: IDEAL (McFeeley, 1996); QIP (Basili et al., 1994); CMMI (SEI, 2002). 5. Melhoria de Processos de Software Avaliação do teste das ações de melhoria Os dados coletados estão corretos? Que fatores influenciam a interpretação dos resultados? Os efeitos observados podem ser generalizados? A mudança foi conduzida de forma correta a ponto de apresentar os reais efeitos? As pessoas foram devidamente preparadas para a mudança? A mudança poderia ser melhor? 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização SP2.4 Planejar e Incorporar Implementar Experiências Atividades de nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos De Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP 2.3. Implantar Ativos de Processo da Organização Implantar novos ativos de processo ou alterar já existentes. A participação dos stakeholders é importante. Produtos: Planos para implantação de novos ativos e de alterações aos ativos do processo da organização Material de treinamento Documentação de alterações dos ativos do processo Material de apoio 5. Foco no Processo Organizacional Objetivos e Necessidades do Processo SP1.1 Determinar Oportunidades Estabelecer Necessidades de Melhoria do Processo para o Organizacional Processo Pontos Fortes e Pontos Fracos Iniciativas de Melhoria Melhorias Selecionadas SP1.2 Avaliar Processos da Organização SP1.3 Identificar Melhorias para o Processo da Organização Stakeholders Relevantes Ativos de Processo da Organização Planejar e SP 2.4 Incorporar Implementar Atividades de Experiências nos Ativos de Melhoria para Processo os Processos SP 2.3 Implantar Ativos De Processo da Organização SP2.2 Implementar Planos de Ação para o Processo SP2.1 Estabelecer Planos de Ação para o Processo 5. Foco no Processo Organizacional SP2.4. Incorporar Experiências nos Ativos de Processo Incorporar produtos relacionados ao processo, medições e informações de melhorias derivadas do planejamento e execução do processo nos ativos de processo da organização Produtos: Proposta de melhoria do processo Lições aprendidas do processo Medições nos ativos de processo da organização Recomendações de melhorias para os ativos de processo Registro das atividades de melhoria de processo da organização Informação sobre os ativos de processo e suas melhorias Melhoria de Processos de Software 6. Melhorar sem Melhorias Treinamentos Monitoring, Melhorar interno “Learning by doing” a comunicação Programas Incentivos de qualificação para aumentar o comprometimento Melhoria de Processos de Software 7. Lições Aprendidas / Fatores de Sucesso A coleta de dados deve ser feita através de um processo rigoroso e por uma equipe profissional Estabelecer uma baseline para os processos, produtos e objetivos é crítico em qualquer programa de melhoria. A acurácia dos dados mensurados será sempre suspeita, mas temos que aprender a viver com isso e entender estas limitações. O apoio da gerência é muito importante para manter o sucesso das iniciativas em prol da melhoria Melhoria de Processos de Software 7. Lições Aprendidas / Fatores de Sucesso Sempre que possível inicie com iniciativas bottom-up. Para isso, inicie focado nas necessidades mais urgentes e simples, envolva os desenvolvedores, obtenha o feedback a cada iniciativa e torne-os visíveis a alta gerência. Promova uma mudança cultural gradual com ações que minimizem o impacto e estimulem o aprendizado e a participação no processo. Implemente um sistema de “gratificação” para relatos de problemas e idéias de melhorias. Objetivo: Motivar e comprometer. Referências (McGarry e Thomas, 1994) McGarry, F. E., Thomas, M., “Top-Down vs. Bottom-Up Process Improvement”, IEEE Software, p. 12-13, Julho, 1994. (Basili et. al, 2002) Basili, V. R., McGarry, F. E., Pajerski, R., Zelkowitz, M. V., “Lessons learned from 25 years of process improvement - The Rise and Fall of the NASA Software Engineering Laboratory”, 24th International Conference on Software Engineering, p. 69-82, Maio, 2002. (Rifkin, 2001) Rifkin, S., “Why Software Process Innovations Are Not Adopted”, IEEE Software, p.110-112, Julho/Agosto, 2001. (McFeeley, 1996) McFeeley, B., “IDEALSM: A User’s Guide for Software Process Improvement”, CMU/SEI-96-HB-001, Software Engineering Institute, Fevereiro, 1996. (Basili e Caldiera, 1995) Basili, V. R., Caldiera, G., “Improve Software Quality by Reusing Knowledge and Experience”, Sloan Management Review, Fall 1995, Vol. 37, N. 1, p. 55-64. (Basili, 1985) Basili,V. R., "Quantitative Evaluation of Software Engineering Methodology,“ Proceedings of the First Pan Pacific Computer Conference, Melbourne, Australia, September 1985. 6. Verificação do Alcance dos Objetivos de Aprendizagem Como identificar oportunidades de melhorias? Quais as ações de melhoria que podemos realizar? O que fazer quando as ações de melhorias oferecem riscos ao processo? Como institucionalizar melhorias? Melhoria de Processos de Software Reinaldo Cabral [email protected]