Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convince a colleague that code duplication is bad?

A colleague of mine was implementing a new feature in a project we work on together and he did it by taking a file containing the implementation of a similar feature from the same project, creating a copy of it renaming all the global declarations and slightly modifying the implementation. So we ended up with two large files that are almost identical apart from renaming.

I tried to explain that it makes our project more difficult to maintain but he doesn't want to change anything saying that it is easier for him to program in such way and that there is no reason to fix the code if it "ain't broke".

How can I convince him that such code duplication is a bad thing?

It is related to this questions, but I am more interested in the answers targeted to a technical person (another programmer), for example a reference to an authoritative source like a book would be great. I have already tried simple arguments and haven't succeeded.

like image 569
vitaut Avatar asked Nov 19 '10 15:11

vitaut


People also ask

Why is duplication of code bad?

It's safe to say that duplicate code makes your code awfully hard to maintain. It makes your codebase unnecessary large and adds extra technical debt. On top of that, writing duplicate code is a waste of time that could have been better spent.

Is code duplication good or bad?

Duplication is bad, but… Good developers are precise and careful and understand the risks and pitfalls of duplication in a code base—see the DRY (don't repeat yourself) principle, from The Pragmatic Programmer: “The alternative is to have the same thing expressed in two or more places.

How do you deal with duplicate codes?

Don't Repeat Yourself (DRY): Using DRY or Do not Repeat Yourself principle, you make sure that you stay away from duplicate code as often as you can. Rather you replace the duplicate code with abstractions or use data normalization. To reduce duplicity in a function, one can use loops and trees.


Video Answer


1 Answers

Ask him what will he do when he finds a bug in his code. How many places will he now need to fix it in?

You can also show him the answers to this question (Why is “copy and paste” of code dangerous?).

like image 75
Oded Avatar answered Oct 07 '22 09:10

Oded