Copy-paste coding is a kind of misguided code reuse. You have a problem to
solve and you see a similar problem and its solution in your existing body of
code. So you copy and paste the solution, and make the necessary
modifications so that the solution matches your current problem.
Here's an example to make this more concrete: you've written a system that
allows departments in your organization to analyze their productivity; each
department has its own ideas about what it wants, so each has its own domain
logic. The sales department wants to be able to export data from the system
into a planning tool. After a few months in production, the personnel
department spies this particular feature and says they would like it as well.
No problem, says your boss; we already have that functionality in the system
so we can make it available to you in the next maintenance release.... (more)
Language tools such as compilers, interpreters, and code generators are a
critical part of the software development landscape. Any software project
will include several procured tools and very likely several in-house tools.
Experience shows that the only guarantee with such tools is change: the
underlying language may change due to improvements or extensions and the
functionality provided by the tool expands, driven by user-requested features
and the need to stay in front of the competition. The specific changes that
will be made are rarely known at the outset, but change is comi... (more)