Objetivos Explicar os princípios do processo de aprimoramento de software Explicar como os fatores de processo de software influenciam a qualidade e a produtividade do software Explicar como desenvolver modelos simples de processos de software Explicar as noções de capacidade e de maturidade de processo e o modelo CMMI para o aprimoramento de processo
Tópicos abordados Qualidade de processo e de produto Classificação de processos Medição de processos Modelagem e análise de processos Mudança de processos O framework CMMI de aprimoramento de processos
Aprimoramento de processo Compreensão de processos existentes e introdução de mudanças de processo para melhorar a qualidade do produto, reduzir custos ou acelerar prazos. A maioria dos trabalhos de aprimoramento de processo até o momento tem enfocado a redução de defeitos. Isso reflete o aumento do cuidado dispensado pela indústria para a qualidade. Contudo, outros atributos de processo podem também ser o foco do aprimoramento.
Estágios do aprimoramento do processo Medição de processo • Os atributos do processo atual são medidos. Esses atributos são uma baseline para a avaliação de aprimoramentos. Análise de processo • O processo atual é avaliado e gargalos e pontos fracos são identificados. Mudança de processo • As mudanças para o processo que foram identificadas durante a análise são introduzidas.
Qualidade de processo e de produto Qualidade de processo e de produto são bem relacionadas, e os benefícios do aprimoramento do processo surgem porque a qualidade do produto depende do seu processo de desenvolvimento. Geralmente, um bom processo é necessário para produzir um bom produto. Para bens manufaturados, o processo é o principal determinante de qualidade. Para atividades baseadas em projeto, outros fatores também estão envolvidos, especialmente a capacidade dos projetistas.
Fatores de qualidade Para projetos de grande porte com habilidades ‘médias’, o processo de desenvolvimento determina a qualidade do produto. Para projetos de pequeno porte, as habilidades dos desenvolvedores são o determinante principal. A tecnologia de desenvolvimento é particularmente significante para projetos pequenos. Em todos os casos, se um cronograma irreal for imposto, a qualidade do produto sofrerá.
Classificação de processos Informais • Modelos de processo sem detalhes. A equipe de desenvolvimento escolhe sua própria maneira de trabalho. Gerenciados • Modelo de processo definido que coduz o processo de desenvolvimento. Metódicos • Processos apoiados por algum método, tal como o RUP. Esses processos se beneficiam do apoio de ferramentas CASE automatizadas. De aprimoramento • Processos que têm objetivos, orçamento e procedimentos de aprimoramento.
Escolha de processo O processo usado deve depender do tipo de produto que está sendo desenvolvido • Para sistemas de grande porte, o gerenciamento é, geralmente, o principal problema e, assim, você necessita de um processo bem gerenciado; • Para sistemas de pequeno porte, mais informalidade é possível. Não existe um processo uniformemente aplicável que deve ser padronizado dentro de uma organização: • Altos custos podem ser incorridos se você forçar um processo inadequado para uma equipe de desenvolvimento; • Métodos inadequados podem também aumentar os custos e levar a uma qualidade reduzida.
Medição de processos Sempre que possível, dados quantitativos de processo devem ser coletados • Contudo, onde as organizações não têm padrões de processo claramente definidos, isso é muito difícil, já que você não sabe o que medir. Um processo deve ser definido antes que qualquer medição seja possível. As medições de processos devem ser usadas para avaliar os aprimoramentos de processos • Mas isso não significa que as medições devem ser dirigidas aos aprimoramentos. O direcionador de aprimoramento deve ser o objetivo da organização.
Classes de aprimoramento de processos Tempo para que as atividades de processo sejam concluídas • Por exemplo, o prazo ou o esforço para concluir uma atividade ou um processo. Recursos necessários para processos ou atividades • Por exemplo, esforço total em pessoas-dia. Número de ocorrências de um evento específico • Por exemplo, número de defeitos descobertos.
Análise e modelagem de processos Envolve o estudo de um processo existente para compreender suas atividades. Envolve a produção de um modelo abstrato do processo. Você deve representá-lo normalmente de forma gráfica. Várias visões diferentes (por exemplo, atividades, entregas, etc.) podem ser necessárias. Está relacionda à análise do modelo para descobrir problemas de processo. Isso envolve a discussão de atividades de processo com stakeholders e a descoberta de problemas e de possíveis mudanças de processo.
Técnicas de análise de processo Modelos e padrões de processo publicados • É sempre melhor iniciar a análise do processo com um modelo existente. As pessoas podem, então, estender e mudar este modelo. Questionários e entrevistas • Devem ser projetados cuidadosamente. Os participantes podem contar a você o que eles pensam que você deseja ouvir. Análise etnográfica • Envolve a assimilação do conhecimento de processo pela observação. Tal análise revela as sutilezas e as complexidades que não pdem ser descobertas com o uso de outras técnicas.
Estágios de mudança de processos Identificação de aprimoramentos Priorização de aprimoramentos Introdução de mudanças de processo Treinamento de mudanças de processo Ajuste de mudanças
O framework CMMI O framework CMMI é o estágio atual de trabalho sobre avaliação e aprimoramento de processo que iniciou no Instituto de Engenharia de Software (SEI), nos EUA, na década de 1980. A missão do SEI é promover a transferência de tecnologia de software particularmente para os contratantes da defesa dos EUA. Teve uma profunda influência no aprimoramento de processos: • Modelo de Maturidade de Capacitação introduzido no início da década de 1990. • Framework de maturidade revisada (CMMI) introduzido em 2001.
Avaliação de capacidade de processo Proposto como um meio de avaliar a extensão na qual os processos de uma organização seguem melhores práticas. Fornece um meio para avaliação pelo qual é possível identificar áreas de fraqueza para aprimoramento de processos. Deve haver vários modelos de avaliação e de processos, mas o trabalho do SEI foi o mais influente.
O modelo de maturidade de capacitação do SEI Inicial • Essencialmente incontrolado. Repetível • Procedimentos de gerenciamento de produto definidos e usados. Definido • Procedimentos e estratégias de gerenciamento de processo definidos e usados. Gerenciado • Estratégias de gerenciamento de qualidade definidas e usadas. Otimização • Estratégias de aprimoramento de processo definidas e usadas.
Problemas com o CMM Práticas associadas com níveis do modelo • As empresas poderiam realizar práticas de níveis diferentes ao mesmo tempo, mas se todas as práticas de um nível inferior não fossem realizadas, não seri possível mover-se acima desse nível. Discreto ao invés de contínuo • Não reconhecia distinções entre os níveis superiores e inferiores. Orientado a práticas • Está relacionado a como as coisas eram realizadas (as práticas) ao invés dos objetivos a serem atingidos.
O modelo CMMI Um modelo de capacitação integrado que inclui avaliação de engenharia de software e de sistemas. O model tem duas representações • Por estágios, onde o modelo é expresso em termos de níveis de maturidade; • Contínuo, onde um nível de capacidade é calculado.
Componentes do modelo CMMI Áreas de processo • 24 áreas de processo que são relevantes para a capacitação e aprimoramento de processo são identificadas. Essas áreas são organizadas em 4 grupos. Objetivos • Objetivos são descrições de estados desejáveis da organização. Cada área de processo tem objetivos associados. Práticas • Práticas são meios de se atingir um objetivo – contudo, elas são recomendações, e outras abordagens para se atingir o objetivo podem ser usadas.
Avaliação do CMMI Examina os processos usados em uma organização e avalia a maturidade em cada área de processo. Baseado em uma escala de 6 pontos: • Não realizado; • Realizado; • Gerenciado; • Definido; • Quantitativamente gerenciado; • Otimização.
Modelo CMMI por estágios Comparável com o CMM para Software. Cada nível de maturidade tem áreas de processo e objetivos. Por exemplo, a área de processo associado ao nível Gerenciado inclui: • Gerenciamento de requisitos; • Planejamento de projeto; • Monitoração e controle de projeto; • Gerenciamento de acordos com fornecedores; • Medição e análise; • Garantia de qualidade de processo e produto; • Gerenciamento de configuração.
Pontos-chave O aprimoramento de processos envolve análise, padronização, medição e mudança de processos. Os processos podem ser classificados como informal, gerenciado, metódico e de aprimoramento. Essa classificação pode ser usada para identificar o apoio de ferramentas aos processos. O ciclo de aprimoramento de processo envolve medição, análise e modelagem, e mudança de processos. As medições de processos devem ser usadas para responder à questões específicas sobre o processo, baseadas nos objetivos de aprimoramentos organizacionais.
Pontos-chave Os três tipos de métricas de processo usados no processo de medição são métricas de tempo, métricas de uso de recursos e métricas de eventos. Os modelos de processo incluem descrições de tarefas, atividades, papéis, exceções, comunicações, entregas e outros processos. O modelo de maturidade de processo CMMI integra aprimoramento de processos de engenharia de software e de sistemas. O aprimoramento de processo no modelo CMMI é baseada no alcance de um conjunto de objetivos relacionados às boas práticas de engenharia de software.