Every month a new version of PlanManager will be rolled out to ensure we keep up with changes in the industry.
So how does this work?
Our programming team adds new features based on the planning in the course of the month. Each change/feature will be worked on using the 4 eyes priniciple. This means that when 1 developer writes code, another developer checks the code to make sure the code meets our standards.
We have a seperate testing environment which will receive these bleeding edge features and changes immediately after development. This environment is unstable and is only used by the developers to check that their code also runs on the production servers.
On the last day of the month we freeze development. No new features are allowed after that. It can happen that features that were planned for development, are not ready on time. When this happens, they get moved to the next development cycle as a top priority.
The development team will also ensure that each feature/change they made, is documented. This documentation should be clear and complete. Our testing team will use this documentation to test the system.
Automated tests are run every day to catch errors as early as possible. Unfortunatly, those automated tests do not cover every use case. Human testing is still required.
Our testing team can test the system during the entire month since every change is almost immediately deployed on the testing environment. However, the final check happens when our demo environments are upgraded to the latest version at the start of each month.
Our testing team has to test all the changes that are mentioned in the notes of the developers. They make one final check to ensure that the changes are working as documented. And they have to prepare the documentation for the end user. This should be clear and understandable for a non-technical person.
There a couple databases/customers that receive the new version a little earlier than the rest of our customers. These customers have a close relationship with us and have agreed to provide early feedback.
No amount of testing can replace an actual production workload so e-mails/calls from these customers are processed with high priority. This ensures that bugs that were missed during development and testing, are quickly resolved.
This rollout on pre-production usually happens in the first week of the month. But there is no fixed date as this depends on the test results in testing.
Deployment on Production
After all this testing, we can finaly start rolling out the new version on Production.
We do not deploy all databases on the same day. This would be unsustainable in the long run as the number of databases we are serving grows every month. Instead we deploy in waves centered around the second Tuesday of the month.
Currently there are 9 waves.
Wave 5: Second tuesday of the month
A picture says more than a thousand words, so below is the rollout schedule for October.
The waves are not equally distributed. There are only a couple clients in Wave 1 and 2 (~ a dozen). Most databases will be rolled out in Wave 6 and 7. This might seem odd but if development, testing and pre production still missed a bug, we still have a chance to catch it before it hits too many customers.
We know how important it is for customers to know when a new version is rolled out. So we notify the customer ahead of time on the login screen.
The customer can also check the exact dates of his/her rollout in the menu System - Settings - Version updates
When a release has been rolled on a database, the customer can read the release notes in the Help menu. In the top right corner we are listing the current version of the application "PlanManager Web". The link "See release notes" brings you to Releases section of the Frequently Asked Questions. These can be read on screen, or printed as PDF.