Muitos desenvolvedores e programadores brasileiros nem sabem, mas está em ação um processo batizado de MPS.BR – Melhoria do Processo de Software Brasileiro. O objetivo desse projeto, como o nome sugere, é que haja uma melhoria em todos os processos de software brasileiros, especialmente em pequenas e médias empresas. Além de um movimento para a melhoria geral da qualidade do software produzido em nosso país, é um modelo de qualidade de processo. O foco desse artigo é apresentar um pouco desse movimento, além de apresentar o modelo MPS.

MPS.BR – O movimento

O MPS.BR é um movimento criado em uma parceria entre o Ministério da Ciência, Tecnologia e Inovação e a SOFTEX – Associação para Promoção da Excelência do Software Brasileiro e algumas empresas e instituições de ensino. O programa foi criado e tem como foco principal as micros, pequenas e médias empresas do mercado de software. Como desenvolvedores observam todos os dias, essas empresas têm algumas dificuldades e poucos recursos para a melhoria dos processos, embora tenham grande necessidade de fazê-lo.

A motivação por trás da criação do movimento foi à busca pela redução de custos nos processos de software. O desenvolvimento de produtos de software no Brasil é dos maiores do mundo, e, pensando nisso, as empresas precisam sempre estar em busca de maturidade e excelência em seus projetos de software, para que continuem agradando os clientes. O objetivo final das empresas é atingir padrões de certificação nos softwares que produzem, e isso pode ser muito caro.

Ao longo desses dez anos, segundo atesta o SOFTEX, foram atingidas 515 avaliações, além de quase 6 mil profissionais capacitados e 1300 pessoas habilitadas. Além disso, pode-se dizer que o programa foi e tem sido um sucesso, superando as metas estabelecidas ao longo desses anos e sendo plenamente aceito pela comunidade de desenvolvimento no Brasil. Quando o programa foi lançado, essas metas foram consideradas ambiciosas, mas foram alcançadas, além de o MPS.BR ter números expressivos comparado a outros movimentos parecidos ao redor do mundo.

MPS.BR – O modelo

O MPS.BR fornece um modelo que auxilia as empresas. Este possui total compatibilidade com a norma ISO/IEC 15504 e com o CMMI (Capability Maturity Model - Integration). O grande objetivo é fornecer um modelo de processos de software a um preço acessível, permitindo uma melhor organização às empresas menores no mercado brasileiro de software. Além disso, o modelo permite uma forte interação Universidade-Empresa, o que é sempre vantajoso para as empresas, porque são capazes de buscar mão de obra qualificada, e para as universidades, que conseguem alocar seus alunos no mercado.

O modelo propriamente dito é baseado em três guias: o Guia Geral, que contém a descrição geral do modelo, bem como detalhes do modelo de referência; o Guia de Aquisição, que contém recomendações para a compra de software e serviços; e o Guia de Avaliação, que contém a descrição de todos os elementos e processos de avaliação do software baseados no modelo MPS.

Outro ponto importante a respeito do MPS.BR é que o modelo possui sete níveis de maturidade. Isso possibilita uma implantação mais gradual e adequada a pequenas empresas. Em uma comparação direta, o CMMI possui apenas cinco níveis. O nível de maturidade é muito importante para as empresas, por funcionar como um medidor simples do quanto essa empresa domina os processos de software. No caso das empresas, mais diretamente, a maturidade está associada ao conhecimento que a empresa possui e como esse conhecimento é aplicado aos resultados efetivos.

Como todo modelo de processos de software, o MPS.BR possui uma estrutura que é dividida em três componentes: o Modelo de Referência, o Método de Avaliação e o Modelo de Negócio. A Figura 1 representa essa estrutura. O Modelo de Referência é responsável por mostrar às empresas os requisitos a serem cumpridos pelas organizações que têm interesse estar em conformidade com o MR-MPS. Já o Método de Avaliação contém os processos para os avaliadores das empresas, enquanto o Modelo de Negócio descreve as regras para implementação do MR-MPS pelas empresas.

