Don't get me wrong from the title of this article—I'm as big a fan of object-oriented programming as any other technology pundit. I think it's great the way it lets you write a chunk of code and then reuse it whenever you need it.
I just don't think you should burden your entire in-house team with the task of keeping all those chunks organized and available for use in new projects. That particular job—and it's a dirty one—demands a specialist whose lone focus is cleaning up and documenting those piles of programming spaghetti.
So how do you convince your manager that you need to create a position for a developer who doesn't write new code? You can't just argue that you'll save money by reusing the stuff you've already got; if code reuse is so easy, why do you need a new head to do it?
Here are three key reasons this staff addition makes sense:
You need fresh eyes. If you're looking at moving massive procedural libraries to an object-oriented framework, authors of the legacy code (assuming they haven't retired to Florida) may be too biased. They might be more interested in keeping or transporting the code they helped create than in optimizing it for object-oriented reuse. A skilled reuse engineer can refactor the code and test for a successful port.You need a focal point. If your idea of version control is, "I think Barry wrote that about six months ago to fix a bug," a dedicated code-reuse engineer can bring organization to the chaos. The reuse engineer should manage the code library, administer the version control software, enforce coding conventions, and document component modifications by other developers.You need speed. Converting to the object-oriented programming model means more than simply copying and pasting chunks of procedural code. Give your reuse engineer the keys to the legacy code vault. A reuse engineer who knows where the "good stuff" is in the code library can drastically reduce development time by helping other developers navigate the resource.
Just as you'll probably have to finesse this headcount requisition, your new reuse engineer will also need to exercise some diplomacy as he or she juggles egos and plays code-standards bad cop. So whether you tap an internal or external candidate, look for someone with team leadership experience or other people skills.