Skip main navigation

Continuous delivery at FutureLearn

Developer Tom Ward discusses how we use continuous delivery to quickly get improvements to the FutureLearn platform into the hands of our users.

Just over two weeks ago FutureLearn went live offering its first 20 free online courses.  For the developers though, this wasn’t a big release, just the latest of several hundred tiny releases since the first lines of code were written back in April.  That’s because we’re using, continuous delivery to get work done by the delivery team into the hands of our users as quickly and reliably as possible.

So what is continuous delivery?  To help explain this, I need to explain the problem we’re trying to solve.

In an active project like FutureLearn, there’s a whole delivery team of developers, designers, UX experts, project managers, product owners and others.  They’re constantly working together to add features, fix bugs and generally improve the product.  But once the code is written, the design enhanced, or even the copy changed, something needs to happen to make this work available to our users.  We call this deployment.  It can include altering databases, adding new services, updating code, publishing new graphics and much, much more.

The traditional approach to all this is release-based deployment, where all the work done over a number of weeks is bundled up and deployed together.  There’s a technical problem with this – the bigger a deployment, the riskier it becomes.  There’s also a lot of planning and preparation required for each release.  For me though, the biggest disadvantage of this approach is the time taken for our work to get to our users.  Once our work is complete, we want our users to benefit as quickly as possible, not weeks or even months later.

At FutureLearn we use continuous delivery, which means we try to deploy every piece of work to our users as soon as we possibly can.  That means deploying small changes all the time.  To support this we have to ensure that deployments are easy, automated and fast.  We have to write (and run) automated tests to support each change we make which takes more effort, but we avoid long planning and preparation phases required before each release.

The benefits are plentiful, both to us as a delivery team, and to our users.  Since we went live on the 18th of September we’ve made over 50 deployments, improving the experience for every learner.  Things we’ve improved include letting learners turn off email notifications, decreasing page load times, and tweaking the copy in emails we send.  These may be small changes, but they are all available now.  We’ve hundreds more similar improvements planned over the coming weeks.

Just as importantly, these changes are often a direct response to requests from real users.  If you send us feedback either through the feedback tab on the site, or by emailing, we will use that information to improve the site. And with continuous delivery, we can deliver those improvements quickly.

FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education

Related stories on FutureLearn