Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Techniques for keeping your projects on the latest version [closed]

I'm working on a new project and we're using a pretty nice stack. NHibernate, Spring, MVC... the list goes on.

One thing I've noticed tho is that in the 6 months since we've started we've had a new release of NHibernate, a new release of a third party control toolkit and Windows 7 is on the horizon.

We've had problems before where being stuck on an old version of a technology has cost us dearly, so I'm wondering what are some techniques we could use to help ensure that our transitions to the latest versions of things are as painless as possible?

like image 744
lomaxx Avatar asked Jul 27 '09 13:07

lomaxx


3 Answers

Quite simply make it a priority and upgrade as you go along. If you keep up-to-date with the latest version, there will be less breaking changes than if you have to update 5 versions at a time.

Perhaps create a branch and do a test update to betas so that you are aware of forthcoming problems when that version RTMs (if using betas is a concern to you).

like image 180
Garry Shutler Avatar answered Sep 22 '22 09:09

Garry Shutler


I agree with the other comments here about updating often. If you wait too long it will be enough work that you will notice it in the project productivity.

The way we do it is the following.

  • One person on the team, gets the latest version, and makes sure that all tests run.
  • That person the upgrades whatever dll's / tools are to be upgraded
  • He also documents the upgrade.
  • Build all code make necessary changes for it to build
  • Run all tests, make sure they run.
  • Manual smoke test of UI
  • Send info to rest of team with doc of upgrade
  • Checkin / make sure it builds on build server

This way we do not loose productivity of the team during the upgrade. Note this would be much more difficult without unit tests.

like image 34
Shiraz Bhaiji Avatar answered Sep 19 '22 09:09

Shiraz Bhaiji


"update early, update often"

if you wait it will be more and more difficult so put high priority on updating the system. Developers mostly like to be on the bleeding edge so they will not mind too much, key challenge is to sell this idea to management.

It is always good to do step by step approach where you upgrade one by one tool. Then it is also easier if you need to roll back to older version. Big bang approach is more difficult and lots of things can go wrong.

Lets be realistic, every update will cost you time and also your team to do the switch to the new tooling version but after some time team learns to deal with it and level of stress when switching the versions is much less.

like image 25
Perica Zivkovic Avatar answered Sep 21 '22 09:09

Perica Zivkovic