Un cliente me ha pedido que rediseñe su sitio web, una aplicación ASP.NET Webforms que fue desarrollada por otro consultor. Parecía un trabajo relativamente sencillo, pero después de mirar el código, está claro que ese no es el caso.
Esta aplicación no fue bien escrita. En absoluto. Es extremadamente vulnerable a los ataques de inyección SQL, la lógica de negocios se extiende por toda la aplicación, hay mucha duplicación y un código sin salida que no hace nada. Además de eso, sigue arrojando excepciones que se están sofocando, por lo que el sitio parece funcionar sin problemas.
Mi trabajo es simplemente actualizar el HTML y CSS, pero gran parte del HTML se está generando en la lógica empresarial y sería una pesadilla resolverlo. Mi estimación sobre el rediseño es más larga de lo que el cliente buscaba. Se preguntan por qué tanto tiempo.
¿Cómo puedo explicarle a mi cliente qué tan malo es este código? En su opinión, la aplicación se está ejecutando muy bien y el rediseño debería ser rápido. Es mi palabra contra el consultor anterior. ¿Cómo puedo dar ejemplos simples y concretos que un cliente no técnico entenderá?
Actualizar
Gracias por todas las respuestas. La demostración del ataque de inyección SQL tiene sentido y la demostraré en un entorno de prueba. Esa es solo una parte de muchos problemas en esta aplicación. Estaba buscando formas de explicar por qué otras partes (como la generación de html en la capa de datos) tendrían que ser reemplazadas por mejores prácticas para que la actualización html y css tenga lugar. Aquí hay muchas buenas sugerencias que reuniré cuando hable con mi cliente.
This application was not written well. At all.
Casi nunca lo son. :)
To make a change in the look of the living room, I had to go into the air-conditioning system.
En un buen diseño modular, tales cosas no suceden.