Loading ...
Sorry, an error occurred while loading the content.
 

How to make a major upgrade into an incremental cycle

Expand Messages
  • Phlip
    eXtremos: A Frequently Asked Question of software development _should_ be how do I safely do a major upgrade, such as switching my entire platform to a new
    Message 1 of 2 , Mar 28, 2009
      eXtremos:

      A Frequently Asked Question of software development _should_ be "how do I safely
      do a major upgrade, such as switching my entire platform to a new major version
      number?"

      This _should_ be a FAQ, but the industry answer is of course usually "just
      muddle through, break everything, and fix it all up again."

      We know better. I wrote the correct cycle up for Rails, here:

      http://broadcast.oreilly.com/2009/03/upgrading-rails.html

      Stripped of the Rails terms, the cycle goes like this:

      1. configure your environment to instantly switch between two versions
      2. switch to the new version
      3. run all your tests
      4. if anything breaks...
      - fix it
      - switch back to the lower version
      - pass all tests in the lower version
      - integrate
      - go back to step 2

      Another outer loop: If you go from 1.2 to 2.2, for example, first go to 1.3,
      then 1.4, using that entire cycle for each version tick.

      The point is to force an episodic, radical change into an incremental,
      controlled change. Each integration becomes the smallest possible delta from the
      last one. And, naturally, you can integrate, deploy, or release between any
      integration in the cycle.

      Has anyone done this?

      --
      Phlip
      http://www.zeroplayer.com/
    • James Carr
      Hi, Sometimes we upgrade platforms and when we run all our tests we find everything is green and dandy, or there s a few API changes we might need to fix.
      Message 2 of 2 , Apr 2, 2009
        Hi,

        Sometimes we upgrade platforms and when we run all our tests we find
        everything is green and dandy, or there's a few API changes we might need to
        fix. Other times, it might be possible to do gradual migrations (i.e. from
        Struts1 to Struts2... luckily the packages are different and they can run in
        the same environment together).

        Thanks,
        James

        On Sat, Mar 28, 2009 at 11:10 PM, Phlip <phlip2005@...> wrote:

        > eXtremos:
        >
        > A Frequently Asked Question of software development _should_ be "how do I
        > safely
        > do a major upgrade, such as switching my entire platform to a new major
        > version
        > number?"
        >
        > This _should_ be a FAQ, but the industry answer is of course usually "just
        > muddle through, break everything, and fix it all up again."
        >
        > We know better. I wrote the correct cycle up for Rails, here:
        >
        > http://broadcast.oreilly.com/2009/03/upgrading-rails.html
        >
        > Stripped of the Rails terms, the cycle goes like this:
        >
        > 1. configure your environment to instantly switch between two versions
        > 2. switch to the new version
        > 3. run all your tests
        > 4. if anything breaks...
        > - fix it
        > - switch back to the lower version
        > - pass all tests in the lower version
        > - integrate
        > - go back to step 2
        >
        > Another outer loop: If you go from 1.2 to 2.2, for example, first go to
        > 1.3,
        > then 1.4, using that entire cycle for each version tick.
        >
        > The point is to force an episodic, radical change into an incremental,
        > controlled change. Each integration becomes the smallest possible delta
        > from the
        > last one. And, naturally, you can integrate, deploy, or release between any
        >
        > integration in the cycle.
        >
        > Has anyone done this?
        >
        > --
        > Phlip
        > http://www.zeroplayer.com/
        >
        >
        >


        [Non-text portions of this message have been removed]
      Your message has been successfully submitted and would be delivered to recipients shortly.