Gerência - Metodologias e Processos

Uma breve visão de melhoria de processos de software "for dummies"

Se você fica confuso com acrônimos e normas como CMMI, MPS.br, ISO 15504, ISO 1207, ISO 9000 etc., leia este artigo...

por Fernando Amaral



Se você fica confuso com acrônimos e normas como CMMI, MPS.br, ISO 15504, ISO 1207, ISO 9000 etc., leia este artigo...

MPS Dummies

Obviamente que o livro acima é uma brincadeira. Mas a idéia deste artigo é tentar trazer algum esclarecimento no significado da melhoria de processos de software e o monte de acrônimos que a cercam. A idéia do artigo é usar uma linguagem simples, explicando os conceitos de forma superficial, mas de fácil compreensão.


O Caos é aqui!


No livro Software Project Secrets: Why Software Projects Fail, da editora Apress, George Stepanek afirma que 94% dos projetos de engenharia são completados com sucesso. Por outro lado, o relatório CHAOS, de 2004, do Standish Group, afirma que em 2003, apenas 28% dos projetos de software foram concluídos com sucesso. O prejuízo naquele ano foi algo em torno de 55 bilhões de dólares.

Processos

Maria e Ana nem se conhecem, porem hoje elas tem algo em comum: Acordaram com uma vontade enorme de fazer uma cobertura de chocolate para um bolo.
Maria coloca uma panela no fogo e começa a colocar os ingredientes dentro da panela. Maria usa sua intuição: um punhado de leite, um pouco de chocolate, um tanto de açúcar. Ao final de 15 minutos a mistura de torna uma massa dura como pedra. Maria percebe que sua receita deu errada e sequer consegue limpar a panela...
Ana resolve fazer a cobertura de chocolate seguindo uma receita:


"Em uma panela, coloque uma xícara de chá de açúcar, uma xícara de chá de Chocolate em Pó Solúvel, uma colher de sopa de manteiga e meia xícara chá de leite. Leve ao fogo brando e cozinhe, mexendo sempre, até a mistura ferver e ficar homogênea."

A cobertura de chocolate de Ana fica um sucesso! Maria resolveu fazer sua cobertura ad hoc, sem nenhum procedimento ou processo definido. Produzir algo assim pode dar certo, mas as chances de fracasso são imensamente maiores. Já Ana usou um processo: uma receita que apresentava o procedimento para fazer a cobertura de chocolate. Supondo que Ana fosse uma fanática por cobertura de chocolate e tivesse a receita na sua cabeça, mesmo assim ele estaria usando um processo, porém de forma informal. A cobertura de Ana poderia ter dado errada também, mas as chances de sucesso são sem dúvida muito maior.


Da mesma forma, na indústria de software (e em qualquer outra), ter processos bem definidos traz maiores garantias que os produtos serão entregues de forma a cumprir prazos, custos e com seus requisitos cumpridos. Os números na seção anterior deixam claro que, mas do que em qualquer outra indústria, a de software precisa deixar a produção artesanal e caótica e partir para uma produção ordenada, industrial! As tentativas de trazer ordem ao caos não são recentes, porém não há como negar que o caminho a percorrer ainda é longo. Grande parte da produção de software a nível mundial ainda se faz de forma totalmente artesanal.

Aí entram os modelos de melhoria de processo. O CMMI é sem dúvida o modelo de referencia mais conhecido, desenvolvido pelo SEI, é uma evolução do modelo CMM. As empresas produtoras de software podem adotar o modelo e se certificarem, de acordo com seu nível de maturidade, que vai de 1 a 5. Na época da escrita deste artigo, menos de 10 empresas no Brasil possuem o CMMI nível 5. O MPS.BR é um modelo de melhoria de processo de software brasileiro, baseado na CMMI e nas normas ISO 12207 e 15504 que veremos a seguir. Porque um modelo brasileiro se já existem modelos reconhecidos internacionalmente (que por enquanto não é o caso do MPS.BR)? A idéia é criar um modelo adequado a realidade das empresas brasileiras e com um custo menor, já que o custo para obter-se o CMMI torna o projeto inviável para a maioria das empresas brasileiras. Temos ainda diversas normas ISO relacionadas ao tema: A 12207 é uma norma ISO que estabelece um processo de ciclo de vida do software. Já a norma ISO 15504, conhecida com SPICE prevê a avaliação de processos de software, focada na melhoria destes processos. Já as normas ISO 9000 estabelecem um grupo de normas que especificam um modelo de gestão de qualidade, para qualquer tipo de organização, inclusive produtora de software. Mais especificamente, a ISO 9000-3 define com a norma 9000 pode ser aplicado a software e seus serviços relacionados.

A imagem abaixo mostra os processos da norma ISO 15504:

ISO 15504


Qual a relação de outros modelos como PMBOK e ITIL? O PMBOK do PMI trata de gerencia de projetos em qualquer indústria. Dentro um setor produtor de software, existe normalmente diversos projetos, é aí que o PMBOK se encaixa. Um modelo de melhoria de processos trata de todo o ciclo de vida do software, o PMBOK trata apenas de projetos e não de operações. Na verdade os dois se complementam. Já o ITIL foca na prestação de serviços e operações na área de TI, não sendo direcionada especificamente para o desenvolvimento, manutenção, integração etc. de software. Claro que todos os modelos têm pontos em comum e podem ser adotados em uma mesma organização de forma simultânea, a questão importante é entender o foco dos modelos, que sem dúvida é diferente.


Conclusão

Certificar uma fábrica de software com um modelo como CMMI ou mesmo o MPS.BR tem um custo, e mesmo neste último, o custo é elevado. Hoje poucas indústrias – como algumas áreas do setor financeiro, por exemplo – estão dispostas a pagar mais para terem seus produtos fabricados em uma empresa certificada. Não há como negar que este caminho é ainda distante para a maioria das empresas que produzem software no mundo, e os motivos são muitos e estão alem do escopo deste artigo.

Fernando Amaral

Fernando Amaral - Certificado PMP pelo PMI, CDIA+ pela CompTia, MCP, MCAD, MCSD, MCDBA, MCT pela Microsoft. Pós Graduado em Gestão de Sistemas de Informação (UNIDERP) e Melhoria em Processos de Software (UFLA). Atualmente reside em Campo Grande, MS, onde presta consultoria, treinamentos e palestras na área de TI.
Blog:
http://www.fernandoamaral.com.br.