REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 1 JOSÉ 4ª Edição ISSN: 2178-3098 MODELOS DE MATURIDADE CMMI Capability Maturity Model Integration (CMMI) Teresinha Moreira de Magalhães1 Lúcia Helena de Magalhães2 Fernando Machado da Rocha3 Resumo Este trabalho visa apresentar uma visão dos modelos de maturidade de processo do Software, com foco no CMM do SEI, com a análise da estrutura interna de seus componentes e os conceitos fundamentais relacionados ao mesmo; Procura dar ênfase na compreensão dos principais elementos para obtenção do Processo de Software Maduro: os Níveis de Maturidade e suas respectivas Áreas-Chave de Processo. Palavras Chaves: Processo, Software, Maturidade 1 Teresinha Moreira de Magalhães, Doutora em Computação de alto Desempenho pela Universidade Federal do Rio de Janeiro, mestra em Engenharia de Produção com ênfase em Produção de Mídias pela Universidade Federal de Santa Catarina. Professora da Universidade Federal de Juiz de Fora, Professora da Faculdade do Sudeste Mineiro, Professora e Coordenadora do Curso de Desenvolvimento Web da Faculdade de Ciências Econômicas Vianna Júnior. [email protected] 2 Lúcia Helena de Magalhães, Pós Graduada em Desenvolvimento de Aplicações para Web pelo Centro de Ensino Superior. Professora de Computação na Universidade Presidente Antônio Carlos e Professora no Curso de Desenvolvimento Web da Faculdade de Ciências Econômicas Vianna Júnior. [email protected] 3 Fernando Machado da Rocha, Graduado em Engenharia Eletrônica pela Universidade Gama Filho do Rio de Janeiro e Especialização em Sistemas Computacionais pela Faculdade de Ciências Gerênciais de Santos Dumont. Professor do Curso de Sistemas para Internet das Faculdades Integradas Vianna Júnior. [email protected] REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 4ª Edição 2 JOSÉ ISSN: 2178-3098 MODELOS DE MATURIDADE CMMI O modelo de avaliação de maturidade do processo de desenvolvimento CMM (Capability Maturity Model) considera o gerenciamento de requisitos como sendo uma das primeiras etapas para alcançar a maturidade organizacional, e para haver o gerenciamento é preciso que o processo de desenvolvimento de requisitos esteja implantado na empresa. Desta forma, para se alcançar a gerência de requisitos é necessário que os processos de desenvolvimento de requisitos sejam bem definidos. O conceito de Modelo de Maturidade de Capacitação para Software, que é um metamodelo de Processo desenvolvido pela Carnegie Mellon University através do seu órgão SEI (Software Engineering Institute) - centro de pesquisa e desenvolvimento criado, em 1984, pelo Departamento de Defesa dos Estados Unidos define “Capacitação para Software” como sendo a habilitação que a organização tem em sistematicamente produzir software com a qualidade esperada, dentro dos prazos concordados e com os recursos alocados. O CMM (Modelo de Maturidade da Capacidade) é um modelo de desenvolvimento para aplicação específica ao SW, dentro de um contexto de qualidade total no âmbito de uma organização. É uma estrutura, para avaliação e melhoria, aplicada somente ao processo de SW. O modelo se baseia principalmente na experiência da comunidade de SW da indústria americana, com a utilização de conceitos de gerenciamento de processos de autores consagrados, cujos modelos foram largamente aplicados em outras áreas. O CMM (Capability Maturity Model) é o modelo mais conhecido desse conceito. Ele basicamente é uma metodologia de diagnóstico e avaliação da maturidade da capacitação em desenvolvimento de softwares numa organização (empresa ou instituição). O objetivo maior do CMM é determinar em que estágio de maturidade uma empresa está em seu ciclo de desenvolvimento de software. Nasceu da necessidade do Departamento de Defesa americano em avaliar as empresas terceirizadas que desenvolviam softwares para eles. REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 4ª Edição 3 JOSÉ ISSN: 2178-3098 O projeto da CMM é liderado por Watts Humphrey que foi responsável pelo desenvolvimento de software da IBM, durante anos. A seguir a evolução do projeto: 1986 - início do desenvolvimento de um modelo de maturidade de processo, para ajudar as organizações a melhorar seus processos de software (por solicitação do governo federal). junho 1987 - liberação de breve descrição do modelo de maturidade de processo de software. setembro 1987 - versão preliminar do questionário de maturidade 1991 - 1a versão do CMM (Versão 1.0) 1993 - depois de 5 anos de experiência, o modelo de maturidade evoluiu para um modelo completamente definido, usando conhecimento adquirido das avaliações de processo de software e de extensivo retorno das indústrias e do governo. fevereiro 1993 - Versão 1.1 do CMM - Capability Maturity Model for Software (atualmente usada) A estrutura do modelo de maturidade de processo de software está baseada nos princípios de qualidade de produto que existem há 60 anos. Ou seja, 1940 Shewart (AT&T) promulgou os princípios de controle estatístico de qualidade. Os princípios de Shewart foram posteriormente desenvolvidos e demonstrados com sucesso no trabalho de Deming e Juran. Ou sejam: Princípios do TQM (Total Quality Management). Reação em cadeia de Deming. O modelo consiste das melhores práticas para o desenvolvimento e manutenção de sistemas e softwares (Almeida, 2005). Embora não seja uma norma emitida por uma instituição internacional (como a ISO ou o IEEE), este modelo tem tido uma grande aceitação mundial, até mesmo fora do mercado americano. "CMM" não deve ser entendido como sendo uma METODOLOGIA, pois o "CMM" não diz exatamente como fazer, mas sim o que deve ser feito (melhores práticas) CMM é uma marca registrada, o SEI avalia e fornece um certificado referente ao nível da organização. REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 4 JOSÉ 4ª Edição ISSN: 2178-3098 Qualidade do Modelo Segundo a norma brasileira (NBR ISO 8402), a qualidade é a totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas. Desta forma, destaca que na empresa imatura, os processos de desenvolvimento são improvisados e se existem não são seguidos; O trabalho é feito em regime de emergência; Dificilmente se cumpre compromissos e prazos; Não se faz planejamento com estimativas realistas; O sucesso de um projeto depende de alguns excepcionais na equipe. Capacidade A capacidade descreve a faixa de resultadados de um processo de software esperados dentro de uma margem de probabilidade. Maturidade Reflete uma medida do quanto o processo pode ser definido, gerenciado, medido, controlado e executado de maneira eficaz. CMM - Processos A definição ou descrição de um processo não é um processo, ele só pode ser chamado assim quando executado. Um processo é composto de três componentes: ferramentas, pessoal, e procedimentos e métodos. CMM - Componentes Níveis de maturidade Áreas chave de processos Objetivos Características comuns Práticas base KPAs - Key Process Areas REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 4ª Edição 5 JOSÉ ISSN: 2178-3098 São áreas chaves que permitem alcançar um conjunto de metas ou objetivos. Cada nível é composto por um conjunto de KPAs. A satisfação de seus objetivos permite avaliar o nível de maturidade da organização Cada KPA é subdividida em um conjunto de práticas. CMM – Estrutura Figura 1: Estrutura CMM – Modelo Está organizado em uma série de práticas organizadas em cinco níveis crescentes de maturidade. A aplicação desrespeitando os níveis geralmente leva a resultados insatisfatórios. CMM - Os 5 Níveis REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 6 JOSÉ 4ª Edição ISSN: 2178-3098 Figura 2: Modelo Nível 1 (Inicial) Poucos processos definidos Deficiências de planejamento Dificuldades em realizar previsões Imprevistos são comuns Desenvolvimento confuso de software Passa-se diretamente dos requisitos à codificação Documentação é encarado com algo inútil Dependente de heroísmos individuais Não possui KPAs Nível 2 (Repetível) KPAs Áreas chave: Gestão de requisitos Planejamento de projetos Supervisão e acompanhamento de projetos Gestão da subcontratação Grupo de garantia da qualidade Gestão de configurações Nível 3 (Definido) Estrutura de processos que permite adaptação a mudanças Controle do processo mesmo em crise Gestão é feita com base em knowhow. Processo de desenvolvimento bem documentado Preocupação em que todos tenham conhecimento comum. Atividades planejadas, estáveis e repetitivas. Nível 4 (Gerenciado) REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 7 JOSÉ 4ª Edição ISSN: 2178-3098 Administração de processos e produtos tem tratamento quantitativo. Produtividade e qualidade são medidas em todos os projetos. Criada uma base de dados para os processos Riscos gerenciados para novos projetos Gestão quantitativa dos processos. Gestão da qualidade de software. Nível 5 (Em otimização) Processos em melhoria contínua Gerentes identificam pontos fracos e agem de forma pró ativa Eficiência é usada para análise de novas tecnologias Avaliação constante da equipe para tornar o trabalho mais produtivo Pessoas e os Níveis 1. O sucesso depende de indivíduos e heróis, relacionamentos descoordenados e às vezes conflitantes 2. O sucesso ainda depende de indivíduos, mas existe apoio gerencial e treinamento para algumas funções 3. Grupos trabalham de maneira coordenada, treinamento é planejado 4. Forte sentimento de trabalho em equipe 5. Todos estão engajados no programa de melhoria contínua. Tecnologia e os Níveis 1. A introdução de novas é arriscada 2. Atividades que estão bem definidas facilitam a introdução de novas. 3. Novas tecnologias são avaliadas qualitativamente. 4. Novas tecnologias são avaliadas quantitativamente. 5. Novas tecnologias são planejadas e introduzidas com total controle. Medidas e os Níveis 1. Coleta de dados é feita de maneira ad hoc REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL SÃO 8 JOSÉ 4ª Edição ISSN: 2178-3098 2. Coleta de dados de atividades de planejamento e acompanhamento é feita de maneira sistemática 3. Todos os processos definidos têm coleta sistemática de dados, os quais são compartilhados por todos os projetos da organização 4. A definição e coleta de dados é padronizada na organização e os dados são usados para entender os processos de maneira quantitativa e estabilizá-los. 5. Os dados coletados são usados para avaliar e selecionar possibilidades de melhoria de processos Características Comuns e Práticas Base Tabela 2: Características comuns e práticas base Característica Comum Descrição Práticas Base relacionada Compromisso com realizar Atitudes a serem tomadas pela organização para garantir que o processo se estabeleça e seja duradouro. Pré-requisitos que devem existir no projeto ou na organização para implementar o processo de forma competente. Papéis e procedimentos necessários para implementar uma área-chave do processo. Estabelecimentos de políticas e apadrinhamento de um gerente experiente. Capacidade de realizar Atividades realizadas Medições e análise Necessidade de medir o processo e analisar as medições. Alocação de recursos, definição de estrutura organizacional e de treinamento. Estabelecimento de planos e procedimentos, realização de traalho, acompanhamento de trabalho e tomada de ações corretivas se necessário. Realizações de medições para determinar o estado e a efetividade das atividades realizadas. Resultados da aplicação do CMM Tabela 3: Resultados Resultado Média Ganho anual de Produtividade 35% Ganho anual em detecção prévia de defeitos 22% Redução anual do tempo de entrega do produto no Mercado 19% Redução anual em relatos de defeitos no cliente 39% Retorno do investimento 5.0 Problemas do CMM Metodologia muito extensa; REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL 4ª Edição SÃO 9 JOSÉ ISSN: 2178-3098 Promove a burocracia. Gera muita documentação inútil. Voltado ao gestor, não à equipe. Não tem foco nas habilidades das pessoas. Volta ao Taylorismo e Fordismo. Melhoria nos 5 Níveis Tabela 4: Modelo de Maturidade em Melhoria Contínua de Bresant, Caffyn e Gallagher Nível Título Características Nível 1 Pré interesse na melhoria contínua Nível 2 Melhoria contínua estruturada Nível 3 Melhoria contínua dirigida para meta Melhoria contínua proativa Não existe uma estrutura formal para a melhoria na organização, sendo os problemas solucionados ao acaso, sempre visando um benefício apenas de curto prazo. Além disso, não existem estratégias de impacto nos recursos humanos, como treinamento, desenvolvimento e reconhecimento. Existe um comitê formal para construir um sistema que desenvolverá a melhoria contínua na empresa, contando com a participação dos funcionários nas atividades, mesmo essas não sendo integradas às operações do dia-a-dia. Os funcionários são treinados nas ferramentas básicas de melhoria e o sistema de reconhecimento é introduzido. Existe uma utilização formal dos objetivos estratégicos, sendo as atividades de melhoria continua parte das atividades gerais de administração. Nível 4 Nível 5 Capacidade completa de melhoria contínua Existe uma tendência para se desenvolver autonomamente e os indivíduos e grupos gerencial e direcionam seus próprios processos. Neste nível, as responsabilidades da melhoria contínua são desenvolvidas para a unidade de solução de problemas. Aproximação do modelo de aprendizagem organizacional, existindo a identificação e solução sistemática de problemas e compartilhamento do aprendizado. Fonte: Bressant et al.(2001. p.73). O uso de estratégia de melhoria de processos através de avaliação contínua, identificação de problemas e suas devidas ações corretivas permite estabelecer cinco níveis de maturidade (veja a tabela 2). CMMi (Capability Maturity Model Integration) é o modelo de maturidade surgido recentemente com o fim de unificar e agrupar as diferentes usabilidades do CMM e de outros modelos de processos de melhoria corporativo. Poucas as empresas, no mundo, que conseguem atingir o nível 5, a grande maioria fica nos estágios iniciais. No Brasil, até o presente ano (2007), existiam somente 4 empresas que tinham alcançado o nível 5 do CMMi. Tabela 5: Modelo de maturidade CMMI Estágios Descrição Nível 1 – Inicial Caótico, estágio onde a maioria das empresas de software se REVISTA ELETRÔNICA FUNDAÇÃO EDUCACIONAL 4ª Edição Nível 2 – Repetitivo Nível 3 – Definido Nível 4 – Gerenciado Nível 5 – Em Otimização SÃO 10 JOSÉ ISSN: 2178-3098 encontram. Capacidade de repetir sucessos anteriores através do acompanhamento de custos, cronogramas e funcionalidades. O processo de software é bem definido, documentado e padronizado. Realiza uma gerência quantitativa e qualitativa do processo de software e do produto. Usa a informação quantitativa para melhorar continuamente e gerenciar o processo de software. CONCLUSÃO O CMMI baseia-se em melhores práticas relevantes extraídas do Quadro CMMI Framework para definir práticas eficazes e eficientes para organizações governamentais. Eles fornecem uma base para a aquisição de disciplina e rigor nos processos que permitam o desenvolvimento de produtos e serviços a serem executados repetidamente. Os documentos de CMMI podem também ser usados para aquisição de práticas que devem ser realizados por projetos de governo em sistemas ou serviços. Estas práticas, no entanto, também podem ser usadas por organizações não-governamentais para melhorar as suas práticas de aquisição ou terceirização. As informações contidas no CMMI também podem ser usadas por organizações que gerem a aquisição de vários projetos relacionados à aquisição (por exemplo, centros de produto, os funcionários do Programa Executivo) para estabelecer um programa de aquisição de melhorias de processos e assegurar o sucesso de projetos em sua jurisdição. BIBLIOGRAFIA CMMI - Capability Maturity Model Integration (CMMI) disponível via url: http://www.sei.cmu.edu/cmmi/start/faq/related-faq.cfm, acesso em 23 de julho de 2010. PAULA F., W. P. Engenharia de Software: Fundamentos, Métodos e Padrões – LTC, 2003. PRESSMAN, R. S. Engenharia de Software. São Paulo- Makron Books, 1995. REVISTA ELETRÔNICA FUNDAÇÃO 4ª Edição EDUCACIONAL SÃO 11 JOSÉ ISSN: 2178-3098 SOMMERVILLE, I. Engenharia de Software. São Paulo – Pearson Addison Wesley, 2003. ISO/IEC Std 12207:1995 - Information technology - Software life cycle processes. Disponível via URL em: http://www.iso.org/. Acesso em julho, 2010.