29 abril, 2015

Maturidade nos Processos de Software

Capability Maturity Model - CMM

Surgiu na área militar do EUA ao terceirizar a produção de software, havia necessidade de qualificar uma empresa de software.

Definição

É uma soma de "melhores práticas" para diagnóstico e avaliação de maturidade no desenvolvimento de software.

Organizações maduras:
  • papéis e responsabilidades bem definidos
  • existe base históricas
  • é possível julgar a qualidade do produto
  • qualidade é monitorada
  • o processo pode ser atualizado
  • modelo de comunicação bem definido

Organização imaturas:
  • processo improvisado
  • não possui base histórica (a cada novo projeto um recomeço)
  • não há maneira objetiva de julgar a qualidade do produto
  • não há rigor no processo
  • resolução de crises imediatas

O modelo é definido por 5 níveis de maturidade
  1. Inicial - todos estamos nele, quando não existe clareza na forma de desenvolvimento de software. Não há KPAs. Depende do desenvolvedor que abraça o projeto e o leva até o fim. 
  2. Repetível - o desenvolvimento de software já tem alguma repetição de sucesso nas entregas. Empresa já adota algumas práticas sempre. Já se consegue estimar com maior clareza. Seria o primeiro nível de maturidade. É o passo mais difícil, por ter que sair de zero maturidade. Possui as seguintes KPAs:
    1. gerenciamento de requisitos
    2. planejamento de projetos
    3. gerenciamento de subcontratação (terceiros)
    4. garantia da qualidade de software
    5. gerenciamento de configuração
  3. Definido - já implantou e tem uma série de práticas definidas. É obrigatório seguir padrões, não é possível alguém fazer algo diferente. KPAs:
    1. revisões
    2. coordenação de intergrupos
    3. engenharia de produto de software
    4. gerenciamento de software integrado
    5. programa de treinamento
    6. foco no processo da organização
    7. definição do processo da organização
  4. Gerenciado - quando se consegue fazer medições quantitativas no processo. Fazer medições no produto é praticar o "nível gerenciado". KPAs:
    1. gerenciamento quantitativo da qualidade do software
    2. gerenciamento quantitativo do processo
  5. Otimizado - é a melhoria contínua do processo de desenvolvimento. Promover inovação no seu processo. KPAs:
    1. gerenciamento de mudança no processo
    2. gerenciamento de mudança tecnológica
    3. prevenção de defeitos

Há outros processos de maturidade como:
  • Personal Software Process - PSP
  • MPS-BR
  • SPICE - ISO/15504
  • CMMi (evolução do CMM)
  • Outros
















Nenhum comentário:

Postar um comentário