Question

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?

Was it helpful?

Solution

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?

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
scroll top