All We Like Sheep: Copy/Paste as a Principled Engineering Tool


One Line Summary

Kent Beck called code duplication "#1 in the stink parade" of bad smells; so why do so many professional developers copy/paste anyway?


Duplicating code, also called code cloning, is often considered to be a sign of lazy development. Instead, we are urged to refactor, refactor, refactor, lest we incur technical debt! But not all code duplication is … umm … the same. In this talk, we’ll examine an empirical study on why, when, and how professional software developers often use copy/paste in a principled way. Examples will be given from three well known open source systems: Apache, Gnumeric, and the Linux kernel.


copy/paste, design techniques, open source systems


  • Mike-office

    Mike Godfrey

    University of Waterloo


    Associate professor at the University of Waterloo. Interested in the problems of software development. Researcher on software evolution, software analytics, program comprehension, pragmatic program analysis, code duplication analysis, and empirical software engineering.