Industry: Education Technology
Summary: To keep its digital learning products ahead of the competition, Macmillan Learning is modernizing its software development and delivery processes, using CloudBees Feature Management to help speed product innovation, reduce risk and improve developer productivity.
Challenge: Fine-tune and control feature releases while improving developer productivity and bringing innovation to market faster with less risk
Solution: Adopted CloudBees Feature Management to separate software deployments from releases, enabling more innovation and greater flexibility to software developers and product teams while reducing risk
More efficient progressive delivery software features and faster time to market
Improved ability of dev teams to innovate
Enhanced work experience for developers and product teams
Reduced risk of releasing features with rollback capability
Product: CloudBees Feature Management
Macmillan Learning – part of the Holtzbrinck Publisher Group – has been publishing groundbreaking educational content for over 70 years. The company’s digital tools help teachers deliver live or recorded lectures, engage students interactively, assign and assess homework and more.
Among its most popular tools is iClicker, part of the company’s digital learning suite of products designed to engage students before, during and after class. A global team of over 50 software developers help Macmillan keep its digital products on the leading edge of the educational market. Most recently, Macmillan added new features that support remote classroom engagement regardless of the device a student is using. These innovations came just in time to support the global shift to remote learning in the midst of COVID-19.
Macmillan’s educational products consist of highly sophisticated software applications and components that can make product deployments complex and risky. Macmillan’s deployments to production were intertwined with its external releases to users and customers. There was no easy way to turn a new application feature off if a problem arose after it was released.
"Doing deployments in a one-shot event can cause a lot of problems,” says Huu Le, engineering manager with Macmillan Learning. "If you don’t coordinate ahead of time, there are a lot of things that can go wrong.” To avoid missteps and minimize risk, a distributed team of developers and engineers might spend all night helping coordinate deployments. Meanwhile, developers end up spending an excessive amount of time on deployment tasks, and less time on their main job of writing code, and productivity suffers.
Since developers are reluctant to release new features that might go awry, product innovation and time to market suffer. With more than 130 software releases every year, Macmillan’s dev organization sought a better way to release more features in small increments even to subsets of customers, test them out and have the ability to roll back the code base if something went wrong.
Like more and more development organizations today, Macmillan has adopted feature flags to deploy new code into production and then fully deploy features once it’s clear the code is working as expected. By surrounding the new code with powerful "if statements,” organizations like Macmillan can release fresh features in a flexible and orderly fashion, reducing the risk of a flawed launch, increasing the productivity and innovation of developers and enhancing their day-to-day work life. Feature flags give the Macmillan team the opportunity to experiment, test and validate new features before pushing those features out to the entire user population.
Although the group initially built a homegrown method to separate production deployments from the releases, the dev team chose to use move to CloudBees Feature Management, a feature flag solution designed to mitigate release risk and improve developer productivity while giving product management teams better control over feature releases.
CloudBees was convenient and versatile, Macmillan team members say. "With a lot of other platforms, you have to plan very far ahead to create flags,” says Brydin Eckert, former product manager with Macmillan. "With CloudBees, we have a lot more flexibility and implementing it was seamless.”
Continuous Delivery and Optimization
Since embracing feature flags, Macmillan’s development and product team has optimized how it delivers and releases its student applications. "The first draft of any product is never perfect,” says Le. "We know they are not exactly what we want, but now we can slowly make it better, and feature flagging allows us to do that.”
This approach keeps the team agile by allowing one group to focus on one implementation while another group is planning ahead and getting feedback from the initial proof of concept. "We can just keep slowly building things out and staging things so that we can keep adding value to the product over time, instead of just an all-at-once shock – which in my experience never really works,” Le says.
Faster Time to Value
With feature flags, Macmillan’s software teams can create a new feature, put it into the product, and then let a product manager as well as the UX team interact with it and give feedback without exposing it to end users. "With feature flags, we’re able to add value faster because we’re not waiting around to coordinate the backend with the front end,” says Eckert. "We can iterate at a much faster rate and put it into our users’ hands more quickly.”
When the pandemic hit, using feature flags allowed Macmillan to quickly shift its products from in-classroom to remote learning. "Our ability to use feature flags really has allowed us to launch these new products out in phases and quickly gather feedback,” Eckert says. The company is now starting on phase two of its remote products and teams say that feature flags have given them the ability to roll out incremental features over time, rather than the entire offering all at once.
Macmillan’s dev teams say they have saved countless hours by leveraging feature flags to cut down on the time developers spend on supporting releases. Since feature flags allow independent development and deployment, developers no longer have to be on call to deploy features. Now releases can happen at any time that works best for Macmillan and for the users themselves.
“Now with feature flags, your developers don’t have to worry,” Le says. “Once your code is tested behind that feature flag, and you’ve gotten approval from the QA team, you are good to go and you can move on to your next project,” he says. "Gone are the days of lengthy overnight deployments with all-hands on deck.”
Not surprisingly, feature flags are giving Macmillan’s developers a new level of job satisfaction. “The ability to breathe that sigh of relief is well worth it,” says Eckert. And while it takes some effort upfront to set up flags, developers say the effort pays off. “We did over a hundred releases this year, and if we didn’t have feature flags, a good number of those would have required significant overnight hours,” Eckert says. “This is a tremendous benefit to my work and personal life.”
Innovation and Experimentation
CloudBees Feature Management has enabled developers to innovate and experiment with new features and functions. "This is a crucial piece of the value of feature flags,” Le says. "Feature flags reduce risk and give us incredible deployment flexibility and that allows us to be a lot more nimble than before.”
Developers have called feature flags an "endless sandbox” because they allow developers to try out innovative new features that product teams can review and assess in a risk-free environment. Over time, Le believes that innovation will bring significant value to the business and to customers.
Having worked with CloudBees Feature Management for a while, Macmillan’s dev team have picked up some tips for getting the most out of this solution. One best practice is to establish clear naming conventions so teams don’t have a hodgepodge of flags that can be confused when it’s time to turn features on or off. "Just make sure that product and engineering are very clear about what’s behind a particular flag,” says Eckert.
In Their Own Words
Better developer productivity
Feature flags free up more time for development and improves developer satisfaction. Since feature flags allow independent development and deployment, developers no longer have to be on call to deploy features once they’re finished. "With over a hundred releases this year, if we didn’t have feature flags, a good number of those would have required significant overnight hours,” says Eckert.
More efficient software development
"We have multiple versions of our feature functionality and initiatives that we are able to break up into milestones and deliver incrementally over time,” says Le. This allows "us to slowly bring value, usefulness and adoption to a certain feature over time instead of all-at-once.”
Macmillan’s dev team says that using CloudBees Feature Management has allowed developers to innovate and experiment more with new features and capabilities. "Feature flags allow us to be more innovative and experiment more by creating smaller changes to the application," says Le. "From a development side, it’s an endless sandbox … and it triggers all sorts of innovative conversations about how we can tweak features to make them more valuable."
Faster time to value
Feature flags have allowed Macmillan to iterate its products faster and be more responsive to the feedback it gets from users. "It’s really allowed our team to be more flexible and more responsive to users in a way that was unfathomable before," says Eckert. "It is something that has had astronomical, positive impact for our organization as a whole and that’s passed on to our users."
Greater developer satisfaction
"The fact that we can deploy things and I can flip feature flags on my own time is a tremendous benefit to me and my own work life and personal life," says Eckert.
More efficient deployments
"I’ve really leaned heavily on feature flags in order to help time the delivery and release of our student apps,” says Eckert. "The key difference is we don’t have to plan six months ahead of time. We don’t have to be sure this is the exact feature that we want. We can slowly make it into the feature that our users want.”
Using feature flags, "our developers and the engineers can control and wrap our code in a very safe way that doesn’t impact the functionality of our current production code, and then release it without any impact to the end user,” says Le.
Looking ahead, the Macmillan organization is hoping to use feature flags to try A/B testing experiments to compare how users respond to different types of features. "This is something that I’m looking forward to experimenting with in the near future,” says Eckert. "To be able to experiment with user segmentation and turn features on for the whole population or a subgroup of testers, is another way we are starting to use feature flags.”
Fast pivot during pandemic
When the Covid crisis hit, Macmillan had to pivot quickly to offer new remote and asynchronous learning options. "Fast flexibility using flags allowed Macmillan to quickly deploy and release new features, gather feedback and iterate the product without interrupting what was already in production," says Eckert.
CloudBees Feature Management was easy to adopt. "It took me a couple of days to implement it across the team," says Le. "It took anywhere from a few hours to one week to implement. Wrapping a feature and getting it out the door is becoming second nature to the team."