Introducing maturity levels to Openbravo ERP
Stability is a keyword inherently attached to ERP systems. System integrators and end users want a system that simply offers them the capabilities they need in a pleasant manner and at any moment. In this case stability means that it always works in the way they expect it to work. Openbravo takes this challenge very seriously, as you can see in our current 2.50 MPs (Maintenance Packs) release process:
- We run a set of automated tests on every commit, which in practice means a 24/7 job: build tests, sanity tests, upgrade tests, functional tests, etc.
- As a general rule every commit is related to a resolved issue. The QA team, together with the development team, leads the effort of individually verifying the correct resolution of these issues.
- The QA team performs complete set of manual tests before releasing a maintenance pack to guarantee the quality of the release.
This is the global picture of our current 2.50 MP release process, delivered at the beginning of every month. Now we would like to go beyond this by offering an additional service level in our MPs. And precisely the Life Cycle Management feature introduced in version 2.50MP20 makes this possible: whenever a released MP stays live without known issues for 40 days we’ll tag that release in a special manner. So that system integrators can choose to either use the current stable versions or the ones that have matured for 40 days.
This Life Cycle Management feature introduces the concept of Maturity level for modules, which allows Openbravo to make use of its statuses as follows:
- Test: primarily used by the Openbravo QA team. This is the pre-release status.
- QA Approved (old name:
Controlled release): this is the current maturity level of the MPs once they are released. It means they have passed the automated tests, the issues have been individually verified and the QA team has run a comprehensive set of manual tests.
- Confirmed Stable (old name:
General availability): the module has passed 40 days in the QA Approved maturity level without any known issues.
So in practice, what does this mean for a system integrator? Simple: those looking for exactly the same maturity level of the current MPs should use the QA Approved status. And those who would like to go beyond this level should consider using the Confirmed Stable status.
Configuring this is as simple as selecting the desired setting in the Module Management Console:
Note that Confirmed Stable is the default option for all the modules. We’ll apply this policy for Core starting from 2.50MP23.
EDIT, 2011/07/04: the maturity levels have been renamed as follows:
- Controlled Release → QA Approved.
- General Availability → Confirmed Stable.