Qualidade do Processo e Produto com CMMI
Desde as primeiras versões que a metodologia CMMI para o desenvolvimento de software inclui, na área de processos de suporte, um processo que aborda as questões da qualidade de processos e do produto (AQPP – Assegurar a Qualidade de Processos e Produtos) visando permitir, aos técnicos de desenvolvimento e aos diversos níveis de gestão, uma perceção correta da qualidade dos processos implementados e respetivos produtos associados.
A área de processo de AQPP tem dois objetivos específicos: 1) Avaliação objetiva da aderência aos processos, normas e procedimentos; 2) Resolver os problemas de não aderência detetados (ver diagrama abaixo).
Frequentemente os processos relativos a AQPP são mal compreendidos o que leva a que sejam implementados como se de testes se tratassem.
Parte dessa confusão, deriva da incapacidade para distinguir entre Controlo de Qualidade e Assegurar a Qualidade, atividades com objetivos, técnicas e ferramentas distintas; mas também da dificuldade, revelada pelas organizações, em implementar um processo eficiente e eficaz para assegurar a qualidade do desenvolvimento de software.
O Controlo de Qualidade tem por objeto, a avaliação e a verificação da qualidade dos processos do ciclo de vida de desenvolvimento de software e dos seus produtos. As funções ou atividades de controlo visam determinar se as características do produto estão dentro de uma margem de tolerância previamente definida e oferecem qualidade aceitável. Controlar a Qualidade passa pela, mas não se restringe à, execução de testes e inspeções.
Em contraste, Assegurar a Qualidade é avaliar e verificar a forma de funcionamento de um determinado processo. As ferramentas e técnicas usadas são as auditorias e a avaliação de objetivos no sentido de perceber: Se o processo está a ser corretamente usado? Se os controlos de qualidade estão a ser usados com rigor? Se são eficientes e efetivos? Se o processo implementado está adequado às necessidades da organização. Controlar a Qualidade, está no âmbito da área de processos de Verificação. Já Assegurar a Qualidade é entendido pela metodologia CMMI, como devendo integrar a área de processos de suporte. As duas áreas de processos podem ocasionalmente incidir sobre o mesmo produto mas fazem-no sobre perspetivas distintas. Os projetos podem tirar vantagem desta sobreposição se conseguirem otimizar o uso de recursos sem perder de vista a distinção de perspetivas.
A área de processo de AQPP tem dois objetivos específicos: 1) Avaliação objetiva da aderência aos processos, normas e procedimentos; 2) Resolver os problemas de não aderência detetados (ver diagrama abaixo).
Frequentemente os processos relativos a AQPP são mal compreendidos o que leva a que sejam implementados como se de testes se tratassem.
Parte dessa confusão, deriva da incapacidade para distinguir entre Controlo de Qualidade e Assegurar a Qualidade, atividades com objetivos, técnicas e ferramentas distintas; mas também da dificuldade, revelada pelas organizações, em implementar um processo eficiente e eficaz para assegurar a qualidade do desenvolvimento de software.
O Controlo de Qualidade tem por objeto, a avaliação e a verificação da qualidade dos processos do ciclo de vida de desenvolvimento de software e dos seus produtos. As funções ou atividades de controlo visam determinar se as características do produto estão dentro de uma margem de tolerância previamente definida e oferecem qualidade aceitável. Controlar a Qualidade passa pela, mas não se restringe à, execução de testes e inspeções.
Em contraste, Assegurar a Qualidade é avaliar e verificar a forma de funcionamento de um determinado processo. As ferramentas e técnicas usadas são as auditorias e a avaliação de objetivos no sentido de perceber: Se o processo está a ser corretamente usado? Se os controlos de qualidade estão a ser usados com rigor? Se são eficientes e efetivos? Se o processo implementado está adequado às necessidades da organização. Controlar a Qualidade, está no âmbito da área de processos de Verificação. Já Assegurar a Qualidade é entendido pela metodologia CMMI, como devendo integrar a área de processos de suporte. As duas áreas de processos podem ocasionalmente incidir sobre o mesmo produto mas fazem-no sobre perspetivas distintas. Os projetos podem tirar vantagem desta sobreposição se conseguirem otimizar o uso de recursos sem perder de vista a distinção de perspetivas.
A área de processo AQPP contém dois objetivos específicos, os quais são suportados por 4 práticas específicas[i] e diversas sub-práticas[ii]. Na representação contínua do CMMI a estas dois objetivos específicos juntam-se 5 objetivos genéricos[iii].
O primeiro objetivo específico é conseguido através da utilização de duas práticas específicas; uma visando a avaliação objetiva de processos e a outra a avaliação objetiva de produtos.
O segundo objetivo específico é igualmente atingido através da utilização de duas práticas específicas; a primeira consistindo na comunicação das não conformidades encontradas a todas as partes interessadas no projeto; a segunda constando do estabelecimento e manutenção de registos referentes às atividades para assegurar a qualidade. Adicionalmente, a área de processos AQPP recorre a 5 objetivos genéricos com o intuito de garantir a devida institucionalização dos processos em causa. O quadro seguinte detalha esses objetivos e respetivas práticas genéricas.
A institucionalização de um dado processo implica que este se encontra enraizado no dia-a-dia da organização, sendo efetuado de forma consistente ao longo do tempo. Um processo institucionalizado tem mais probabilidade de ser mantido mesmo em situações de crise.
No CMMI, o grau de institucionalização encontra-se embutido no código e no nome dos processos que definem cada um dos objetivos genéricos.
Para estar conforme com os requisitos e as diretivas da área de processos AQPP, cada projeto deve desenvolver um plano específico onde se detalham as funções necessárias para suportar a qualidade.
Os responsáveis do projeto, esperarão da função Assegurar a Qualidade, suporte nas seguintes áreas:
- Conhecimentos relacionados com os processos de qualidade no âmbito dos projetos;
- Contributos para melhorar a eficiência dos processos de qualidade usados pela equipa de projeto;
- Assistência:
- Na criação e gestão de um plano e do modelo de qualidade que atenda à criticidade do produto;
- Na seleção das normas e legislação relevante para o projeto;
- Na costumização das normas e processos de forma a permitir o efetivo uso no âmbito do projeto;
- Execução de avaliações objetivas e auditorias que assegurem que os objetivos de qualidade são cumpridos e que a integridade do sistema está a ser mantida.
A objetividade, no processo de Assegurar a Qualidade, é um fator crítico de sucesso, só podendo ser atingida através da independência e do uso de critérios claramente enunciados e aceites antecipadamente. Processos menos formalizados podem ser conduzidos recorrentemente, intercalados com a utilização periódica de processos mais formais que garantam a objetividade.
No entanto, mesmo nos casos de abordagens menos formais, é importante o cumprimento de determinados requisitos, nomeadamente:
No entanto, mesmo nos casos de abordagens menos formais, é importante o cumprimento de determinados requisitos, nomeadamente:
- Todos os que realizam atividades relacionadas com a área de processo “Assegurar a Qualidade” devem ter formação específica nessa área;
- Deve existir uma clara distinção entre quem desenvolve e quem avalia a qualidade de um dado produto de software;
- Deve existir um canal de comunicação independente para os avaliadores, de forma a garantir que, as questões de não conformidade identificadas são, se necessário, devidamente comunicadas e resolvidas aos níveis superiores de gestão.
- O estabelecimento e a manutenção de critérios de avaliação claros;
- A utilização desses critérios para a avaliação dos produtos ou serviços;
- A avaliação recorrente, de acordo com um calendário que acompanhe todo o processo de desenvolvimento do produto ou serviço; O uso dessas avaliações recorrentes, para tirar ilações sobre o estado de desenvolvimento do produto.
Comece por aqui para ler tudo sobre qualidade de software.
[i] Prática específica é, de acordo com a metodologia do CMMI, uma prática que descreve uma atividade considerada importante para a obtenção do objetivo específico que lhe está associado, numa determinada área de processo.
[ii] Sub-práticas são entendidas, na ótica da metodologia do CMMI, como uma descrição detalhada de tarefas que ajudam a interpretar e a implementar uma prática específica ou genérica.
[iii] Objetivos genéricos são definidos na metodologia do CMMI como objetivos que se aplicam a múltiplas áreas de processos. Um objetivo genérico descreve características que devem estar presentes para que o processo se considere institucionalizado.