We recently released version 3.5.2 of our xTuple ERP application. This release fixes a couple of discreet, yet significant , issues that were discovered after the 3.5.1 release was sent into production. While on the surface this release does not appear to be a significant departure from previous releases, it is. Our goal is to provide the best products and services possible and in order to do that a change is being made.
Starting with 3.5.2 we will be doing regular patch releases for the most recent minor release. These releases will be small in scope, minimize the impact to your business, and be easy to upgrade to. Read on to find out how this is different from our previous methods and how it will benefit you.
Our releases to date have been very linear. One, two, three; don't miss a beat. This makes it very easy to manage the process but does not offer any flexibility. The more significant the number or complexity of fixes/features in a release the more significant the effort to develop, test, document, and release those changes. This means larger releases take longer, and longer releases often get larger. Scope creep is a name given to this problem and it's a problem that is battled at every turn. Our latest change to start doing regular patch releases will move us a step away from that linear release path.
Some time ago we turned to the "release early, release often" mantra that is often quoted in the open-source community and tried to do a release every two to three weeks leading up to a final production release. This resulted in our basic Alpha, Beta, Beta2, RC, Final pattern of releases. This worked well for those involved in the development of changes and on occasions for a customer who had sponsored development so they could give feedback. The problem though is that from Final to Final you have at least five, two week, cycles; don't forget scope creep either. For most people this means a release is about three months long and often longer. This is a double sided coin; for developers three months isn't always enough time, for customers three months is often a very long time if you have a problem.
For minor releases we will continue to follow our Alpha, Beta, Beta2, RC, Final pattern and these will continue to contain all the latest and greatest changes. Starting with 3.5.2 we will be doing patch releases every three to four weeks as necessary. A patch release will contain a couple critical or time-sensitive fixes to the product. The goal is to be more responsive to problems that are found without having to rush our the next minor release because of a backlog of critical fixes. These patch releases should also make it easier for customers to keep current and up-to-date while increasing the reliability of the release.
Our expectation is that this will be a great tool to both better support our customers and also allow us at the same time to focus on more/better improvements to the product. If you have any comments or feedback regarding these changes please let us know.