Renato Luiz Della Volpe

Link para artigo completo

“FALTA DE TEMPO É DESCULPA DAQUELES QUE PERDEM TEMPO POR FALTA DE MÉTODOS

Albert Einstein

Apresente-me um profissional de desenvolvimento ou empresa de TI que não vive ou nunca viveu algum episódio relacionado a problemas de qualidade de onde surgem argumentos como:

  • “aquele ‘programa’ que não roda ou que só dá falhas e bugs”;
  • “o sistema que ‘roda’ mas não faz o que se esperava”;
  • “aquele projeto que teima em não terminar”;
  • “um cliente bravo por um ou vários dos motivos acima”;
  • “nunca temos tempo para os testes”;
  • “sempre tenho que ficar trabalhando no final de semana e nem sei se vai adiantar”;
  • “o pessoal não me entrega os dados para que eu possa Nem dá para entender o que é para fazer”.

Enfim, o profissional de TI tem que se acostumar com esta “estressante” dinâmica para sempre? Será que não existe algum caminho que possa ser trilhado sem considerar, é claro, a mudança para outra área de atuação? Não tem jeito?

Ao contrário do que muitos pensam e afirmam, qualidade em software tem não só um, mas muitos caminhos que podem ser percorridos por pequenas, médias e grandes empresas. Fácil? Não, mas perfeitamente possível. O tema é extenso, há muitos livros e extenso material na Internet para pesquisa e estudo. [ver links ao final da matéria]

Neste artigo, é apresentado o CMMI® – Capability Maturity Model Integration – um modelo largamente aplicado em empresas no mundo e em crescimento no Brasil,que tem como objetivo justamente minimizar e por vezes eliminar, entre outros, os problemas acima citados.

Entenda um pouco deste modelo que faz ou está fazendo a diferença não somente para as empresas que o implantam, como também para os profissionais que possuem seu conhecimento e já entenderam seus benefícios.

MOTIVAÇÕES

Muito se tem falado e discutido, tanto a favor como contra, sobre o CMMI® – Capability Maturity Model Integration, que é um modelo para a estruturação e aprimoramento da maturidade da “capabilidade” dos processos nas organizações de desenvolvimento de software. Aliás, essa definição já seria um pretexto para uma acalorada discussão envolvendo dois termos utilizados “maturidade” e “capabilidade”.

É comum também ouvirmos comentários ou até questionamentos a respeito da aplicação do CMMI como: “Este modelo é para empresas multinacionais e de grande porte” – “Os americanos utilizam o CMMI porque devem atender às regras do departamento de defesa, aqui no Brasil ninguém nos obriga a utilizar” ou ainda, “Isto é aplicável para os indianos que possuem uma forma de atuação diferente da do brasileiro” e a máxima de todos os comentários “Este modelo é muito difícil, complexo e o investimento é elevado”.

O propósito deste artigo é, portanto, apresentar colocações que talvez não eliminem, mas ao menos minimizem estes “pré-conceitos” existentes sobre este ou qualquer outro modelo de gestão da qualidade organizacional, voltado ao desenvolvimento de software.

 

MELHORIA DA MATURIDADE E CAPABILIDADE – O QUE É ISSO E POR QUE BUSCÁ-LAS?

A maturidade está relacionada à qualidade dos processos utilizados em uma organização no desenvolvimento e manutenção de um determinado produto, no caso, os produtos de software. Organizações sem maturidade são as que apresentam características de um processo improvisado pelas pessoas, ou este processo, quando existente, não é seguido ou cumprido, possuindo, desta forma, grande dependência dos atuais desenvolvedores no que diz respeito ao conhecimento da arquitetura e evolução do software. Estes acarretam o desconhecimento do progresso dos projetos, onde a funcionalidade e a qualidade do produto geralmente são comprometidas para atender aos prazos, nem sempre claramente estabelecidos, os quais irão acarretar custos excessivos de manutenção, insatisfação dos clientes e das pessoas envolvidas na equipe de desenvolvimento, entre outros inconvenientes. Por outro lado, em uma organização madura, temos como principais características: processo bem definido, documentado e continuamente aprimorado que é entendido, utilizado e “vivo” por todas as pessoas envolvidas. É plenamente suportado pela gerência, possibilitando a existência de responsabilidades e papéis claramente definidos, bem como uma grande visibilidade, alinhada ao negócio da organização.

