Logomarca IETEC

Buscar no TecHoje

Preencha o campo abaixo para realizar sua busca

:: Gestão de Projetos

A busca da qualidade no desenvolvimento de software

Clarice Fainblat Pádua e Micheline Souto Mendes

Clarice Fainblat Pádua
Graduada em Tecnologia de Processamento de Dados pela Universidade Federal de Minas Gerais e em Administração de Empresas pela PUC – MG, Analista de Negócios da Casa de Software S/A e pós-graduada em Gestão de Projetos pelo Ietec.

Micheline Souto Mendes
Graduada em Arquitetura pelo Instituto Metodista Izabela Hendrix, Gerente de Projetos na Superintendência de Tecnologia da Informação da Secretaria de Estado de Fazenda de Minas Gerais e pós-graduada em Gestão de Projetos pelo Ietec.

Em tempos passados, existiam poucas indústrias de software, com produtos distintos, e não havia competição entre elas. Hoje o cenário mudou significativamente, obrigando as empresas a mudarem seus paradigmas e investirem na otimização de fatores como custo, tempo e qualidade.

Um estudo demonstra a imaturidade das indústrias de software através dos seguintes indicadores:

• Mais de 30% dos projetos são cancelados antes de serem finalizados.
• Mais de 70% dos projetos falham nas entregas das funcionalidades esperadas.
• Os custos extrapolam em mais de 180% os valores originalmente previstos.
• Os prazos excedem em mais de 200% os cronogramas originais.

Soluções, ainda que parciais, já foram desenvolvidas. Para tanto, é necessário que as organizações estejam apoiadas em um modelo de processo organizacional eficiente. Este modelo pode incluir a série ISO 9000 e/ou um modelo de qualidade, como por exemplo, o CMM (Capability Maturity Model), não para um produto específico, mas para qualificação de toda organização. A viabilização desse processo irá colocá-la dentro do seleto grupo de desenvolvedores de bons e viáveis softwares.

A expectativa ao investir na qualidade dos projetos de desenvolvimento de software é o aumento da produtividade, a satisfação dos usuários e a previsibilidade dos resultados finais. Visando os objetivos anteriormente citados as empresas necessitam implementar processos que auxiliem o cumprimento dessas metas.

Palavras-chave
Qualidade, software, não conformidades, testes, validação, verificação.

Desenvolvimento

Segundo a norma ISO 9000 (versão 2000), a qualidade é o grau em que um conjunto de características inerentes a um produto, processo ou sistema cumpre os requisitos inicialmente estipulados para estes.

Segundo o PMBOK o processo de gerenciamento da qualidade é subdividido em três subprocessos complementares:

• Planejamento da Qualidade – engloba as atividades referentes ao planejamento das atividades de qualidade e os esforços na prevenção de defeitos; identifica os padrões de qualidade indicados para o projeto e determina como satisfazê-los.
• Garantia da qualidade – engloba as atividades, técnicas e procedimentos realizados com o objetivo de identificar erros em artefatos de software; garante o adequado desempenho de cada etapa do desenvolvimento, satisfazendo os padrões de qualidade definidos para o projeto.
• Controle da Qualidade – engloba as atividades, técnicas e procedimentos relacionados a medir e monitorar a qualidade do processo e do produto de software. É um processo contínuo e sistemático de acompanhamento da eficiência do desenvolvimento em diversos pontos de controle, possibilitando apontar variações de qualidade e promovendo ações corretivas e preventivas de forma a manter o nível de qualidade planejado.

A busca da qualidade no desenvolvimento de software é um processo sistemático que deve focalizar todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos. No desenvolvimento de software, a qualidade do produto está diretamente relacionada à qualidade do processo de desenvolvimento. Desta forma, é comum que a busca por um software de maior qualidade passe necessariamente por uma melhoria no processo de desenvolvimento.

Para que o desenvolvedor de software obtenha a tão almejada qualidade de software em seus produtos, ele deve assegurar que todos os detalhes relativos à qualidade sejam aplicados em seu desenvolvimento. É importante que se procure melhorar a qualidade do produto, mas devemos nos preocupar de forma mais ampla em melhorar a qualidade de trabalho, de serviço, de informação, de processo e de pessoal. Isto requer um firme esquema de medição, análise e trabalho comparativo.

A qualidade de um software requer, primeiramente, que ele forneça funções da maneira e no tempo em que o usuário necessitar delas. O software deve realizar o que ele se propõe, pois quando o nível de defeitos não possibilita um trabalho consistente, o usuário desliga-se do software, deixando de lado até seus melhores atributos.

A identificação de erros nas fases iniciais, evita sua propagação e elimina custos com correções. Isso torna o processo mais estável e menos caótico. O prazo de implantação será reduzido em função de um índice menor de retrabalhos, com um produto mais confiável, que aumenta o nível de satisfação do cliente. Isso traz, também, melhorias na motivação da equipe, pois essa realizará atividades mais construtivas e com pouco retrabalho e, também, uma empresa mais fortalecida, já que os clientes preferem as organizações que cumprem seus prazos e compromissos.

Mesmo considerando que atualmente, os testes são aplicados apenas na fase final, é preciso que isso seja modificado para melhoria da qualidade. Devemos ampliar os conceitos de qualidade e aplicar testes em todas as fases do processo, tornando o processo de desenvolvimento de software mais controlado e confiável, possibilitando o efetivo gerenciamento do desenvolvimento.

