Sto cercando una buona analogia o metafora che possa illustrare i problemi della programmazione copia-incolla ai non programmatori. Occasionalmente eseguo revisioni di codice / sistema per potenziali clienti e uno dei problemi comuni che vedo sono enormi quantità di codice copia-incolla su tutte le loro basi di codice. È qualcosa che chiamo abitualmente nelle recensioni e ogni volta devo spiegare perché questo è un problema (questo è particolarmente difficile con i clienti che sanno abbastanza sulla programmazione per capire che il riutilizzo è una buona cosa, ma non abbastanza per capire perché copia-incolla non è una buona forma di riutilizzo). Ovviamente, posso (e fare) spiegare il problema in termini di manutenzione del codice, ma sarebbe bello avere una buona e concisa analogia per questo problema che colpirebbe i programmatori. Bonus se l'analogia mostra perché la ricerca e sostituzione non è una soluzione efficace per questo problema. Eventuali suggerimenti?
Solo per chiarire (in base alla risposta di Jaroslav di seguito) - Non sto parlando di utilizzare frammenti di codice qui; quello che vedo (spesso in modo inquietante) è la copia e incolla di vaste strisce di codice, o un pezzo di codice a dieci righe per ottenere alcuni dati utente (completi di query SQL incorporata) incollati in dozzine di pagine PHP o ASP.NET. Quindi, duplica il codice da un'altra parte dello stesso progetto.
Aggiornamento: ci sono molte risposte davvero buone qui; Ho spiegato nei commenti perché ho scelto la risposta di Scott Whitlock, ma raccomanderei caldamente anche la risposta di whatsisname se hai a che fare con clienti che hanno familiarità con la produzione.