I am looking at how to justify changes to those who control budgets.

For example if we have Enterprise Library 4 on some systems and the latest version is 5, is it worth upgrading? How do you justify it?

Is it best to continually try to keep frameworks that systems use up to date. Or is it better to do a major lift every x years?

  • 3
    Depends on their history and commitment to QA and ability. With Sybase you are probably better off not upgrading (and dropping it altogether); with .Net framework you probably want to jump on the latest and greatest quickly, unless you are at the end of the release. Also depends on whether your needs increase with time. – Job May 6 '11 at 13:58
  • 1
    Ahh Sybase... so many places I know they still use PowerBuilder 6.5 :-) – Otávio Décio May 6 '11 at 13:59
  • Also consider the future -- will you NEED to upgrade to version 6 or 7 someday. If you know this to be a requirement, then it may make sense to stay up-to-date with each major release. This is likely the case if your product will need supported for many years, like windows .NET. – gahooa Jan 5 '12 at 16:42

Cost-Benefit Analysis

Weigh up the cost of the upgrade against the benefits; estimate, include the non-specific benefits such as developer-satisfaction (why would I work on .NET 1.0 nowadays when I can get plenty of jobs working in 4.0?), but make it reasonable.

If the benefits outweigh the costs short- and long-term then your argument is made. If the benefits don't outweigh the costs short- or long-term then don't do the upgrade.

More often than not, the benefits do outweigh the costs in the long-term but not in the short-term. In those cases, you need to present the case to those who make such decisions and let them decide. And if they plan to go with the short-term answer, that's OK.

If we did everything thinking only of the long-term, we'd get nothing done in the short-term.

Next time there is an upgrade, do the same thing. The values will be higher and the upgrade more justifiable. But remember that it's still a decision above your head.


Using your example, I start with the question, what is there in EntLib 5 that I can't live without? If the list is very short or non-existant, well, that makes the desicion very easy. Usually the answer isn't that easy. Most of the time there are a handfull of "boy, that would be nice to have" or "they've made X a lot cleaner now". There has to be a lot of those to justify migrating as far as I'm concerned.

The bottom line is how much effort are you going to put into the upgrade and how much benefit are you and your code going to get out of the upgrade. If you are several versions behind the effort might be great (breaking changes and such), but so might the benefit. If you're one version behind the effort might be swapping in the new library and recompiling, but the benefit might not be so high either. It's going to depend on your code and situation.


The only justification is if there are critical bug or security fixes, or the cost of switching is somehow outweighed by the benefit of the new features you'll have access too. Beware, though, that you will always underestimate the cost of switching. Remember Hofstadter's Law. Upgrading is a risk management decision.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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