Un cliente mi ha chiesto di eseguire una riprogettazione del proprio sito Web, un'applicazione Webform ASP.NET sviluppata da un altro consulente. Sembrava un lavoro relativamente semplice, ma dopo aver visto il codice, è chiaro che non è il caso.
Questa applicazione non è stata scritta bene. Affatto. È estremamente vulnerabile agli attacchi di SQL injection, la logica di business è diffusa in tutta l'applicazione, c'è un sacco di duplicati e un codice di vicolo cieco che non fa nulla. Inoltre, continua a generare eccezioni che vengono soffocate, quindi il sito sembra funzionare senza intoppi.
Il mio compito è semplicemente aggiornare HTML e CSS, ma gran parte dell'HTML viene generato nella logica di business e sarebbe un incubo da risolvere. La mia stima sulla riprogettazione è più lunga di quanto il cliente stesse mirando. Stanno chiedendo perché così tanto tempo.
Come posso spiegare al mio cliente quanto è pessimo questo codice? Nella loro mente, l'applicazione funziona alla grande e la riprogettazione dovrebbe essere rapida. È la mia parola contro il precedente consulente. Come posso dare esempi semplici e concreti che un cliente non tecnico capirà?
Aggiorna
Grazie per tutte le risposte. La dimostrazione degli attacchi con iniezione SQL ha senso e io la demo in un ambiente di test. Questa è solo una parte di molti problemi in questa applicazione. Stavo cercando dei modi per spiegare perché altre parti (come HTML generato nel livello dati) avrebbe bisogno di essere rimpiazzato con le migliori pratiche affinché l'aggiornamento html e css avvenga. Ci sono molti buoni suggerimenti qui che metterò insieme quando parlo con il mio cliente.