Sto cercando una buona analogia o metafora che possa illustrare i problemi della programmazione di copia-incolla ai non programmatori. Di tanto in tanto 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 basi del codice. È una cosa che di solito scrivo 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é il copia-incolla non è una buona forma di riutilizzo). Ovviamente, posso (e faccio) spiegare il problema in termini di manutenzione del codice, ma sarebbe bello avere una buona analogia concisa per questo problema che colpirebbe i non-programmatori. Bonus se l'analogia illustra perché la ricerca e la sostituzione non è una soluzione efficace per questo problema. Qualche suggerimento?
Giusto per chiarire (sulla base della risposta di Jaroslav qui sotto) - Non sto parlando di usare frammenti di codice qui; quello che vedo (inquietantemente spesso) è la copia e incolla di vaste fette di codice o un pezzo di codice di dieci righe per ottenere alcuni dati utente (completi di query SQL inline) incollati in dozzine di pagine PHP o ASP.NET. Quindi, duplica il codice da un'altra parte nello stesso progetto.
Aggiornamento: ci sono molte risposte davvero buone qui; Ho spiegato nei commenti perché ho scelto la risposta di Scott Whitlock, ma vorrei anche raccomandare vivamente la risposta di whatsisname se hai a che fare con clienti che hanno familiarità con la produzione.