Um cliente me pediu para fazer um redesenho de seu site, um aplicativo ASP.NET Webforms que foi desenvolvido por outro consultor. Parecia um trabalho relativamente simples, mas depois de analisar o código, fica claro que não é o caso.
Este aplicativo não foi escrito corretamente. Em absoluto. É extremamente vulnerável a ataques de injeção de SQL, a lógica de negócios está espalhada por todo o aplicativo, há muita duplicação e código de beco sem saída que não faz nada. Além disso, ele continua lançando exceções que estão sendo sufocadas, portanto o site parece funcionar sem problemas.
Meu trabalho é simplesmente atualizar o HTML e CSS, mas grande parte do HTML está sendo gerada na lógica de negócios e seria um pesadelo para resolver. Minha estimativa sobre o redesenho é maior do que o cliente estava buscando. Eles estão perguntando por que tanto tempo.
Como posso explicar ao meu cliente o quão ruim é esse código? Na sua opinião, o aplicativo está ótimo e o redesenho deve ser rápido. É a minha palavra contra o consultor anterior. Como posso dar exemplos simples e concretos que um cliente não técnico entenderá?
Atualizar
Obrigado por todas as respostas. A demonstração do ataque de injeção SQL faz sentido e eu demonstrarei isso em um ambiente de teste. Essa é apenas uma parte de muitos problemas neste aplicativo. Eu estava procurando maneiras de explicar por que outras partes (como html sendo gerado na camada de dados) precisariam ser substituídas por práticas recomendadas para que a atualização de html e css ocorra. Há muitas boas sugestões aqui, que vou juntar quando falar com meu cliente.
This application was not written well. At all.
Eles quase nunca são. :)
To make a change in the look of the living room, I had to go into the air-conditioning system.
Em um bom design modular, essas coisas não acontecem.