Klient poprosił mnie o przeprojektowanie swojej witryny - aplikacji ASP.NET Webforms opracowanej przez innego konsultanta. Wydawało się, że jest to stosunkowo prosta praca, ale po zapoznaniu się z kodem widać, że tak nie jest.
Ta aplikacja nie została dobrze napisana. W ogóle. Jest bardzo podatny na ataki typu SQL injection, logika biznesowa jest rozłożona na całą aplikację, jest dużo duplikacji, a kod ślepy zaułek nic nie robi. Co więcej, wciąż zgłasza wyjątki, które są tłumione, więc strona wydaje się działać płynnie.
Moim zadaniem jest po prostu aktualizacja HTML i CSS, ale większość HTML jest generowana w logice biznesowej i byłoby koszmarem do uporządkowania. Moje oszacowanie dotyczące przeprojektowania jest dłuższe niż oczekiwał klient. Pytają dlaczego tak długo.
Jak mogę wyjaśnić mojemu klientowi, jak zły jest ten kod? Ich zdaniem aplikacja działa świetnie, a przeprojektowanie powinno być szybkie. To moje słowo w stosunku do poprzedniego konsultanta. Jak mogę podać proste, konkretne przykłady, które zrozumie klient nietechniczny?
Aktualizacja
Dziękuję za wszystkie odpowiedzi. Demonstracja ataku iniekcyjnego SQL ma sens i pokażę to w środowisku testowym. To tylko część wielu problemów w tej aplikacji. Szukałem sposobów wyjaśnienia, dlaczego inne części (takie jak HTML generowane w warstwie danych) powinny zostać zastąpione lepszymi praktykami, aby aktualizacja HTML i CSS mogła mieć miejsce. Jest tu wiele dobrych sugestii, które poskładam, kiedy rozmawiam z moim klientem.
This application was not written well. At all.
Prawie nigdy nie są. :)
To make a change in the look of the living room, I had to go into the air-conditioning system.
W dobrej konstrukcji modułowej takie rzeczy się nie zdarzają.