Should I update the application when my environment releases a new version?

I have an application that uses several libraries and frameworks, should I update my application to use the latest version of these frameworks when a new stable version is available?

For example, port from python 2.x to python 3.x or from spring 2.5 to spring 3.0, but the question is very general, not language specific.

If I update the application to use the latest versions of stable frameworks, then I will have new functions if I need them.

If I do not, then maybe in the future I will need to do an update, and updating the application will require a lot of work.

Are there any recommendations on this?

+4
source share
7 answers

I would do that. That's why. If you do not, the set of libraries you use will become outdated. At some stage you need to update one (due to bug fixes), and at this stage you will have to update several due to mutual possibilities. Thus, a simple library update is cascaded.

My approach is to regularly update, but not immediately - just when time permits. This way, you can gradually move your library forward, with a timeline that you set yourself. Any incompatibilities are considered simultaneously with one library, and not with the need to cope with a whole set of problems only when you want to solve a problem by updating one library.

+5
source

Based on experience, I prefer to take a very conservative approach to this.

Updating components or frameworks can be risky at any time. You may find new errors in the structure, or you may find errors in your own code due to assumptions about the old structure or due to workarounds that you may have had in place.

In general, you should not upgrade to the latest version just for the sake of it, if there are no new features or bug fixes that you want to use immediately, or maybe you just have a lot of time on your hands! Updating frames can mean a lot of re-testing, just to make sure everything is working fine.

The only time you should update immediately is that the version of the framework you rely on is out of your control, and the client is likely to do the update. An example of this is Internet Explorer - if I have some functions that rely on v7, but v8 has been released and the behavior of this function has changed, then I need to update immediately, as the client will be updated at any time. As an example of the opposite, if I have an application based on the .Net 2.0 framework, I should not recompile the 3.5 framework just for the sake of it, because the two versions of the frame live happily side by side, so upgrading (theoretically) can lead to problems, which I do not need to enter.

+2
source

You have to put things on the scale .....

1. -you get any benefits.

2. - it will make you suffer.

3. - it will disrupt the workflow in your company; how much dead time will be

for myself ... I like the latest technology ... it means less mistakes and more learning = P

+1
source

This is a very common problem. The solution cannot be cut and dried. It depends on how you intend to maintain your application. Based on your question, I feel that you have long-term goals for this project. In this case, you will be advised to upgrade to the latest version.

However, if the old version is well installed, as is the case with Python 2.x, you will continue to receive support for some time after the release of the new version. But do not put off the inevitable.

0
source

If I upgrade the application to use the latest stable version framework, then I will have new functions available in case I need them.

This is the essence of premature optimization.

If I do not, it may be in the future. You will need to do the update, and it will be a lot of work to update the application.

Do you get any benefit from doing this behind closed doors with your library provider? If so, update them using the step. Otherwise, evaluate the changes in the same way as if you changed a change in your application and updated when it makes sense.

0
source

How longs is part of a string?

Your general question can only have a general answer. And the answer is probably how you feel about the risk / reward ratio in any given circumstances.

Large IT departments, as a rule, do not deploy the latest Windows right away (I doubt that many companies currently use Windows 7 in all directions, and many use XP (I think VIsta)). They may not skip the release at all, but the general rule in Windows IT is to wait for Service Pack 1.

For applications and frameworks - yes, there may be some great new features, but do you need them? And you have time to implement them, and you agree that your new code will not be an error at first?

Otoh, the new version is likely to have bugs fixed - it seems nice, but are they bugs your users report? If not, then why bother ("fixes the click" close "or" cancel the crash when using the Chzeck version of the framework program on the Bulgarian version of windows "). And with the bug fixes, the new version will have new errors.

Risk / reward - what is your reward? Can you sell a new version of your application and make more money? What is your risk? Loss of reputation, if the new version is buggy, support time (and costs).

How long is your particular piece of string?

0
source

It depends on the structure / library. If the structure is popular, well-maintained, well-documented, and fairly stable (like Spring), I would definitely update - you get all kinds of bug fixes in existing functions and some new functions.

A framework that is not so popular / well-groomed, I would be a little more careful.

In any case, I think that by default there should be an update - as you said, it is easier to do something in small steps. When you postpone updates, you create a headache for yourself: at some point you will have to update, but then the gap will be so huge that the update will be almost impossible. You are stuck with a version that is no longer supported.

-1
source

Source: https://habr.com/ru/post/1304526/


All Articles