Figura 1. Estrutura do MPS.BR

O Modelo de Referência do MR-MPS, como já foi comentado, define os requisitos para conformidade com o modelo. Mais especificamente, ele define os sete níveis de maturidade do modelo. Os níveis de maturidade são definidos em uma combinação de processos e capacitação, permitindo que as empresas prevejam seu desempenho futuro através do nível em que se encontram. Esse tipo de organização é muito comum e auxilia as empresas na organização dos processos, bem como no planejamento dos próximos passos, melhorando áreas que talvez não estivessem tão boas assim. Isso facilita na hora de atender plenamente os objetivos do negócio. Os sete níveis de maturidade são, de A (melhor) a G (pior):

  • A – em otimização;
  • B – gerenciado quantitativamente;
  • C – definido;
  • D – largamente definido;
  • E – parcialmente definido;
  • F – gerenciado;
  • G – parcialmente gerenciado.

Para cada um dos sete níveis, definiu-se um perfil de processos e um perfil de capacitação de processos. No nível G há uma gerência de projetos e uma gerência de requisitos, o que demonstra um nível de maturidade bastante baixo. Porém, como se sabe, na gerência de projetos existem algumas tarefas essenciais, que precisam ser realizadas em qualquer projeto de software, como identificação e monitoramento de atividades referentes ao projeto. No que diz respeito à gerência de requisitos, quer dizer que a empresa tem uma boa habilidade de lidar com as mudanças que os requisitos sofrem ao longo do desenvolvimento de um projeto.

Já no nível F há uma maturidade um pouco maior por parte da empresa, existindo uma garantia da qualidade do produto, bem como controle nas aquisições (de produtos e serviços), gerência de configuração e medição. A primeira diz respeito a garantir que os produtos e processos estão de acordo com o plano e recursos predefinidos. Isso não garante que o software será um sucesso, porém é o primeiro passo para tal. Já o controle nas aquisições diz respeito definição de necessidades de aquisição, bem como definição de fornecedores e outros pontos importantes para a compra de produtos e/ou serviços. A gerência de configuração é responsável por estabelecer e controlar os resultantes de um processo, enquanto a medição diz respeito à coleta e análise dos dados relativos aos produtos desenvolvidos, bem como aos processos implementados.

O nível E, por sua vez, garante uma organização ainda maior nos processos. Ele trás a adaptação do processo para gerência de projeto, a definição do processo organizacional, bem como sua avaliação e melhoria, trazendo também o processo de treinamento dentro da empresa de forma global. O primeiro processo diz respeito a estabelecer e gerenciar o projeto, com envolvimento dos clientes e de acordo com princípios predefinidos. Já o segundo e terceiro dizem respeito à organização da empresa no que diz respeito a fazer software. Eles são responsáveis por definir esses processos, bem como avaliá-los e melhorá-los.

O nível D é o nível de maturidade intermediário, trazendo algumas ideias de desenvolvimento de requisitos, bem como utilização de técnicas para garantir a qualidade do software, como validação e verificação. Nesse nível de maturidade a empresa é capaz de coletar os requisitos juntamente com o cliente, deixando tudo largamente definido a priori. Posteriormente, há a necessidade de confirmar que esses requisitos foram atingidos, o que trás a solução técnica (onde há a especificação técnica dos requisitos validados), a validação, verificação, a integração e instalação do produto, bem como sua liberação.

O nível C trás alguns processos mais avançados, como gerência de riscos e análise de decisão e resolução. O primeiro diz respeito a diminuir os riscos que mudanças de pessoal possam trazer para os projetos, evitando atrasos no cronograma. Esse é um ponto muito importante, e que todas as empresas devem estar atentas, uma vez que o cliente quer que o cronograma seja cumprido. Já a análise de decisão e resolução é responsável por analisar as decisões que foram tomadas utilizando um processo formal de avaliação.

