Online retailers have lived and died by the pre-Black Friday/holiday season code freeze almost since the dawn of e-commerce. The Black Friday-Cyber Monday shopping weekend is the biggest revenue-generating, high-traffic time of the year in US markets, and a growing staple of other global markets. No retailer can afford for their site to slow down or go down in the most make-or-break of moments.
But the scene has shifted from the way things were traditionally done in three disparate ways.
How we shop
One factor is down to how we shop. E-commerce has enjoyed a decade’s worth of growth during the last year (2020), and has become a near movement, changing how we consume, how we buy, how things are shipped, how things are marketed. Spurred on by the acceleration of e-commerce during Covid-19 in 2020, consumers have permanently moved to online-first for a much larger proportion of their everyday shopping, and this is expected to continue. E-commerce platforms and apps have had to adjust their performance, capacity and elasticity to accommodate the new shopping normal.
Real-time monitoring and data
Data analytics and real-time monitoring provide insight not just into the macro trends of the changing e-commerce landscape, i.e. consumer behaviors, but also the micro patterns and actions on a performance level. So much data exists in this sphere, but to make it actionable, it has to reveal its secrets. A mere mortal doesn’t have the computational abilities required to make sense of the volume of data we routinely collect, and even where tools are deployed to collect data, it often goes unused. Which is problematic when you consider that, manipulated in real time using AI and ML technology, this data can provide insight into exactly what is happening with your traffic and systems and act.
The big thaw: Bringing the code freeze in from the cold
A “code freeze” is essentially a window of time during which code is locked and nothing new is deployed. Sites aim for 100% uptime, performance and stability, which has historically only been possible when you’re weren’t monkeying with the “guts” of your site and its dependencies. Code freezes have their solid reasons, such as:
- Ensuring uptime and performance despite massive, sudden increases in network traffic
- Protecting the site from disruptions and outages due to a bug introduced by new features
- Reducing overall risk from unforeseen events
With the new pace of online business and e-commerce, though, systems have to be designed for resilience all the time, meaning that code freezes are becoming more arbitrary. Many would argue, they don’t have a place in modern, agile software development. At the same time, most e-commerce retailers would agree that they are more concerned with stability than innovative features, if choosing one over the other. A code freeze may well be what some online retailers need to achieve full confidence in the resilience and availability of their platforms.
Not to add that code freezes are rarely as black-and-white/on-off as their name implies. In fact, just like turning off a water tap during a freeze, your pipes may be frozen when they try to turn them on again. An arbitrary halt in development can have a number of possible adverse effects:
- Heightened risk: Both when developers rush to ship buggy features in the frenzy before the code freeze, and potentially when you start to ship a vast code backlog from the freeze period, the risk threshold for instability and poor performance is raised.
- Slowed development process and delayed roadmap: It’s not necessarily great for business requirements and demands nor for roadmap plans when everything comes to a screeching halt. It has been argued that the code-freeze release yields a lower-quality end product -- slower.
- Loss of momentum/productivity: Interrupting development for a period of time can, of course, inhibit developer productivity and project momentum.
The big thaw: Cloud-native development and continuous integration/continuous delivery (CI/CD)
With a cloud-native/cloud-first trend running through modern development, it’s become more common to skip the code freeze and run with continuous integration/continuous delivery (CI/CD) approaches. These have built-in, ongoing risk mitigation strategies, letting developers continue their work and conduct tests in real production environments with a few “deployment-lite” tactics, such as feature flagging and canary releases. A handful of different methods exist to support this kind of incremental, limited deployment to ensure that businesses can keep moving and deploy without fear while being able to roll back changes without consequence.
What to do about the code freeze? It depends
There’s nothing inherently wrong with a code freeze, particularly if your risk tolerance is very low, and you haven’t architected your site(s) for new methods of development and deployment. But in many agile organizations, deployment pipelines are de rigueur for testing readiness in the production environment, making a code freeze redundant and a productivity killer. This is what continuous integration and delivery is all about.
The code freeze may not be obsolete, but it’s not absolutely necessary either. It all depends on the use case, what your development workflow looks like, whether you have fully embraced the flexibility of cloud technology, and how real-time your insight is into system performance and user behavior. All of which should be determined early with careful planning. It’s not an all-or-nothing equation.
This overview considerably simplifies the matter simply to make the point that it’s worth considering early whether it’s possible to respond to e-commerce development challenges with greater agility, particularly now that on-demand e-commerce is an all-the-time thing rather than a once-a-year event.
If you want to make sure you’re as ready as you can be…