Isso é da minha experiência, mas ainda acredito que pode ser aplicado e segue as linhas do que o GlenH7 mencionou.
Trabalho entre 3 empresas realizando vários projetos. As empresas são irmãs umas das outras com algumas práticas padrão e metodologia de trabalho, mas também são únicas de várias maneiras. Com isso dito, geralmente começo cada projeto de novo e quero apenas concluí-lo ou mostrar progresso. Então, se eu me deparar com um cenário em que me lembro de um código ou funcionalidade que escrevi para um projeto anterior, farei uma das duas coisas (dependendo do tempo):
- Método mais rápido
Copie o código anterior do outro projeto (não tenha muito tempo) para o meu projeto atual.
Segundo método mais rápido
Copie o código anterior e coloque-o em uma biblioteca comum e inclua essa biblioteca no projeto atual (para facilitar o avanço).
2b. Se eu fizer alterações no outro projeto (original), refatorá-lo-ei para usar a nova biblioteca [mas geralmente não o fará, a menos que precise refazer o projeto].
Apenas esteja avisado, teste o diabo das bibliotecas comuns. Bibliotecas comuns significam criar dependências. Dependências criam pontos de falha. Embora você possa precisar de algo ligeiramente ajustado para sua implementação atual, você não sabe como isso mudará mais alguma coisa usando essa biblioteca.