A capabilidade está relacionada a uma evolução da condição de se atingir, cada vez mais, melhores resultados dos processos, sendo que esses são mantidos sob controle em quaisquer circunstâncias. O termo capabilidade, apesar de não existir na Língua Portuguesa, se difere em seu contexto da palavra capacidade, que muitos autores utilizam. Para uma explicação rápida, a capacidade estaria relacionada com a quantidade a ser produzida ou efetuada (exemplo: x mil linhas de código/ dia). Contudo, como sempre se fala, “Quantidade não é Qualidade”, a capabilidade é ter esta capacidade claramente definida e controlada e esta quantidade ser feita respeitando-se limites claros de qualidade (exemplo: x mil linhas de código/dia com um índice de defeitos com variação máxima de +/- 0,002 erros / mil linhas de código).

Tudo isto não quer dizer que não iremos depender mais das pessoas para o desenvolvimento de software, muito pelo contrário. Em uma definição do que é um “processo”, vemos que podemos definir muito bem as etapas (procedimentos) que devemos ter para um desenvolvimento, mas que devemos dar os recursos e a devida capacitação às pessoas para que essas efetivamente “rodem” o processo.

Metodologias

CMM E CMMI – SÃO DIFERENTES?

Cabe aqui uma breve colocação para tirar a preocupação de alguns dirigentes e até mesmo de equipes atuantes nas áreas de desenvolvimento de software, que estejam implementando um dos modelos. O CMMI, resumidamente, é uma evolução do modelo anterior, denominado CMM, o qual seria corretamente denominado SW-CMM ou Software – Capability Maturity Model. Existem sim diferenças entre os modelos, mesmo porque, todo modelo que evolui agrega melhores práticas e experiências existentes no mercado. Não foi diferente entre CMM e CMMI. O primeiro foi criado em 1987 por Watts Humphrey e com o decorrer dos anos de diversas aplicações e experiências, observou-se a necessidade de aprimorar o modelo e “integrar” outros modelos já existentes que também agregavam as melhores práticas de mercado de tecnologia da informação, daí o “I” de “Integration” colocado no CMMI. O CMMI foi oficialmente publicado no ano de 2000 e atualmente é um dos modelos mais adotados para a melhoria dos processos de software em todo o mundo.

Obviamente, uma empresa que queira no momento aplicar melhores práticas de desenvolvimento de software deve optar pelo CMMI já que esse, como já foi dito, agrega uma evolução das melhores práticas de diversas  organizações.

A figura 2 ilustra o modelo CMMI em uma representação por estágios. O gráfico do lado direito indica o aumento de Qualidade, Produtividade e Visibilidade acompanhado da diminuição de Riscos e do Desperdício à medida que aumenta o nível de maturidade da organização.

EM DEFESA DA GESTÃO DA QUALIDADE DE SOFTWARE

Não iremos aqui defender exclusivamente o modelo CMMI e que sua aplicação deva ser feita por todas as organizações de desenvolvimento de software, pois, se observarmos a própria definição de um modelo, verificaremos que é uma representação do mundo real, o qual agrega as melhores práticas bem sucedidas de gestão organizacional observadas até o momento em diversas organizações do setor, no qual este modelo se propõe a beneficiar. Portanto, todo e qualquer modelo não é completo, perfeito, permanentemente atual e aplicável da forma que foi constituído para toda e qualquer organização. Esse é um primeiro ponto de extrema importância para a seleção de uso de um modelo de gestão. O modelo adotado deve estar alinhado às estratégias organizacionais, o que irá, como conseqüência, agregar valor aos negócios e apresentar um retorno sobre o investimento realizado. Se o CMMI, da forma que está constituído, for este modelo, ele deve ser adequadamente adaptado (o CMMI utiliza o termo – tailored) às condições, necessidades e estratégias de cada organização. Nada impede que uma organização estabeleça seu próprio método de gestão aplicando requisitos do CMMI que considera essenciais para seu sucesso, incorporando melhores práticas de outros modelos existentes como ISO 9000:2000, ISO 15504 – SPICE, PMBoK, entre outros. O próprio modelo CMMI permite esta flexibilização de aplicação das práticas e técnicas mais adequadas às necessidades e realidade de cada organização em sua representação denominada “contínua”. Ou seja, a organização implementa as melhores práticas que estejam mais alinhadas às suas necessidade emergentes para a melhoria e obtenção de resultados.

