Szukam dobrej analogii lub metafory, która mogłaby zilustrować problemy związane z programowaniem kopiuj-wklej dla nie-programistów. Od czasu do czasu przeprowadzam przeglądy kodu / systemu dla potencjalnych klientów, a jednym z typowych problemów, które widzę, jest ogromna ilość kodu kopiuj-wklej we wszystkich bazach kodu. Jest to coś, co rutynowo wzywam w recenzjach i za każdym razem muszę wyjaśnić, dlaczego jest to problem (jest to szczególnie trudne w przypadku klientów, którzy wiedzą wystarczająco dużo o programowaniu, aby zrozumieć, że ponowne użycie jest dobre, ale nie wystarczająco, aby zrozumieć, dlaczego kopiuj-wklej nie jest dobrą formą ponownego użycia). Oczywiście potrafię (i robię) wyjaśnić problem w zakresie utrzymania kodu, ale byłoby miło mieć dobrą, zwięzłą analogię do tego problemu, który trafiłby do domu z nie-programistami. Premia, jeśli analogia ilustruje, dlaczego wyszukiwanie i zamiana nie jest skutecznym rozwiązaniem tego problemu. Jakieś sugestie?
Tylko dla wyjaśnienia (na podstawie odpowiedzi Jaroslava poniżej) - nie mówię tu o stosowaniu fragmentów kodu; To, co widzę (niepokojąco często), to kopiowanie i wklejanie rozległych obszarów kodu lub dziesięcioliniowego fragmentu kodu w celu wklejenia niektórych danych użytkownika (wraz z wbudowanym zapytaniem SQL) do dziesiątek stron PHP lub ASP.NET. Powtórz kod z innego miejsca w tym samym projekcie.
Aktualizacja: Jest tu kilka naprawdę dobrych odpowiedzi; W komentarzach wyjaśniłem, dlaczego wybrałem odpowiedź Scotta Whitlocka, ale gorąco polecam również odpowiedź whatsisname, jeśli masz do czynienia z klientami, którzy w ogóle znają się na produkcji.