Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently working on a project, and there are some "code growth" problems, that need a solution for. The deadline is not very far, and it would be advisable to stay within allocated time-frame.

Still, the code needs some restructuring, and here lies the question. Should we try to use a new framework to fix the current problem, or not.

My colleague is very open towards external frameworks and offers to restructure the code by finding an existing library something along the lines of WTL/boost/TinyXML/ATL.

I, on the other hand, am very cautions concerning new frameworks for existing code bases. The language is C++, and I have a fair amount of experience where libraries like MFC backfire with a huge flamethrower.

I am not saying my way is the right one, as I guess the truth is somewhere between, but I need to decide how to proceed.

The deadline is pretty close and the changes would touch a large part of the code-base, app logic layer. Restructuring the existing code base would require some peaceful thinking and some extra coding. But the code is not TDWTF kind, rather it has grown past the original requirements and needs new clothes.

The app is heavily asynchronous, and uses multiple threads, so it's not the trivial kind.

Can anyone tell me what is the general rule when you have to decide whether to use the premade wheel vs. reinventing a new one? What would be the acceptance criteria for new code?

share|improve this question
up vote 3 down vote accepted

If you have a deadline which you need to meet, then don't introduce new, unknown stuff in your environment.

If the thing you need to fix is more important than the deadline, then strongly consider officially pushing the deadline if you are in doubt you will make it.

Note that for asynchronous applications with multiple threads Executors are your friends to tame the beasts. Will they do, or do you need more than that?

share|improve this answer
+1, if you know a framework and are comfortable working with it, it should certainly lead to shorter development time. But if you don't know it yet, and need to learn how to work with it, it's extremely unlikely that it will save you time this time around. So if you have a deadline to hit, play it safe and stick to what you know. – Carson63000 Nov 27 '10 at 0:46

With your existing deadline I'd definitely let sleeping dogs lie.

Immediately after your deadline, sit down with your Mgmt and your team and explain that the code base has pretty much hit its maximum point of return. e.g. It costs a huge amount of time and effort to add new features.

Then go away and identify areas that a 3rd party could take over for you and prototype using those 3rd party frameworks.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.