Un cliente mi ha chiesto di riprogettare il suo sito Web, un'applicazione ASP.NET Webform sviluppata da un altro consulente. Sembrava un lavoro relativamente semplice, ma dopo aver esaminato il codice, è chiaro che non è così.
Questa applicazione non è stata scritta bene. Affatto. È estremamente vulnerabile agli attacchi di SQL injection, la logica di business è diffusa in tutta l'applicazione, c'è molta duplicazione e il codice vicolo cieco che non fa nulla. Inoltre, continua a generare eccezioni che vengono soffocate, quindi il sito sembra funzionare senza problemi.
Il mio compito è semplicemente aggiornare HTML e CSS, ma gran parte dell'HTML viene generato nella logica aziendale e sarebbe un incubo da risolvere. La mia stima sulla riprogettazione è più lunga di quanto il cliente mirasse. Stanno chiedendo perché così a lungo.
Come posso spiegare al mio cliente quanto sia cattivo questo codice? Nella loro mente, l'applicazione funziona alla grande e la riprogettazione dovrebbe essere una tantum una tantum. È la mia parola contro il precedente consulente. Come posso fornire esempi semplici e concreti che un cliente non tecnico capirà?
Aggiornare
Grazie per tutte le risposte. La dimostrazione dell'attacco con iniezione SQL ha senso e lo dimostrerò 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 l'html generato nel livello dati) avrebbero dovuto essere sostituite con migliori pratiche per consentire l'aggiornamento dell'html e del CSS. Ci sono molti buoni suggerimenti qui che metterò insieme quando parlo con il mio cliente.
This application was not written well. At all.
Quasi mai lo sono. :)
To make a change in the look of the living room, I had to go into the air-conditioning system.
In un buon design modulare, queste cose non accadono.