Pensei em diversas questões de qualidade visando mudar este cenário. Será que melhorias no processo de software ajudariam? Talvez sim! Mudanças no software, visando melhorar sua arquitetura, sua interface, sua segurança na gravação de dados? Talvez resolvesse também! Mas, talvez estas melhorias seriam melhor assimiladas por novos clientes, não acham? Ou será que os antigos clientes “reclamões” deixariam de ser assim?
A questão que gostaria que pensassem é que boa parte dos clientes não reclamam ou questionam por acaso. Não estou querendo defender necessariamente os clientes, pois realmente existem alguns que exageram. Mas, boa parte dos clientes que questionam, fazem isso com razão e não tenho dúvidas disso. O cliente conquista está razão quando perde a confiança no software.
A confiança de um sistema é uma propriedade que equivale à sua integridade. A integridade, no ponto de vista do usuário, consiste em operar o sistema, ter os resultados esperados e não “falhará” na sua utilização normal (SOMMERVILLE, 2003). Aí está o problema, pois a confiança é uma informação qualitativa e pode variar sua ponderação de um usuário para outro.
A confiança possui quatro dimensões:
FIGURA 1 - Dimensões da Confiança
Um bom índice de confiança só pode ser alcançado à custa do desempenho do sistema. Isto é, um software confiável inclui, por exemplo, código extra, muitas vezes redundante, para realizar a verificação necessária e possibilitar a recuperação a partir de falhas que possam ocorrer. Isto reduz o desempenho e aumenta a quantidade de armazenamento do sistema. Contudo, existe uma série de razões pelas quais a confiança é, em geral, um atributo mais importante que o desempenho (SOMMERVILLE, 2003):
1) Geralmente, os sistemas que não são confiáveis não apresentam segurança e em razão disso não são utilizados. Os usuários se recusam a utilizar um software que não for confiável. Se forem forçados a utilizar, eles boicotam o uso e armam uma verdadeira armadilha para retirar este software de seu dia-a-dia. Conseqüentemente, o cliente apenas aguarda o término do contrato e muda para outro, ainda mais nos dias de hoje onde há diversos fornecedores. O pior é que os usuários tendem a se recusar a utilizar outros produtos da empresa que produziu esse sistema. Logo, não adianta lançar um produto completamente novo se a confiança do usuário está afetada, pois fica marcado o produto e a própria empresa;
2) Os custos da falha de um sistema podem ser enormes. Imaginem se um software de controle de reator nuclear apresentar uma falha? Ou então, um software de controle de tráfego aéreo? O custo por uma falha num destes sistemas pode ser muito maior do que um simples bug a ser corrigido;
3) É extremamente difícil readquirir a confiança. Uma vez perdida a confiança com um cliente, o custo para readquiri-la e imensurável. Você pode ajustar um sistema ineficiente, mas uma vez não sendo confiável, melhorias serão de certo modo irrelevantes, pois o usuário considerará que o restante do sistema possui esta mesma ineficiência;
4) Freqüentemente, é possível compensar a falta de desempenho do sistema. Às vezes, os usuários podem adequar seu trabalho para atender a um sistema com desempenho inadequado. Todavia, uma falha na confiança geralmente surpreende o usuário. O software não confiável pode violar o sistema e os dados do usuário, sem aviso, e pode falhar, trazendo conseqüências sérias, que somente se manifestarão posteriormente;
5) Sistemas não confiáveis podem causar a perda de informações. É muito dispendioso coletar e manter dados. Algumas vezes, os dados são mais importantes do que o próprio sistema computacional. É preciso empregar muito dinheiro e esforço para duplicar dados valiosos e preservá-los, para que não sejam corrompidos.
A confiabilidade de um produto é influenciada pelo processo de software que leva ao desenvolvimento deste produto. Mas, como já foi dito, a confiabilidade é uma propriedade qualitativa e não pode ser medida, pois realmente é subjetiva e varia de um usuário mais rigoroso de outro menos rigoroso (SOMMERVILLE, 2003).
De qualquer forma, para minimizarmos que nossos clientes percam a confiança nos nossos softwares, temos de sempre tentar fazer o melhor possível no que tange a melhoria de sua qualidade, seja por ajustes no processo de software, no momento da codificação, na construção da arquitetura, das interfaces, dentre outras.
Como já foi dito, reconquistar a confiabilidade é algo muito difícil. As vezes, é melhor você partir para outra do que tentar remediar ou então, torcer para o usuário querer partir para outra antes e você conseguir dialogar novamente com o cliente e com seu novo usuário, já apresentando um software mais confiável.
Não se pode ganhar todas, mas há recursos suficientes hoje em dia que realmente nos permitem melhorar a qualidade e diminuir a desconfiança gerada para os usuários.
Referências Bibliográficas:
SOMMERVILLE, Ian. Engenharia de Software. 6ª ed. São Paulo: Pearson Addison Wesley, 2003.
Obrigado... Foi útil para o meu trabalho da faculdade.
ResponderExcluir