when i worked on a team of 10 people this is what i did (and, fortunately, got a lot of appreciation for it). i extracted a common framework from a bunch of separate subprojects, refactored the subprojects to use them, and then spent my time writing useful common functionality while the rest of the team worked on user-facing features. now that i am in a team of 3 there is a lot more of "everyone does a bit of everything", though fortunately all three of us are enthusiastic about keeping the code clean, testable and well-factored.