O nível B traz uma gerência quantitativa do projeto, além de calcular o desempenho do processo organizacional. O propósito da gerência quantitativa é bem interessante, e diz respeito a monitorar e determinar os projetos em relação aos seus objetivos de qualidade e desempenho, garantindo que o software terá qualidade. O desempenho do processo organizacional é calculado para que se tenha um entendimento da qualidade dos processos que a organização está realizando.

Por fim, no nível A, há uma maturidade plena da empresa. Ele trás processos de análise de causas e resolução e inovação na organização. O objetivo do primeiro é identificar, e, obviamente, evitar no futuro, causas de defeitos, seja nos processos ou nos projetos realizados. Já a inovação é parte essencial em qualquer empresa consolidada no mercado, trazendo a ideia de sempre buscar melhorias e evolução para melhor.

O nível de maturidade de uma empresa é essencial para que a mesma entenda, bem como seus clientes, onde está e o que precisa melhorar. Com isso, a evolução pode ser constante, bem como uma adaptação pode ser realizada. O nível A é bastante característico de empresas consolidadas, que estão buscando melhorar ainda mais o que já está excelente. Essas empresas estão sempre em busca de inovações e novidades para lançar no mercado. Já no nível G, geralmente, estarão empresas iniciantes, que ainda não tiveram tempo suficiente para evoluir seus processos e deixa-los prontos para o crescimento de seus projetos.

Outros modelos de processos de software

Entre os principais modelos de processos de software ao redor do mundo, vale destacar dois: o CMMI e o ISSO/IEC 15504. Ambos os modelos definem o processo de desenvolvimento de software. Além disso, ambos também trazem níveis de capacidade para o processo, assim como o próprio MPS. Entre eles, o CMMI é o mais conhecido e utilizado e foi a principal base para a criação do MPS.BR.

O CMMI é tido como o principal modelo de maturidade para empresas de software ao redor do mundo. Trata-se de um modelo de referência que contém algumas práticas para que as empresas atinjam a maturidade em determinada área. É um modelo totalmente consolidado e que é seguido por grandes empresas de software ao redor do mundo. A ideia é que as organizações que utilizam esse modelo possam melhor se ater aos requisitos do mercado, como se adaptar aos custos de projeto e garantir a entrega dos produtos de software dentro dos prazos.

O modelo em si é bastante simples de ser explicado, embora não tão simples de ser seguido. O CMMI, diferentemente do MPS, possui dois tipos de representação: contínua ou por estágios. A representação contínua possibilita à organização que está utilizando o modelo adaptar o mesmo para as necessidades específicas enfrentadas na empresa. Essa representação é caracterizada por níveis de capacidade, que são os seguintes:

0. Incompleto
1. Executado
2. Gerenciado
3. Definido
4. Gerenciado quantitativamente
5. Em otimização

Porém, essa representação não é muito utilizada nas empresas. Basicamente, ela é indicada quando se deseja adaptar apenas alguns processos, e não todos, de uma empresa. Já a representação por estágios é mais intuitiva. Assim como o MPS, ele disponibiliza uma sequência, caracterizada por níveis de maturidade. Diferentemente do MPS, o CMMI possui apenas cinco estágios, o que muitas vezes dificulta a evolução da empresa em termos de estágios. Os estágios são os seguintes:

  1. Inicial
  2. Gerenciado
  3. Definido
  4. Quantitativamente gerenciado
  5. Em otimização

Cada um desses estágios possui uma série de definições que precisam ser atingidas se a empresa deseja chegar nesses estágios. A maioria delas pode ser encontrada em fontes na internet ou em livros. Em poucas palavras, no nível 1, temos uma empresa iniciante, que está apenas introduzindo melhorias em seus processos. Já no nível 2, temos uma melhor organização por parte da empresa, contando com gerenciamento de requisitos e planejamento de projetos por exemplo. No nível 3, há uma evolução, e inclusive há um gerenciamento de riscos por parte da empresa antes de aceitar um projeto. No nível 4, o nível de maturidade da empresa já cresceu bastante e a mesma está concentrada em seu desempenho interno, para melhorar seus processos e consequentemente evoluir no mercado. Por fim, o nível 5 é o nível máximo de maturidade que uma empresa pode atingir dentro do CMMI, e significa que a empresa está com todos os seus processos maduros, embora nunca deva parar de buscar melhorias para os mesmos.

