Je cherche une bonne analogie ou métaphore qui pourrait illustrer les problèmes de programmation copier-coller pour les non-programmeurs. Je fais de temps en temps des revues de code / système pour des clients potentiels, et l'un des problèmes communs que je vois sont de grandes quantités de code copier-coller sur toutes leurs bases de code. C'est quelque chose que j'appelle régulièrement dans les critiques, et chaque fois je dois expliquer pourquoi c'est un problème (c'est particulièrement difficile avec les clients qui en savent juste assez sur la programmation pour comprendre que la réutilisation est une bonne chose, mais pas assez pour comprendre pourquoi copier-coller n'est pas une bonne forme de réutilisation). Évidemment, je peux (et je fais) expliquer le problème en termes de maintenance de code, mais ce serait bien d'avoir une bonne analogie concise pour ce problème qui toucherait les non-programmeurs. Bonus si l'analogie illustre pourquoi la recherche et le remplacement ne sont pas une solution efficace à ce problème. Aucune suggestion?
Juste pour clarifier (basé sur la réponse de Jaroslav ci-dessous) - Je ne parle pas d'utiliser des extraits de code ici; ce que je vois (de manière inquiétante souvent), c'est copier-coller de vastes étendues de code, ou un morceau de code de dix lignes pour obtenir des données utilisateur (avec requête SQL en ligne) collées dans des dizaines de pages PHP ou ASP.NET. Donc, dupliquez le code d'ailleurs dans le même projet.
Mise à jour: Il y a plusieurs très bonnes réponses ici; J'ai expliqué dans les commentaires pourquoi j'ai choisi la réponse de Scott Whitlock, mais je recommanderais également très, fortement la réponse de whatsisname si vous avez affaire à des clients qui sont familiers avec la fabrication.