AS EMPRESAS E PROFISSIONAIS DO BRASIL DEVEM AGIR E SE APRIMORAR

Outro fator, que reforça ainda mais a necessidade das organizações de desenvolvimento de software se aprimorarem, fica evidenciado quando nos baseamos nos fatos reportados recentemente, mostrando que não podemos simplesmente ignorar o que está ocorrendo no mercado das organizações de software em todo o mundo. O mercado do Brasil, que não pode ficar alheio ao mundo globalizado atual, também deve e está se movimentando para o aperfeiçoamento da qualidade de software não só para o mercado interno, como também para o mercado externo. Basta referenciar que, em recente pesquisa do MIT em parceria com a Sociedade SOFTEX (ISBN 85-89477-01-0), o Brasil, em termos de venda, se iguala a países como Índia e China. Contudo, em termos de preocupação com qualidade de software, ainda apresentamos resultados aquém desses dois países. Basta observarmos resultados de recentes pesquisas que colocam o Brasil bem abaixo de países como Coréia e Israel, sem citar os EUA, Índia, China, França, entre outros – veja tabela 1. O destaque fica com a China que há um ano estava nos mesmos patamares do Brasil, mas que hoje fica evidente a preocupação, inclusive econômica, de atuar mais fortemente no mundo e, por isso, está evoluindo rapidamente no campo da qualidade de software.

O Brasil melhora, ou se preocupa, a cada ano, em reduzir esta diferença. Os resultados apontados pelo MCT – Ministério de Ciência e Tecnologia, demonstram isso em parte, quando apontam que as organizações de tecnologia da informação evoluíram de patamares de 3% de aplicação do CMM em 1995 para 21% em 2001 em 415 empresas de TI pesquisadas – grupo ainda pequeno frente ao número crescente de empresas de desenvolvimento de software no país. Esses são números ainda muito modestos para o mercado acirrado que queremos conquistar, o qual requer, cada dia mais, o aprimoramento da qualidade. E o termo qualidade deve ficar bem claro, pois é em seu contexto amplo que devemos estar focando, ou seja, no custo, no prazo, funcionalidade e qualidade propriamente dita do produto de software.

Todos estes fatores reforçam a necessidade das organizações iniciarem uma atuação na melhoria de seus processos de desenvolvimento de software com vistas a atingir suas metas estratégicas atuais e principalmente a médio e longo prazos.

Para isso, a adoção de um modelo de gestão, alinhados a estas estratégias organizacionais, se torna necessário. O modelo CMMI é atualmente um dos mais aplicáveis e conhecidos mundialmente. Surgem novamente, no momento de sua aplicação, todas as dúvidas mencionadas a respeito de sua complexidade, dificuldade de adequação e custos elevados para implantação.

E A COMPLEXIDADE E OS CUSTOS ENVOLVIDOS, COMO FICAM?

