Comma and 'that' omissions in the sentence
Of the four structures given,
- *The implementation, we have made before, may ...
- *The implementation, that we have made before, may ...
- The implementation we have made before may ...
- The implementation that we have made before may ...
(1-2) are both ungrammatical (whence the asterisks) because commas make a normal
relative clause into a non-restrictive (parenthetical, supplementary) relative clause,
which
- has different syntax from restrictive relative clauses,
- requires a relative wh-pronoun (which, who, etc),
which- can't ever be deleted like (1), and
- can't ever use that like (2).
(3-4), on the other hand, are both grammatical because they are restrictive (normal, integrated) relative clauses, and thus are not subject to those restrictions. Restrictive relative clauses
- are not set off with comma intonations at either end
-
are allowed to use either a wh-pronoun or that, regardless of the antecedent
- The man that came to dinner broke his leg.
- The man who came to dinner broke his leg.
- The leg that he broke healed rapidly.
- The leg which he broke healed rapidly.
-
are not required to have a relative pronoun at all, except as subject
- *The man came to dinner broke his leg.
- The leg he broke healed rapidly.
It depends on what you're trying to say.
Let's start with:
The implementation we have made before may become a cause of code duplication.
Does "the implementation" refer to the current implementation, or are the two implementations identical?
If so, then it should be:
The implementation, which we have made before, may become a cause of code duplication.
If "the implementation" refers to a previous implementation, then it should be:
The implementation that we made before may become a cause of code duplication.
People often suggest rather strongly to omit "that" when used as a subordinating conjunction; I prefer to leave it for the sake of clarity. There are instances in which omitting it introduces ambiguity.
As for your question about pauses: pause at the commas, if they are used.
Peripherally, you may want to remove the "have", as it implies an ongoing process--as if you are continuing to build the original implementation.
Here's an article with more detail.