Os líderes de negócio encaram frequentemente a qualidade de software como um luxo - algo que pode ser sacrificado, se necessário, por maior funcionalidade, desenvolvimento mais rápido, ou custos mais baixos. No entanto, na prática, as organizações de desenvolvimento de software que mantêm um compromisso firme com a qualidade podem, de facto, acelerar o desenvolvimento, reduzir os custos e acrescentar novas funcionalidades com maior facilidade.
As empresas que desenvolvem software de baixa qualidade, seja para uso interno, ou para venda, estão constantemente a voltar atrás, gastando tempo e dinheiro a corrigir defeitos nos produtos "acabados". Pelo contrário, uma empresa que investe na qualidade do produto desde o início pode olhar em frente e ser inovadora. Pode investir os seus recursos no aproveitamento de novas oportunidades. A disponibilização de qualidade é também um factor de diferenciação num mercado onde o software de elevada qualidade é actualmente a excepção, em vez da regra.
Quando avalia os esforços de desenvolvimento de software na sua empresa, o que vê? Existe um enfoque na qualidade? Em que se baseia esse enfoque e onde falha? O facto é que a qualidade não é uma coisa. É qualidade. Isto significa que deveria ser uma preocupação em todos os passos do processo. Compreender isto, é a chave para a criação de um processo verdadeiramente bem sucedido para a disponibilização de aplicações.
Mas por onde devemos começar? Apesar da reacção imediata e básica perante a melhoria da qualidade consistir na expansão da equipa de testes, essa não é, provavelmente, a melhor abordagem. Em vez disso, podemos começar por mudar a forma de pensar dentro da organização, de modo a que o enfoque passe a residir na qualidade. No entanto, este esforço requer liderança por parte da gestão de topo. Este artigo irá falar das vantagens do incentivo da qualidade dentro de uma organização.
Definição de qualidade
Para qualquer empresa, definir o que entende por qualidade é um importante primeiro passo. Muitas vezes, as empresas que desenvolvem software trabalham com uma noção vaga e geral de qualidade, e toleram defeitos que a maioria das disciplinas de engenharia não permitiriam. Pelo contrário, uma definição sólida de qualidade que todos os membros da equipa entendam e aceitem, promove o cuidado e a atenção aos detalhes.
No domínio das aplicações de negócio, podemos definir melhor a qualidade em termos de público alvo: os utilizadores de software. As empresas de desenvolvimento com enfoque na qualidade, sabem que uma aplicação de "qualidade" tem que fazer mais do que fornecer simplesmente resultados correctos sem deixar de funcionar. Será que a aplicação vai de encontro aos requisitos dos stakeholders? É utilizável? Segura? Escalável? Fiável? Fácil de manter? Facilmente expansível? Fácil de monitorizar?
A definição de James Juran fornece um bom ponto de partida: a qualidade é a "adequação ao uso". E continua com a afirmação de que um produto não é de elevada qualidade se não acrescentar valor para o consumidor e para o fornecedor. Vista de outra forma ligeiramente diferente, a qualidade abarca o valor acrescentado e a atenção aos detalhes.
Tanto um carro de luxo, como um carro da gama baixa podem transportar-nos do ponto A para o ponto B. No entanto, o carro de luxo disponibiliza funcionalidades e capacidades que vão para além do essencial do transporte: usabilidade, segurança, conforto, fiabilidade, etc. A qualidade do produto também reflecte o processo que está atrás do produto.
No mundo do software, um processo de grande qualidade pode fazer com que as organizações de desenvolvimento deixem de perder tempo a refazer trabalho já feito. Estas organizações podem produzir produtos mais inovadores e criativos, uma vez que dispõem de mais tempo para acrescentar valor e pensar em detalhes de qualidade.
Para se alcançarem resultados de qualidade, é necessária a adopção de processos de alta qualidade durante o desenvolvimento, integração e testes. Isto aplica-se igualmente aos projectos que envolvem aplicações standard, desenvolvidas internamente, actualizações, ou desenvolvimento a partir do zero, bem como à extensão, integração e modernização de aplicações existentes.
Vantagens para o negócio decorrentes do enfoque na qualidade
Tal como pressupõe a definição de Juran, não é apenas o cliente que beneficia com o enfoque na qualidade elevada. As empresas que valorizam a qualidade tornam-se mais inovadores, aumentam a sua capacidade de resposta e a sua diferenciação concorrencial, e reduzem grandemente o seu custo total de desenvolvimento e de posse. De seguida, analisamos estas vantagens mais em pormenor.
a) A qualidade permite aumentar a capacidade de resposta e a inovação
As organizações de sucesso reconhecem a importância da inovação e da diferenciação contínua, algo que requer respostas rápidas às alterações constantes na paisagem empresarial. A flexibilidade e a maleabilidade do software permitem essa resposta rápida, e as organizações que fazem do desenvolvimento de software o seu negócio de base, rapidamente se destacam face às demais.
No entanto, as grandes vantagens do software são também o que o torna tão vulnerável. Uma pequena alteração numa aplicação pode produzir uma falha que pode deitar abaixo todo o sistema e debilitar a empresa. Sabendo disto, as equipas de desenvolvimento de software assumem, por vezes, uma mentalidade do tipo "resolver o problema mais tarde", avançando com produtos que sabem ter falhas - uma liberdade que nenhuma outra disciplina da engenharia permitiria.
Quando o Global CEO Study 2004 da IBM entrevistou 450 CEOs em todo o mundo sobre os seus problemas estratégicos, as suas ambições e preocupações, classificaram a capacidade de resposta como o seu objectivo número um, seguindo-se de perto os objectios "produtos novos e diferenciadores", "eficiência operacional" e "melhores modelos de negócio".
No ambiente empresarial dos nossos dias, as empresas precisam de inovar, de reagir rápida e eficientemente à mudança, e de se diferenciarem da concorrência. No entanto, se os sistemas de software internos de uma organizações tiverem falhas, ou se as equipas de desenvolvimento dos produtos estiverem constantemente a lutar para resolver os problemas dos lançamentos do ano passado, as empresas não conseguirão alcançar os objectivos referidos atrás.
Para actuar com sucesso num mundo a pedido, as empresas terão que ter um enfoque de tipo laser na qualidade, desenvolvendo e mantendo ao mesmo tempo os sistemas de software de que dependem. São os sistemas de qualidade que permitem às empresas reagir, adaptar e implementar rapidamente novas soluções, bem como manter a vantagem competitiva.
b) A qualidade como elemento diferenciador
Enquanto disciplina, o desenvolvimento de software tem padrões de qualidade muito inferiores a outras disciplinas de engenharia. Os gestores e os especialistas em desenvolvimento são bons na racionalização dos pontos fracos dos seus produtos. Segundo eles, a funcionalidade que disponibilizam é "melhor do que nada" ou "melhor do que o sistema anterior", e existem cópias manuais em backup, no caso do sistema falhar.
Imagine agora se um engenheiro civil falasse de forma idêntica sobre o colapso de um edifício? Ou se um engenheiro aeronáutico encolhesse os ombros no caso de um painel de controlo deixar de funcionar em pleno voo? Para apoiarem o negócio de forma eficaz, os engenheiros de software também têm que adoptar uma política de tolerância zero relativamente aos defeitos.
Que diferença pode fazer um software de elevada qualidade para uma empresa no mercado? Considere a indústria automóvel dos anos 1960 e 70. Os fabricantes japoneses adoptaram um programa rigoroso de garantia de qualidade e rapidamente ganharam a reputação de produzirem carros altamente eficientes, com um bom design e fiáveis. Esta qualidade superior colocou os seus produtos noutro patamar e fez aumentar a qualidade em todo o sector.
Isto também permitiu aos fabricantes japoneses desenvolverem mais inovações para promover a eficiência no consumo de combustível, a segurança e os processos de produção, à medida que a concorrência se ia aproximando.
Da mesma forma, quando uma empresa, em qualquer sector, produz software de maior qualidade, quer para uso interno, ou para venda - está a elevar a fasquia. A qualidade dos recursos humanos, financeiros e dos sistemas de relacionamento com os clientes de uma empresa afecta a actividade das empresas de uma forma que é mais difícil de quantificar do que as vendas externas.
No entanto, o impacto no negócio é igualmente importante. Na realidade, os sistemas internos de alta qualidade podem ser um elemento de negócio diferenciador. As organizações de TI mais orientadas adquirem tipicamente aplicações para automatizar funções de negócio comuns e constróem apenas software e sistemas que são únicos para o seu negócio. Se esses sistemas únicos também forem de elevada qualidade, as empresas terão vantagem face à concorrência.
c) A qualidade é (quase) gratuita
Um estudo encomendado pelo Instituto Nacional de Standards e Tecnologia do Departamento de Comércio dos Estados Unidos, chegou à conclusão que os defeitos de software custam anualmente à economia norte-americana cerca de 60 mil milhões de dólares. O estudo também chegou à conclusão que cerca de 80 por cento dos fundos de desenvolvimento são utilizados pelos técnicos que desenvolvem o software na identificação e correcção de defeitos.
Noutro estudo, o Standish Group revelou que os projectos de desenvolvimento de software cancelados custam às organizações cerca de 55 mil milhões de dólares por ano. Claramente, a fraca qualidade do software - e dos processos de desenvolvimento - são um grande problema para a rentabilidade do negócio.
As razões para os elevados custos da fraca qualidade variam de acordo com a raiz do problema. Por exemplo, uma análise pobre do domínio do problema - e, consequentemente, requisitos pobres - pode conduzir à repetição de trabalho não planeada e cara. Quando se espera até ao fim para validar a qualidade através de testes, o resultado é inevitavelmente o não cumprimento dos prazos e a dilatação do orçamento.
Uma paragem operacional, causada por problemas de fiabilidade ou de desempenho, pode resultar em custos de oportunidade se os clientes não forem capazes de aceder ao sistema ou se a empresa não conseguir realizar seu trabalho. Outros problemas de base incluem os processos mal definidos (com uma aceitação inconsistente por parte das pessoas), a inexistência de garantia da qualidade arquitectural ou do código, e a monitorização e avaliação limitada após a implementação.
Mas qual é o custo da elevada qualidade? O especialista Philip Crosby insiste na ideia de que a qualidade é gratuita. Idealmente, uma organização de desenvolvimento de software deveria ter as seguintes características:
Apesar dos intangíveis que fazem com que uma organização funcione de forma eficiente - boa gestão, pessoal adequado, processos consistentes?- precisarem de investimentos antecipados em termos de gestão do tempo, planeamento e formação, não se incorre em custos financeiros adicionais.
Uma ideia errada comum acerca da qualidade é que podemos trocá-la pelo aumento da rapidez de desenvolvimento, pela redução de custos, ou pela adição de funcionalidades. Muitas pessoas acreditam, de facto, na máxima de Meskimen relativamente à qualidade: "nunca há tempo para fazer as coisas bem feitas, mas há sempre tempo para as fazer". No entanto, na prática, a maior parte das organizações chegam à conclusão que o oposto é verdadeiro.
A longo prazo, é a melhoria da qualidade que permite às equipas a entrega de mais projectos dentro do prazo estipulado, a custos mais reduzidos e com mais funcionalidades. Uma equipa de desenvolvimento que assegure continuamente a qualidade faz as coisas bem à primeira vez. Se eliminarmos os defeitos ao longo do processo de desenvolvimento, também estaremos a eliminar o tempo e os custos necessários para identificar e resolver esses defeitos mais tarde.
Impor a qualidade de cima para baixo
Para se garantir continuamente a qualidade é necessário o compromisso e a dedicação de todos, começando pela liderança de topo da organização. Apesar da metodologia não precisar de ser tão formal quanto as metodologias de melhoria organizacional, como a Six Sigma, ou a Total Quality Management (TQM), a verdade é que requer o mesmo tipo de liderança e envolvimento organizacional requerido pelas metodologias mais formais. A melhoria da qualidade é essencialmente um estado de espírito.
Quando os gestores de topo estimulam uma cultura de qualidade em toda a organização, isso irá contagiar todos os projectos. Quando se trabalha envolvido nesta cultura, os gestores obtêm grandes vantagens. Por exemplo, deixam de ter que ponderar as consequências da entrega de produtos com defeitos conhecidos. Por sua vez, os processos rigorosos, a responsabilidade da equipa, e as métricas objectivas que contribuem para a produção de qualidade, também criam previsibilidade.
Em vez de reformularem incessantemente os projectos e, mesmo assim, ultrapassarem os prazos de entrega, as equipas podem calcular a abrangência, realizar estimativas, e efectuar a calendarização de forma realista, comprometendo-se depois confortavelmente com a entrega dentro dos prazos e de acordo com as especificações.
Baseado num artigo intitulado "The business value of software quality", da autoria de Geoffrey Bessin, market manager, software quality products, IBM Rational.
Produzido em 2006