No que tange a complexidade e a dificuldade de adequação, ficam aqui algumas questões para reflexão:

  • Será que fazer uma análise do que seu cliente deseja, planejar e controlar o que deve ser feito em seus projetos, controlar e garantir a qualidade do produto a seu cliente e estabelecer itens de gerência e condições mínimas de engenharia de software são enfoques complexos e difíceis de serem entendidos?
  • Você como pessoa física ou jurídica, quando na situação de cliente, não deseja isto de seu fornecedor?
  • Será que a área de engenharia de software não está realizando isto?
  • Qual o custo então de seu projeto?
  • Qual a situação dos seus projetos em termos de prazo e qual a qualidade que você está entregando ao seu cliente?
  • Quais os custos de re-trabalho atuais?
  • Resultados como os da tabela 2 não são importantes para sua organização?

Acredite, trata-se de resultados também obtidos por empresas brasileiras que estão levando a sério a implementação de um modelo de gestão. Como exemplo, podemos citar empresas que obtiveram níveis de maturidade 2 e 3 no Brasil com resultados como:

  • Redução na variação da entrega no prazo de 100% para 17%
  • Redução do número de não-conformidades em avaliações da qualidade no desenvolvimento de 17% para 7%
  • Redução de 50% na taxa de defeitos
  • Diminuição de desvios de custos e prazos em projetos para abaixo de 10%.

E tudo isso, se é bom para a organização, fique certo que é muito melhor para o profissional que nela atua.

É isto que o modelo CMMI, já em seus níveis de maturidade 2 e 3, estabelece para as organizações, ou seja, uma análise dos requisitos do cliente e transformação dos mesmos em requisitos de software, realização, mediante estimativas de um plano do projeto, o seu monitoramento das atividades e correção de rumos e adoção de práticas para garantir e controlar o produto entregue ao seu cliente. Tudo isso com uma estrutura de engenharia e gerência que suporte e tenha conhecimento adequado para sua realização. O modelo CMMI estabelece a estrutura necessária para se atingir estas etapas. Ele descreve O QUE deve ser estruturado em uma organização e não COMO realizar os processos estabelecidos. O COMO ou a forma de realizar deverá ser analisado e adaptado pela organização para que os processos e métodos estabelecidos tragam realmente benefícios e um retorno sobre o investimento  realizado.

Com relação aos custos, ditos elevados, para a implementação do CMMI, deve-se analisar primeiramente qual a amplitude e abrangência da aplicação do modelo, que repetimos, deverá estar alinhado às estratégias do negócio. Exemplificando, se uma organização está envolvida com exportação de software e a realização de um diagnóstico por um avaliador reconhecido pelo Software Engineering Institute (SEI) for necessária, então deve-se considerar todos os investimentos até a realização deste diagnóstico. Se, em outra possibilidade, uma organização tenha como objetivo a melhoria de seus processos de software, sem buscar a princípio uma avaliação oficial, os investimentos serão reduzidos, incluindo por vezes um autodiagnóstico e um plano de atuação e adequação.

Cabe aqui um breve parêntese para destacar a iniciativa do governo, através do Ministério de Ciência e Tecnologia, na criação de um modelo voltado principalmente às micro, pequenas e até médias empresas, o qual está também baseado no CMMI e outros modelos reconhecidos, com custos de avaliação condizentes com as estruturas destas organizações. É no mpsBr – Melhoria de Processo de Software Brasileiro – onde maiores detalhes podem ser obtidos em www.mct.gov.br Contudo, independente do enfoque estabelecido, resultados já apresentados (ver tabela 2) demonstram que todo o investimento na melhoria dos processos traz resultados altamente benéficos para a organização. Demonstram também que, apesar de um investimento inicial obviamente necessário, os retornos são comprovados e, quando quantificados em termos financeiros, demonstraram que realmente existem ganhos reais em todo o processo.

Obter ou não o “certificado” em uma avaliação oficial do SEI obviamente tem sua importância e valor. Contudo, deve estar bem claro para as organizações e pessoas que, o mais importante é atuar conscientemente e com envolvimento de todos nas melhorias possíveis para a organização para realmente obter os resultados dos investimentos feitos. Caso contrário, a organização estará tendo somente “gastos” ou “despesas” no lugar de um real investimento. Por conseqüência, as pessoas também serão atingidas com a perda da motivação e confiança nos processos e no real valor de um modelo de gestão como o CMMI.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>