Currently I happen to reuse code I wrote in one project for another. The idea of my project manager would be that we stick to the same code base, but the requirements are only at the core the same. The blabla around is quite different as well as the range of desired functionality. What makes it especially tricky is that my code has to interact with – in both cases – quite old third party software. Meaning that my code has to follow some old style rules which honestly bug me.
Anyway. The plan is now to separate the core from the blabla, so I can reuse the core for both projects and put project specific blabla around. Our senior developer told me this morning that I would be the first one in the firm to be able to use the same core for two projects. Which is funny, because our senior programmers (3 all in all, but one being sort of a programmer eremit) build almost unbearable constructs to separate their code into different layers and modular components, but usually never need it.