Maturidade na Capacidade de Medição - O Modelo CMMI como Linha Orientadora
O modelo de capacitação e maturidade de processos de engenharia de software e sistemas CMMI (Capability Maturity Model Integration) do Software Engineering Institute (SEI) fornece um guia de orientação na evolução de um programa de medição para a melhoria de processos associados a sistemas e/ou software.
No modelo CMMI pode-se encontrar a seguinte distribuição de áreas de processo por categorias de áreas de processo (representação contínua) e por níveis de maturidade (representação segmentada), estando assinaladas as áreas de processo com maior relevância na medição dos processos de desenvolvimento de software e sistemas (ver quadro).
Neste artigo iremos descrever algumas considerações associadas aos processos do nível 2 da representação segmentada do modelo CMMI, isto é, as áreas de processo de Planeamento de Projecto e Medição e Análise.
Planeamento de projecto
Esta área de processo tem por finalidade estabelecer e manter os planos que definem as actividades do projecto. Associado a esta área de processo encontramos o seguinte objectivo específico:
Objectivo Específico 1: Estabelecer Estimativas
As estimativas (métricas à priori, identificando expectativas no que respeita a atributos do plano de projecto) associadas a atributos de planeamento do projecto são estabelecidas e mantidas.
O estabelecimento de estimativas envolve actividades como:
a) Estimar o Âmbito do Projecto. Estabelecer uma WBS (Work Breakdown Structure) de alto nível, de forma a estimar o âmbito do projecto.
b) Estabelecer Estimativas dos Atributos dos Produtos de Trabalho e das Tarefas (abordagem técnica, dimensão e complexidade das tarefas e dos produtos de trabalho, modelos de estimação, estimativas dos atributos).
Como exemplos de medidas, poderemos ter:
- Número de funções;
- Linhas de código;
- Pontos de função;
- Número de classes e objectos;
- Número de requisitos;
- Número de interfaces;
- Número de páginas;
- Número de inputs e outputs;
- Número de riscos técnicos;
- Volume de dados.
c) Determinar Estimativas de Esforço e Custo. Estimar o esforço e o custo do projecto para os produtos de trabalho e tarefas baseadas num método de estimação pré-estabelecido.
Medição e análise
Esta área de processo, tem por finalidade desenvolver e sustentar a capacidade de medição que é utilizada para suportar as necessidades de gestão de informação. Uma iniciativa de medição envolve o seguinte:
- Especificar os objectivos de medição e análise de forma a estarem alinhados com informação necessária e objectivos de negócio;
- Definir as medidas que irão ser utilizadas, os processos de recolha de dados, os mecanismos de armazenamento, os processos de análise e, os processos de produção e emissão de relatórios e de feedback;
- Implementar a recolha, armazenamento, análise e apresentação da informação;
- Providenciar resultados objectivos que podem ser utilizados na tomada de decisões de negócio e são tomadas as acções correctivas apropriadas.
- Ao desenvolvermos actividades associada à medição e análise, há que ter em conta as seguintes considerações:
a) Estabelecer Objectivos de Medição
- Documentar a finalidade de cada medição e análise;
- Especificar o tipo de acções que deverá ser tomada, tendo por base os resultados dos dados analisados;
- Colocar continuamente a seguinte questão: qual o valor desta medida;
- Envolver os utilizadores finais das medidas;
- Manter a rastreabilidade entre os objectivos estabelecidos na definição da medida e a informação necessária e os objectivos de negócio.
b) Especificar Medições
- Identificar medições candidatas, baseadas nos objectivos documentados e refinar em medidas quantitativas;
- Definir a forma como os dados podem e irão ser derivados a partir de outras medidas. Por exemplo: densidade de defeitos, abrangência de peer reviews?;
c) Especificar Recolha de Dados e Procedimentos de Armazenamento
- Especificar a forma como recolher e armazenar os dados para cada medida requerida: tornar especificações explícitas de como, quando e onde os dados serão recolhidos;
- Desenvolver procedimentos que assegurem que os dados recolhidos são válidos; assegurar que os dados armazenados são facilmente acedidos, pesquisados e restaurados sempre que necessário.
d) Especificar Procedimentos de Análise
- Definir os procedimentos de análise;
- Assegurar que os resultados transmitidos são facilmente compreendidos e interpretados.
e) Recolher Dados de Medição
- Recolher os dados de medição como definido;
- Gerar dados para as medidas derivadas;
- Desempenhar verificações de integridade, o mais próximo possível dos dados de origem.
f) Analisar os Dados de Medição
- Conduzir análises iniciais;
- Interpretar os resultados e tirar conclusões preliminares a partir de um determinado critério;
- Conduzir medições e análises adicionais, de forma a obter confiança nos resultados;
- Rever os resultados iniciais com todos os envolvidos (stakeholders);
- Melhorar as definições, procedimentos de recolha de dados, e técnicas de análise, de forma a assegurar resultados significativos que suportem os objectivos de negócio.
g) Armazenar os Dados de Medição e os Resultados da Análise
- A informação armazenada deverá conter ou referenciar informação necessária para a compreensão das medidas; para avaliar a sua aplicabilidade; e para providenciar contexto suficiente para a interpretação dos dados, critério de medição e resultados de análise.
h) Comunicar os Resultados de Medição
- Manter os envolvidos actualizados de forma periódica relativamente aos resultados das medições;
- Prestar assistência aos envolvidos relevantes (referenciados no plano do projecto) para a compreensão e interpretação dos resultados das medições.
i) Estabelecer Grupo de Medição e Análise
- Considerar a criação de um grupo de trabalho de medição, responsável pelo suporte das actividades de medição e análise de múltiplos projectos.
j) Incorporar Ferramentas de Medição e Análise
- Incorporar ferramentas utilizadas no desempenho de actividades de medição e análise, tais como: packages estatísticos, de gráficos e de base de dados; folhas de cálculo; packages que suportem a recolha de dados via rede e Internet.
Exemplos de medidas básicas
Apresenta-se de seguida uma lista de possíveis medidas base a recolher ao longo do ciclo de vida dos projectos:
- Tamanho e/ou complexidade estimada (um nível relativo de dificuldade ou complexidade deverá ser atribuído a cada atributo de tamanho);
- Exemplos de atributos para estimar sistemas: número de portas lógicas, número de interfaces.
- Exemplos de medições de tamanho para software: pontos de função, linhas de código (LOC), número de requisitos.
- Determinar o esforço e o custo, utilizando dados históricos ou modelos de estimação;
- Estabelecer o calendário dos projectos, com base em estimações de tamanho e complexidade;
- Identificar riscos associados com o custo, recursos, calendário e aspectos técnicos do projecto;
- Comparar os milestones actuais completados versus os comprometimentos estabelecidos.
- Monitorar comprometimentos e dependências críticas versus os documentados no plano do projecto;
- Rastrear problemas/defeitos (aberto/fechado por produto/actividade);
Exemplos de medidas associadas à efectividade dos processos
É necessário assegurar que seguimos os processos definidos e que seremos capazes de determinar se os processos estão a funcionar como o esperado. Estas medições permitem-nos responder à seguinte questão: "quão bem está a trabalhar o processo?" Alguns exemplos, associados à gestão de requisitos, poderão ser:
Número de pedidos de alteração por mês, comparados com os números iniciais de requisitos num projecto;
Tempo despendido na alteração de requisitos.
Produzido em 2006