Un cliente me ha pedido que realice un nuevo diseño de su sitio web, una aplicación de formularios web ASP.NET que fue desarrollada por otro consultor. Parecía un trabajo relativamente sencillo, pero después de ver el código, está claro que no es el caso.
Esta aplicación no fue bien escrita. En absoluto. Es extremadamente vulnerable a los ataques de inyección de 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 lanzando excepciones que están siendo sofocadas, por lo que el sitio parece funcionar sin problemas.
Mi trabajo es simplemente actualizar el HTML y CSS, pero gran parte del HTML se genera en la lógica de negocios y sería una pesadilla resolverlo. Mi estimación sobre el rediseño es más larga de lo que el cliente estaba buscando. Se están preguntando 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 de manera excelente y el rediseño debería ser rápido y puntual. 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 de ataque de inyección SQL tiene sentido y lo demostraré en un entorno de prueba. Eso es solo una parte de muchos problemas en esta aplicación. Estaba buscando formas de explicar por qué otras partes (como el html que se genera en la capa de datos) tendría que ser reemplazado por mejores prácticas para que la actualización de html y css tenga lugar. Aquí hay muchas buenas sugerencias que voy a juntar cuando hable con mi cliente.