Bibliotecas. Frameworks. Controle de versão.
Se você tiver um código reutilizável, a última coisa que deseja é que os diferentes membros da equipe copiem o código-fonte em seu projeto. Se eles fizerem isso, é provável que eles mudem um pouco aqui e ajustem um pouco lá, e em breve você terá dezenas de funções ou métodos que têm o mesmo nome, mas que funcionam um pouco de forma diferente. Ou, talvez mais provavelmente, o autor original continuará a refinar o código para corrigir bugs, torná-lo mais eficiente ou adicionar recursos, mas o código copiado nunca será atualizado. O nome técnico para isso é uma grande bagunça .
A solução certa é extrair esse material reutilizável de qualquer projeto para o qual você o construiu e colocá-lo em uma biblioteca ou estrutura em seu próprio repositório de controle de versão. Isso facilita a localização, mas também desestimula a realização de alterações sem considerar todos os outros projetos que possam estar sendo usados. Você pode considerar ter várias bibliotecas diferentes: uma para código bem testado que não é mais provável de mudar, uma para coisas que parecem estáveis, mas que não foram completamente testadas e revisadas, uma para adições propostas.