This is Part 2 of a 3-Part series of posts. Part 1 is here, and Part 3 is here.
At the penultimate session of the Three Rings 10th Birthday Conference, JTA presented a session entitled Where do we go from here?, taking a look at the lessons we’ve learned over the past decade, and some of our plans for the future.
This post offers a re-cap of the second part of that session, which unveiled our plans for more frequent upgrades to Three Rings using a less-disruptive method.
Where we are now:
Back when Three Rings was only helping a handful of Nightlines, it made sense that we released a new version of the system two or three times a year, in line with the University holidays. Technology’s changed a lot over the past ten years, though: back then, even having a basic rota online was seriously cutting-edge, but now people expect a lot more from an online system.
We’ve always prided ourselves on responding to our customer’s needs, and as new technologies develop and our users make new feature suggestions, we’ve found we’re sometimes taking longer to release new upgrades than we’d like – often, a feature gets written but not released because the other features we planned for a release aren’t done yet, which isn’t always the best way to meet everyone’s needs!
Even so, we want to get back to the faster development cycles we had in the old days.
The end of Monolithic Releases:
The next version of Three Rings, Milestone: Krypton will be coming out in the early months of 2013. We want that to be the last “monolithic release” (that is, the last release in which all the new features are released as a single massive block). The problem with a monolithic release pattern, like the one we’ve had, is that if 99% of the new features are written and ready for testing, but the last 1% aren’t complete, everything has to wait until the final changes are ready.
Instead, we want to adopt a regular release cycle, where the emphasis isn’t on completing a set jount of tasks, but instead on introducing new features at a steady, predictable rate. So, after Milestone Krypton – which will help to lay the groundwork for these changes – future Three Rings milestones will be unveiled every two months. As soon as a feature is written it will be listed as appearing in the next release.
If one feature happens to be unfinished at the end of the two month cycle, all the features that are complete will be released as part of the upgrade, and only the incomplete feature will be held back (and that will come out in the first upgrade after it’s been finished).
This is a major overhaul of our existing processes, but it means all of our users will be able to see when a new feature is expected to be completed, and they’ll also know exactly when the next system upgrade is coming. On top of that, we want to create a section of the corporate website where you can see whether a feature suggestion is shortlisted, in development or scheduled for release, and check how things are going, helping to reduce the uncertainty that the old monolithic release style sometimes created.
Less Disruptive Upgrades:
The second big change we want to make to our release policy is to do with downtime. In the past, every time we’ve released a new version of Three Rings we’ve taken the system down for a couple of hours whilst we upgraded things. When Three Rings was younger, and upgrades only happened in the middle of university holidays, that didn’t cause any disruption to anyone (because once the students have gone home, the Nightlines usually take a well-earned rest!), and it wasn’t a problem.
As more and more organisations have adopted Three Rings, though, it’s become harder and harder to find a time when it’s OK to take the system down for upgrades – we’ve managed OK for the past few years by starting releases in the middle of the night, but now that we’ve got users based in both Australia and New Zealand, not even that’s going to work!
So, once we’ve switched from monolithic releases to regular ones, we’ll do our best to avoid that sort of downtime. Sometimes, it will have to happen – if we make big changes to the database, for example, we can’t allow people to access the database and change things at the same time as we’re moving everything about! – but wherever we can we’ll ensure that the regular releases ‘just happen’.
There’ll still be nothing for you to install, because Three Rings will still be an online service, but users should find they just log in to find the system’s been upgraded without inevitably going through two or three hours where they’re completely unable to get into the system!
This still isn’t all we talked about for the Future of Three Rings – there’s a third part yet to come – but we think it’s a great step forwards: with these changes, we’ll be able to make our improvements to the system much more frequent, much more responsive, and much less disruptive for everyone.