Un client m'a demandé de refondre son site Web, une application de formulaires Web ASP.NET développée par un autre consultant. Cela semblait être un travail relativement simple, mais après avoir examiné le code, il est clair que ce n'est pas le cas.
Cette application n'a pas été bien écrite. Du tout. Il est extrêmement vulnérable aux attaques par injection SQL, la logique métier est répartie dans l’ensemble de l’application, il y a beaucoup de duplication et un code sans issue qui ne fait rien. En plus de cela, il continue à lancer des exceptions qui sont en train d'être étouffées, de sorte que le site semble fonctionner correctement.
Mon travail consiste simplement à mettre à jour le code HTML et CSS, mais une grande partie du code HTML est générée dans la logique métier et serait un cauchemar à résoudre. Mon estimation de la refonte est plus longue que ce que le client visait. Ils demandent pourquoi si longtemps.
Comment puis-je expliquer à mon client à quel point ce code est mauvais? Dans leur esprit, l'application fonctionne très bien et la refonte devrait être rapide et ponctuelle. C'est ma parole contre le consultant précédent. Comment puis-je donner des exemples simples et concrets qu'un client non technique comprendra?
Mise à jour
Merci pour toutes les réponses. La démonstration de l'attaque par injection SQL a du sens et je vais la démontrer dans un environnement de test. Ce n'est qu'une partie de nombreux problèmes dans cette application. Je cherchais des moyens d'expliquer pourquoi d'autres parties (telles que le code HTML généré dans la couche de données) devraient être remplacées par de meilleures pratiques pour que la mise à jour HTML et CSS ait lieu. Il y a beaucoup de bonnes suggestions ici que je vais rassembler quand je parlerai avec mon client.
This application was not written well. At all.
Ils ne le sont presque jamais. :)
To make a change in the look of the living room, I had to go into the air-conditioning system.
Dans une bonne conception modulaire, cela ne se produit pas.