A busca da eficiência e qualidade no desenvolvimento de software vem de décadas. No início definiu-se processos estruturados e lineares para o desenvolvimento de softwares, evoluiu com a introdução de feedbacks e análise de risco nas fases de levantamento de requisitos, análise e desenho, como por exemplo o modelo espiral, para consolidar e obter consenso do objetivo e escopo final do projeto. As fases de codificação, testes e implantação assumem aspectos de linha de produção.
O conceito em torno de Engenharia de Software é o desenvolvimento de software com o máximo de eficiência e qualidade, incluindo custo e entregas no prazo. Para gerenciar melhor essa evolução é possível classificar as áreas de desenvolvimento, ou células dentro das áreas, em diferentes níveis de maturidade: Inicial, Gerenciada, Definida, Quantitativamente Gerenciado e Otimizado. Essa classificação é definida pelo CMMI – Capability Maturity Model Integration – um processo de melhoria contínua de desenvolvimento de software, criado pela Universidade americana Carnegie Mellon, administrado pelo CMMI Institute, uma subsidiaria da ISACA desde 2016.
Metodologias e softwares de apoio ao desenvolvimento foram desenvolvidos para estruturar e controlar o desenvolvimento com padronização dos processos e reusabilidade de componentes, na busca da eficiência. Uma das ferramentas mais conhecidas é o RUP (Rational Unified Process) que implementa uma metodologia de desenvolvimento, parte da IBM desde 2003. Em 2006, a IBM criou um subconjunto de RUP para projetos ágeis, lançado como um método open source chamado OpenUP, usando o Eclipse (ambiente de desenvolvimento integrado com código aberto). O uso de processos e softwares de desenvolvimento são aplicáveis em qualquer categoria de metodologia: tradicionais ou ágeis.
A certificação em CMMI é recomendável para fábricas de software e para o desenvolvimento de software de missão crítica, onde existem produção maciça de software ou risco a vida (software para aviões, análises clinicas, suporte a vida, por exemplo). Por ser um processo caro e grande esforço de implantação, cada empresa deve avaliar o custo-benefício de uso e, principalmente, certificação junto a órgãos autorizados.
Uma alternativa ao CMMI é a ISO 9.001. A norma internacional ISO 9.001 é quase obrigatório para as áreas de manufatura e, mais recentemente, para serviços. A norma tem foco na qualidade. Sua implantação envolve o mapeamento de todos os processos organizacionais, “gap analysis”, análise de riscos e planos de melhoria contínua. Para o mapeamento dos processos do ciclo de vida do software podemos utilizar a ISO 12.207-1, que descreve as atividades que podem ser realizadas no ciclo de vida de um software em cinco processos principais, oito processos de suporte e quatro processos gerais, assim como um processo que permite adaptar o ciclo de vida a cada caso concreto.
Ou seja, é possível descrever os processos utilizados para o desenvolvimento de software dentro do contexto da ISO 9.001, integrado com os outros processos da operação da infraestrutura de TI e dos processos de negócios. É possível atender aos requisitos do Cobit 5 que prevê uma visão fim-a-fim dos processos e arquitetura da organização.
A TI participando do mesmo processo de certificação de qualidade da empresa, usando a ISO 9.001, tem as seguintes vantagens:
- Integra seus processos de desenvolvimento de sistemas e operação da infraestrutura aos processos de negócio da empresa;
- Utiliza frameworks de outros métodos como guia para descrever os seus processos, adotando com isso o estado da arte em governança de TI;
- Utiliza o orçamento do projeto de certificação de qualidade da empresa, reduzindo o desgaste e convencimento para investimentos próprios de processos pouco conhecidos pelo resto da empresa;
- Reduz os custos de consultoria e de certificação em qualidade;
- Cria evidências para as auditorias de processos alinhados com práticas internacionais de gestão e alinhamento com os negócios da empresa;
- Reduz os atritos entre a TI e as áreas de negócios devido ao fato que os processos são integrados e aprovados pelo Comitê de Qualidade da empresa.
Respondendo à pergunta inicial, acredito que seja possível substituir o modelo de melhoria contínua de maturidade das equipes de desenvolvimento de software CMMI pela norma internacional de qualidade ISO 9.001. Mais ainda, acredito que seja possível substituir outras certificações de TI, como Cobit, ITIL, ISO 20.000 e ISO 27.000.