Mas muitas tentativas de implantação de processos de qualidade nas organizações fracassam. Quando estruturamos uma área de qualidade de software, disponibilizamos uma infra-estrutura que contempla recursos físicos, humanos e experiências acumuladas. Quanto maior o gerenciamento dessa estrutura melhor serão os benefícios em função desses investimentos. Mas o que acontece com freqüência nas organizações é a falta de especialização dos profissionais de qualidade. É comum observarmos a utilização de pessoas da área de desenvolvimento para organizar e estruturar os processos de qualidade e a falta de conhecimentos nessa área pode comprometer todo esforço de implantação dos processos na empresa.

O custo da qualidade pode ser entendido como todo investimento realizado com a finalidade de um produto ou serviço atingir a qualidade exigida e desejada. Os custos da conformidade são todos os investimentos realizados para planejar e manter a infra-estrutura de pessoas, processos e ferramentas com a função de prevenir e detectar erros. Todo conjunto de ações com o objetivo de melhorar e garantir o processo de desenvolvimento deve ser considerado custo da conformidade. Os custos da não conformidade são aqueles relacionados às atividades de reparação de falhas, são acontecimentos provenientes da falta de qualidade.

Todo e qualquer erro custa dinheiro. Quanto mais tardiamente as falhas são identificadas mais caras elas se tornam. Deve-se entender que testar nas fases iniciais custa menos, já que a correção de um erro não identificado multiplica-se em cada fase que ele migra. Mas implementar um processo de qualidade em todo ciclo de desenvolvimento envolve grande investimento financeiro. Sendo assim, para minimizar os riscos de falhas no produto final, a saída é priorizar a atividades mais importantes, etapas críticas e problemáticas. 

Segundo o PMBOK, a garantia da qualidade é a aplicação de atividades de qualidade planejadas e sistemáticas para garantir que o projeto irá empregar todos os processos necessários para atender aos requisitos. Levando esse conceito para o desenvolvimento de software, um bom processo de qualidade é aquele que cria uma relação íntima entre as fases de desenvolvimento e as atividades a serem desempenhadas pela equipe de qualidade, reforçando a idéia de um objetivo comum.

A qualidade deve ser garantida nos dois momentos do desenvolvimento de um software: o primeiro momento inclui a fase de coleta de informações de negócio, produzindo todos os artefatos previstos na metodologia empregada para desenvolver software de forma a mostrar a harmonia entre o negócio a ser atendido e o software a ser construído; esses documentos devem passar pelos testes de verificação; o segundo momento tem como característica a existência de um componente do aplicativo (parcial ou total) e deve-se avaliar se o produto que está em construção está aderente aos requisitos levantados, através dos testes de verificação.

Os testes de validação e de verificação devem ser sempre encarados como processos complementares e não como redundantes. Ambos fortalecem o processo de detecção de erros e aumentam a qualidade final do produto. Para que as empresas tenham um bom processo de qualidade de software elas devem adotar essas duas formas de testes para minimizar esforços garantindo os resultados mais positivos quanto possíveis.

Para se realizar o controle da qualidade do projeto devemos monitorar seus produtos de trabalho determinando se eles se encontram de acordo com os padrões de qualidade estabelecidos na etapa de planejamento e apontando maneiras de eliminar as causas de resultados insatisfatórios. Existem várias ferramentas que possibilitam a execução do processo de controle da qualidade. Podemos citar alguns exemplos:

• Diagrama de causa e efeito – permite estruturar as causas de determinado problema, bem como seus efeitos sobre a qualidade do produto;
• Elaboração de fluxogramas – é uma representação gráfica do processo, mostrando atividades, pontos de decisão e a seqüência dos procedimentos; pode auxiliar na identificação de pontos de ocorrência de problemas e como tratá-los;
• Diagrama de Pareto – é um histograma ordenado por freqüência de ocorrência, permitindo identificar e avaliar não-conformidades; os problemas que estão ocasionando maior quantidade de defeitos devem ser os primeiros a serem combatidos através das ações corretivas; é também conhecido como princípio 80/20, pois Pareto afirma que 80% dos problemas se devem a 20% das causas;
• Inspeção – determina se um produto de trabalho está de acordo com as normas; podem se concretizar através de revisões isoladas, revisões formais, reuniões de acompanhamento ou auditorias.

Qualquer tipo de erro gera prejuízo financeiro para a organização. Para garantirmos um produto de qualidade, devemos detectar esses erros o quanto antes nas etapas do desenvolvimento do software, criando atitudes e a consciência nos desenvolvedores de que tudo que está sendo feito pode comprometer a qualidade final do produto e, portanto deve ser feito segundo os padrões. A equipe de qualidade efetua um levantamento em bases estatísticas dos erros identificados, apontando os pontos de maior incidência de problemas, possibilitando ações corretivas eficazes durante o desenvolvimento do produto.

Através das atividades de qualidade podem-se dar condições ao gerente do projeto de manter os artefatos produzidos sob controle, pois eles estão sempre sendo avaliados no nível de atendimento aos requisitos funcionais e de qualidade, mantendo em alta a confiabilidade da equipe em relação ao projeto e ao seu prazo de entrega, já que os erros vão sendo identificados durante todo o ciclo de desenvolvimento. Esse é um dos fatores fundamentais para o sucesso do projeto.

Se quisermos chegar ao sucesso no desenvolvimento de um software, devemos conseguir minimizar os riscos, através de um bom processo de tomada de decisões. Esse processo não pode ser baseado apenas na intuição do gerente de projetos. Deve-se basear em informações que estão sendo geradas pelo próprio processo de desenvolvimento e pelo processo de garantia da qualidade, onde estamos registrando e controlando essas informações, para que possamos utilizá-las da forma mais inteligente possível, melhorando nossas decisões e resolvendo os problemas mais críticos.

Indique este artigo a um amigo

Indique o artigo