are clones harmful for maintenance?
We often find clones in semantically related programs parts. This semantic relationship, not clones, is a prime reason for maintenance problems, as semantically related program parts must be changed in sync no matter of clones. Only clones resulting from bad design hinder program maintainability. Long-lived essential clones that should not or cannot be eliminated are mostly neutral in respect to maintenance effort, and in some cases even help in maintenance. On the other hand, the presence of such clones signifies program parts that often are more difficult to maintain than clone-free parts.
software clones similarity patterns clone detection