Our new deployment cycle
A number of years ago, Chaos suggested that we deploy Button Men site updates on a regular deployment cycle. Personally, I had never deployed according to a regular deployment cycle before, not at uni or at work, so I didn't know why such a cycle would be useful, but I was more than happy to accept from Chaos's experience at her work that we would see benefits.
For a long time, we had a deployment cycle that looked like this:
After some discussions, Chaos and I changed the way that deployments occur, with a view to allowing multiple changes to the site to be tested independently of each other. It now looks like this:
For a long time, we had a deployment cycle that looked like this:
- the second and third weeks of the month were for accepting any pull requests that had passed code review and unit testing
- the last week of the month was for testing on a test server to attempt to find bugs in the code originating from recently accepted pull requests
- the first week of the month was a merge freeze, designed to allow us to focus on fixing bugs caused by the deployment to the live site
After some discussions, Chaos and I changed the way that deployments occur, with a view to allowing multiple changes to the site to be tested independently of each other. It now looks like this:
- pull requests will be considered and tested at any time during the deployment cycle, since each pull request has a corresponding virtual instance running that version of the code
- the second and third weeks of the month are for accepting any pull requests that have passed code review, unit testing, and manual testing on a virtual instance
- the last week of the month is for testing the version of the code that contains all accepted pull requests on our staging instance, and the intention is to look for bugs caused by interactions between different pull requests, as well as those missed during individual pull request testing
- the first week of the month is still a merge freeze for fixing bugs caused by deployment to the live site
Subjectively, the load on testers is more evenly distributed than it used to be, and we're picking up bugs earlier, which means that devs have more time to fix them before our nominal deployment deadline at the beginning of the month. Also, it's far easier to deal with many different types of pull requests simultaneously, since those pull requests requiring much testing don't delay the acceptance and testing of more straightforward pull requests.
I think that the new deployment cycle works at reducing stress levels across the board, and that's got to be a good thing.
Comments
Post a Comment