Processo de Desenvolvimento de Sistemas com Qualidade
O NOVO PARADIGMA - PRODUZIR COM QUALIDADE
VISÃO GERAL
Todo trabalho de desenvolvimento de software tem como um dos seus objetivos obter um resultado final que atenda aos requisitos do cliente e seja isento de erros. Para atingir tal objetivo, observa-se que as metodologias vigentes estabelecem formalismos para o processo e adotam fortemente o conceito de revisões técnicas e gerenciais durante o andamento do projeto, visando identificar desvios, o mais cedo possível, em relação à sua geração, evitando-se, deste modo, a propagação de erros para fases posteriores, o que aumentaria o custo para correção do desvio. Nessa abordagem, para se atingir um nível adequado de eficiência, requer-se um trabalho exaustivo de verificação, que por vezes pode vir a comprometer os resultados do projeto em termos de produtividade e de prazo para conclusão, uma vez que o processo de revisão demanda, para sua própria consecução, esforço específico para preparação e execução da revisão, decorrendo, então, retrabalho para correção de erros e implementação de melhorias.
Por outro lado, para que se possa assumir o risco de restringir-se os produtos intermediários que necessitam ser avaliados com maior rigor, é necessário que o próprio processo de elaboração do produto assegure a qualidade do mesmo. Além da vantagem da maior agilidade do processo, esta abordagem tem como ganho adicional um melhor nível do moral da equipe de desenvolvimento, posto que a existência de erros é um fator frustrante para quem o produz, e o trabalho para sua correção é mais desgastante que o esforço empregado para a primeira execução da tarefa.
O paradigma Produzir com Qualidade propõe uma mudança em relação à abordagem comumente adotada, criando mecanismos que asseguram a qualidade do produto durante a sua própria execução, através de etapas que visam avaliar e questionar a atividade a ser executada, além de definir orientações que devem ser observadas durante a execução. A figura 1 representa um modelo das etapas que compõem essa nova abordagem, e que são detalhadas nos itens a seguir.
FIGURA 1 - MODELO PARA EXECUÇÃO DAS IDADES
ETAPAS DO NOVO PARADIGMA
1 AVALIAR VIABILIDADE
As ações de garantia de qualidade dessa etapa visam aplicar princípios gerais de qualidade, válidos para todas as fases de desenvolvimento dos sistemas, de modo a conduzir a realização das tarefas em condições favoráveis, que possibilitem alcançar resultados com alto índice de qualidade e produtividade.
A avaliação da viabilidade de realização de uma atividade qualquer, dentro do ciclo de desenvolvimento de sistemas, deverá ser feita considerando os requisitos e restrições estabelecidos para a atividade, que devem ser obtidos a partir de seleção nos requisitos e restrições gerais do sistema.
Para avaliação da viabilidade, deverão ser considerados os seguintes tópicos:
1.1 A atividade atende aos objetivos do sistema?
Caso a atividade não esteja vinculada a qualquer objetivo, os objetivos precisarão ser revistos, ou a atividade é desnecessária ou é, até mesmo, conflitante com os objetivos do sistema, não devendo ser executada.
1.2 Os requisitos estão todos especificados?
Requisitos funcionais, requisitos de qualidade para o sistema, requisitos de performance, requisitos de segurança de acesso a informações, requisitos de risco envolvido em caso de falhas no resultado da atividade.
A execução de uma tarefa buscando resultados com qualidade exige que os requisitos necessários estejam especificados de forma clara, precisa e explícita
1.3 As restrições estão explicitadas?
Se o sistema possuir restrições que devem ser consideradas, as atividades necessárias para o desenvolvimento do sistema são afetadas pelas restrições. O executor da atividade deverá ter claras quais são as restrições associadas à sua atividade, de maneira a considerá-las no projeto.
1.4 A atividade a ser executada é necessária?
Toda atividade de projeto deve ter alguma finalidade que contribua com a realização do mesmo. Deste modo, devem ser tomadas precauções no sentido de se evitar a presença de atividades parasitas no processo, que consomem recursos e tempo, não agregando qualquer valor ao produto. Para a avaliação da validade da atividade, poderão ser respondidas questões como:
- O pressuposto para a realização da atividade está correto?
- O que acontece se a atividade não for feita?
1.5 O momento para a execução é o adequado?
Algumas atividades podem ser executadas a qualquer momento, independentemente de requisitos prévios que as viabilizem, ou ainda facilitem sua realização. Nesse caso, a opção para executar a atividade depende da existência de recursos e da prioridade de aplicá-los numa ou noutra tarefa. Por outro lado, há situações em que é necessária a realização de atividades preliminares, que proporcionam maior clareza aos requisitos da atividade em questão ou, ainda, podem produzir como componentes reusáveis para a mesma.
1.6 O produto já não existe pronto?
A existência de um produto pronto que possa ser aproveitado integralmente ou, ainda, com algumas modificações, possibilita um grande ganho de produtividade e de tempo.
2 PLANEJAR EXECUÇÃO
O planejamento de cada atividade específica a ser realizada visa estabelecer condições necessárias para que se possa obter resultados com nível de qualidade adequado.
O enfoque tradicional para a realização das tarefas do ciclo de desenvolvimento de sistemas acaba por deixar de lado atividades de análise de problema e planejamento da solução, direcionando esforços, no menor tempo possível, para a execução da tarefa. Como todo trabalho de natureza intelectual - como se caracteriza a maior parte das atividades de desenvolvimento de sistemas - exige a realização de um projeto preliminar à execução, conclui-se que o planejamento sempre é realizado, porém de forma intuitiva e sem o rigor necessário para possibilitar a obtenção de elevados níveis de qualidade no produto gerado. Esta simplificação pode ser explicada pela reação dos indivíduos em executarem atividades centradas em pensamento e avaliação de alternativas, encontrando conforto em atividades operacionais que tragam a sensação de realização concreta do produto final esperado.
O paradigma de Produzir com Qualidade pretende quebrar o estilo de ação operacional, que produz resultados que precisam ser posteriormente verificados e corrigidos, num ciclo oneroso de atividades operacionais, para a realização da tarefa apoiada em base sólida que resulte em produtos de qualidade com mínimo retrabalho.
Como resultado da etapa de planejamento da execução deverão ser obtidos os seguintes itens:
2.1 Requisitos para a atividade
O entendimento da tarefa a ser realizada é fundamental para sua execução com qualidade e produtividade. Desta forma, deverão estar definidos de modo claro e sem ambigüidade os seus requisitos funcionais, especificando-se as ações que deverão ser cumpridas pelo produto a ser gerado.
2.2 Produtos esperados
No planejamento da execução da atividade, deverão estar especificados todos os produtos necessários para considerar a tarefa concretizada com qualidade. Assim sendo, deverão ser definidos, além do produto principal, produtos intermediários, documentação, dados para validação e outros específicos de cada atividade.
2.3 Métodos
A elaboração de uma tarefa não pode ser feita segundo uma escolha aleatória de métodos, devendo haver consistência entre os métodos aplicados no decorrer do desenvolvimento, de modo a permitir maior clareza, além de possibilitar processos científicos de derivação de uma atividade para outra, ou até mesmo o uso de ferramentas automatizadas de suporte à engenharia de software (CASE).
2.4 Padrões
No paradigma de Produzir com Qualidade, para cada atividade deverão ser definidos os padrões a serem utilizados, sejam eles internacionais, nacionais, da organização ou ainda padrões do próprio projeto, quando não houver definição nos demais níveis.
2.5 Recursos humanos
Cada tarefa deverá estar associada a um técnico capacitado para realizá-la, ou então deverão ser tomadas ações de contorno. Não se admite, neste paradigma, que as tarefas sejam executadas de forma experimental, sem qualquer garantia quanto aos resultados, fazendo-se uma aposta no potencial das pessoas, sem que se criem condições para que essas, efetivamente, consigam utilizar seu potencial de maneira produtiva.
2.6 Dimensionamento do esforço
A questão de qualidade de um produto de software está associada ao atendimento dos requisitos funcionais, além de outros requisitos de uso do software, além de dois outros fatores de caráter gerencial que são o custo e o prazo para desenvolvimento.
No processo de desenvolvimento de software foram criados pressupostos básicos que persistem ao longo do tempo. Um dos pressupostos é que prazo e custo sempre são extrapolados em projetos. Essa lacuna de qualidade, que efetivamente se comprova em qualquer análise histórica, tem raízes na maneira com que são feitas as estimativas de esforço e prazo para realização das tarefas.
2.7 Dimensionamento de prazos
As estimativas de prazos para realização de tarefas de desenvolvimento de sistemas é outro fator importante de impacto na qualidade do serviço, tendo em vista que o não cumprimento de prazos gera frustrações e descrédito junto ao cliente.
O dimensionamento prévio do esforço para realização de uma tarefa é requisito para o estabelecimento de uma estimativa de prazos com maior grau de certeza. Além do esforço previsto, há ainda outros fatores influência, tais como interdependências entre tarefas, processo de comunicação entre membros da equipe que realiza o trabalho, além de fatores externos que podem prejudicar o andamento do trabalho, como, por exemplo, cancelamento de reuniões pré-agendadas.
2.8 Requisitos de qualidade
A norma ISO/IEC 9126 que define características e subcaracterísticas de qualidade de software pode ser utilizada como referência para especificação dos atributos de qualidade a serem contratados para os sistemas, e como base em todo processo de desenvolvimento do sistema, seja na execução das atividades, bem como durante as revisões de qualidade ou, ainda. nas atividades necessárias para a validação e aceitação por parte do usuário.
Tomando como base essa norma, é possível estabelecer uma orientação geral para desenvolvimento de software, considerando as suas fases de projeto e construção e as ações que precisam ser tomadas nas diversas atividades, no sentido da garantia de qualidade, segundo a ótica das características e subcaracterísticas definidas na norma.
Independentemente da explicitação por parte do usuário quanto aos atributos esperados para cada característica e subcaracterística, de qualidade do produto, é importante que, para cada fase, sejam estabelecidos critérios de qualidade a serem observados durante a atividade de "PlANEJAR A EXECUÇÃO" e, também, na própria execução de cada tarefa, de modo que haja, no mínimo, avaliação de que critérios de qualidade interferem na execução de cada tarefa. Sempre que possível, devem ser explicitadas dimensões de qualidade esperada para os produtos gerados em cada fase do projeto.
No paradigma de Produzir com Qualidade, a observação prévia das características e subcaracterísticas esperadas orientará a execução das atividades, como um checklist de apoio à obtenção de produtos segundo a qualidade esperada, além de servir como referência durante as atividades de revisão técnica para avaliação da qualidade do produto.
Considerando a Metodologia de Desenvolvimento de Serviços utilizada na CELEPAR, e mais especificamente o Roteiro de Análise e Construção de Sistemas (RACS), serão relacionadas a seguir as características e subcaracterísticas a serem consideradas em cada fase do roteiro, de maneira a conduzir o processo à geração de produtos com a qualidade projetada. A tabela 1 apresenta um resumo das características e subcaracterísticas de qualidade relacionadas às fases e atividades do RACS.
3 EXECUTAR ATIVIDADE
Cumpridos os requisitos de planejamento estabelecidos na etapa anterior, pode-se passar à execução da tarefa, com as orientações necessárias para a geração de produtos especificados, segundo a qualidade esperada e dentro de prazos contratados. É importante observar que, no paradigma de Produzir com Qualidade, a execução da tarefa necessita estar totalmente vinculada aos resultados obtidos na etapa de planejamento, cabendo aos executores referenciarem-se, durante toda a execução de sua tarefa, aos produtos gerados anteriormente, considerando concluído o trabalho apenas quando estiverem atendidos os requisitos e orientações previamente estabelecidas.
4 AVALIAR PRODUTO
A avaliação de produtos, seja através de revisões técnicas informais, formais ou até mesmo via inspeções detalhadas, tem sido o mecanismo mais usualmente utilizado para garantia de qualidade de produto de software. O nível de rigor a ser aplicado na avaliação do produto depende de seu grau de criticidade em relação ao processo e, também, ao uso ao qual será destinado o software que está sendo produzido. No paradigma de Produzir com Qualidade, espera-se que o nível de erros ou não aderência a padrões e requisitos estabelecidos seja limitado pelas ações a serem tomadas antes e durante a execução de cada tarefa. Porém, conforme as conveniências de cada serviço e até mesmo da maturidade da equipe de desenvolvimento em relação ao novo paradigma, deverão ser executadas revisões técnicas para avaliação dos produtos gerados.
5 CORRIGIR PRODUTO
Nessa etapa, deverão ser introduzidas as modificações necessárias para que o produto venha a atender satisfatoriamente aos requisitos estabelecidos. As recomendações da equipe de revisão deverão ser avaliadas e, se procedentes, deverão ser implementadas; caso contrário deverão ser justificadas. Na atividade de correção de erros deverão ser tomados cuidados especiais para que não sejam introduzidos novos erros decorrentes das alterações efetuadas. Deve ser lembrado, também, que, mesmo nessa etapa, deverão ser mantidos presentes os requisitos estabelecidos na etapa de planejamento. Caso algum erro tenha sido causado por especificação incorreta gerada naquela etapa, deverá ser solucionado no contexto da mesma.
CONCLUSÃO
Este artigo apresenta um resumo da Monografia apresentada ao Curso de Especialização em Desenvolvimento das habilidades de Gestão na Pontifícia Universidade Católica do Paraná, abordando um novo paradigma para desenvolvimento de software com qualidade. Na monografia, os conceitos aqui apresentados estão melhor detalhados e subsidiados por pesquisa exploratória e bibliográfica.