Któregoś dnia sprawdziłem kod napisany przez kogoś z mojego zespołu. Rozwiązanie nie było w pełni funkcjonalne, a projekt był zbyt skomplikowany - co oznacza, że zawiera niepotrzebne informacje, zawiera niepotrzebne funkcje i zasadniczo kod ma wiele niepotrzebnych złożoności, takich jak pozłacanie, i próbował rozwiązać problemy, które nie istnieją.
W tej sytuacji pytam „dlaczego to zrobiono w ten sposób?”
Odpowiedź brzmi: druga osoba miała ochotę to zrobić w ten sposób.
Następnie pytam, czy którakolwiek z tych funkcji była częścią specyfikacji projektu lub czy ma ona jakiekolwiek zastosowanie dla użytkownika końcowego, czy też jakieś dodatkowe dane zostaną przedstawione użytkownikowi końcowemu.
Odpowiedź brzmi nie.
Zatem sugeruję, aby usunął całą niepotrzebną złożoność. Odpowiedź, którą zwykle otrzymuję, brzmi: „dobrze, że już zostało zrobione”.
Uważam, że nie jest to zrobione, jest błędne, nie robi tego, czego chcą użytkownicy, a koszty utrzymania będą wyższe niż gdyby wykonano to w prostszy sposób, który zasugerowałem.
Równoważny scenariusz to:
Kolega spędza 8 godzin na ręcznym refaktoryzacji kodu, co można było automatycznie wykonać w Resharper w 10 sekund. Oczywiście nie ufam ręcznemu refaktoryzacji, ponieważ jest wątpliwej jakości i nie w pełni przetestowany.
Ponownie otrzymuję odpowiedź: „dobrze, że już zostało to zrobione”.
Jaka jest odpowiednia reakcja na to podejście?