Estoy buscando una buena analogía o metáfora que pueda ilustrar los problemas de la programación de copiar y pegar a los no programadores. De vez en cuando hago revisiones de código / sistema para clientes potenciales, y uno de los problemas comunes que veo son grandes cantidades de código de copiar y pegar en todas sus bases de código. Es algo que rutinariamente menciono en las revisiones, y cada vez tengo que explicar por qué esto es un problema (esto es especialmente difícil con clientes que saben lo suficiente sobre programación para comprender que la reutilización es algo bueno, pero no lo suficiente para entender por qué copiar y pegar no es una buena forma de reutilización). Obviamente, puedo (y hago) explicar el problema en términos de mantenimiento de código, pero sería bueno tener una analogía buena y concisa para este problema que afectaría a los no programadores. Bonificación si la analogía ilustra por qué buscar y reemplazar no es una solución efectiva para este problema. ¿Alguna sugerencia?
Solo para aclarar (según la respuesta de Jaroslav a continuación): no estoy hablando de usar fragmentos de código aquí; lo que veo (inquietantemente a menudo) es copiar y pegar grandes extensiones de código, o un fragmento de código de diez líneas para obtener algunos datos del usuario (completos con consulta SQL en línea) pegados en docenas de páginas PHP o ASP.NET. Por lo tanto, duplica el código de otra parte del mismo proyecto.
Actualización: hay varias respuestas realmente buenas aquí; He explicado en los comentarios por qué elegí la respuesta de Scott Whitlock, pero también recomendaría altamente la respuesta de whatsisname si se trata de clientes que están familiarizados con la fabricación.