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][1] with more detail.


  [1]: http://www.quickanddirtytips.com/education/grammar/omitting-%E2%80%9Cthat%E2%80%9D