Já a norma ISO/IEC 15504 é um pouco diferente do CMMI e mesmo do MPS. Essa norma é também conhecida como SPICE e define o processo de desenvolvimento de software. Em outras palavras, é a norma que define coisas importantes referentes ao desenvolvimento de software, como documentação, garantia de qualidade e auditoria. Essa norma é uma evolução da norma número 12207, e possui níveis de capacitação de processos para as empresas, assim como o CMMI e o MPS. A principal diferença com relação à sua antecessora é o nível de detalhe que ela fornece para uma avaliação dos processos.

A norma ISO/IEC 15504 possui cinco volumes que propõe um conjunto de processos padrão. O grande objetivo é orientar as empresas no sentido de otimizarem seus serviços. Isso faz com que haja uma maior organização de todas as empresas, o que geralmente resulta em serviços e produtos de melhor qualidade para o consumidor. No caso dos processos de software, isso é ainda mais útil, uma vez que, muitas vezes, os softwares são criados especificamente para cada cliente.

Os cinco documentos que a norma ISO/IEC 15504 define são listados a seguir:

  1. Conceitos e Vocabulário;
  2. Realização de uma avaliação: contém os requisitos mínimos para realização de uma avaliação consistente e criteriosa;
  3. Guia para a realização de uma avaliação;
  4. Guia para utilização dos resultados de uma avaliação;
  5. Modelo exemplo de avaliação.

Esses documentos são todos muito úteis para as empresas que precisam se estruturar melhor. São normas aceitas internacionalmente que só tem a trazer benefícios para quem se utilizar delas. É interessante destacar que fazem parte da norma apenas os documentos 1 e 2. Os demais são apenas documentos informativos, que servem como uma orientação na hora de lidar com a norma.

A norma ISO/IEC 15504 também define um nível de capacidade da empresa, como uma forma de avaliar como a organização está se saindo diante do mercado. Esses seis níveis são divididos da seguinte forma: o chamado nível 0 indica que o processo não está implementado ou está falhando; o nível 1 indica que o processo está implementado e funciona, e só; já o nível 2 já adiciona alguma complexidade ao processo, indicando que já há um controle maior sobre o processo, bem como uma manutenção bem feita; o nível 3 mostra que o processo está estabilizado e é baseado em um processo padrão de algum modelo; já o nível 4 indica que o processo é consistente dentro de determinados limites, não todos; por fim, o nível 5 indica que a empresa atingiu a maturidade e tem um processo devidamente testado e funcional, que está realizando tudo da forma mais correta possível, de acordo com os paradigmas da Engenharia de Software.

Com isso, a principal conclusão que se pode ter para esse artigo é a de que o MPS.BR é um verdadeiro sucesso. Esse modelo fornece uma série de provas oficiais e cursos, buscando a capacitação de profissionais. Atualmente, segundo o site oficial do projeto (www.softex.br/mpsbr), há quase 6 mil profissionais capacitados no mercado, e a tendência é de que esse número cresça muito nos próximos anos. O MPS.BR é um modelo que adota as melhores práticas de Engenharia de Software, sendo adequado tanto do ponto de vista técnico como do ponto de vista econômico, por ser mais barato que os demais modelos do mercado.

Quanto aos outros modelos, o CMMI em si lembra muito o modelo MPS. Isso é até óbvio, uma vez que o modelo brasileiro foi baseado nesse modelo internacional. Porém, em alguns pontos o MPS é ainda melhor que o CMMI, uma vez que permite que pequenas empresas tenham maior facilidade na hora de evoluir entre os níveis de processos. Já o ISO/IEC 15504 também tem muitas semelhanças com o MPS, embora seja um pouco mais voltado para normatizar os processos de software do que propriamente indicar um caminho para as empresas se organizarem.