Warning: This blog entry was written two or more years ago. Therefore, it may contain broken links, out-dated or misleading content, or information that is just plain wrong. Please read on with caution.
Do you or someone you know suffer from CopyPasteItis? Do you know the warning signs? What do you do if you have it?
What is CopyPasteItis
CPI is an insidious disease which affects many developers and systems today. Unlike normal bugs, CopyPasteItis or CPI is not in of itself an error in a program. Rather CPI is an infection which only programmers are susceptible to.
CPI causes uncontrolled code duplication using the Copy - Paste facilities of modern computers and can result in huge code files, error duplication and maintenance nightmares.
Symptoms of CPI
Primary symptoms of CPI include an aversion to 'Source Control', an unnatural fear of 'Unit Tests' and reluctance to participate in coder community activities such as code reviews.
Secondary symptoms can include code files which rapidly grow in size. Numerous instances of the same error appearing in disparate parts of an application, and finally a high turnover of maintenance programmers.
How is it Spread
While CPI has been linked with the code writing gene which all programmers are born with, it is actually more closely related to the 'Lazy' and 'Good Enough' genes when you look at it under a microscope. For this reason it is not so much spread as activated.
How Is CPI Activated
CPI can become activated in a programmer for many reasons. Normally the activator is the programmers own personality/work ethic, however it can also be the result of outside influences such as;
The most common activator of CPI in an otherwise healthy programmer is excessive work load and unrealistic expectations. This requires that management must be aware of the workload a developer is under and be willing to manage expectations so that developers do not burn out.
Managing workload is probably the easiest way to reverse CPI but is also the least commonly used method.
Lack Of Peer Reviews and Positive Reinforcement
Another common activator is lack of positive management oversight. Any developer, no matter how skilled or diligent will fall into the CPI trap if management do not take an active role in positively reinforcing good coding standards. This is especially true in small departments where developers may not have adequate peer review opportunities.
Note that I say positive reinforcement because unhappy developers will never improve, while developers who feel appreciated will want to improve in (90% of cases).