The weather outside is not yet frightful, but it's getting cold in the codebase! As winter descends and temperatures plunge, many software companies implement a Holiday code freeze over the holiday period.

The theory makes sense. New code means new and enhanced features, but also the risk of serious new bugs. The period from Halloween to January is a peak time for commerce sites, with urgent gift shopping in early to mid-December, followed by January sales. Online retailers make 40% or more of their annual profit in these 6-7 weeks. A code freeze means no risky new code is pushed to production at a time when a bug could cost millions of dollars in lost revenue.

An upcoming code freeze means a major deadline for developers. Everyone wants to get their features into the CI/CD pipeline before the freeze hits. Afterward, developers can sigh in relief... but what do they do next?

Bypass the chilling effects of developing during a code freeze

A code freeze isn’t a development freeze. Developers will probably spend the freeze period writing the next set of new features in dev environments. But the code freeze can still have a chilling effect on developers; without access to production, it can be harder to get the information needed to create new features. It’s often necessary to understand how a particular piece of code works in production in order to work out how to elegantly extend it, or to decide where in the code logic to integrate a feature. Normally, this is done by writing diagnostic code like logging lines and then deploying it to production. This is already a frustrating and long process, but during a code freeze, it’s not an option.

This is where modern tools can come to the rescue. Rookout’s on-the-fly information collection works everywhere, including in production, and does away with logging lines altogether. Rookout allows developers to track a single variable value at any point in the code, or get access to full stack trace data. By decoupling visibility from deployment, developers can get the information they need directly from the production environment in a read-only fashion, without any impact on performance. No more waiting until February to check what an object is doing.

Use production as a live laboratory

The mission-critical code might have passed review and testing, and maybe the site's working just fine. But it could still be faster, or better. During the holiday code freeze is a great time to see heavy loads in action and think about future optimizations by seeing how the live sites perform under real and intense conditions. APM solutions like AppDynamics or observability platforms like Honeycomb.io can do more than simply ops monitoring; you can use them to show how to improve your code for the future.

By adding Rookout into the mix you can take things to the next level by getting visibility into the code itself without affecting its execution or performance. Rookout lets developers see how their code is actually working in production without any need to simulate it locally or to mess with the production setup directly.

With these observability tools, software engineers can create a live laboratory where developers can use the experience of observing their production environment to help them fix "low-priority" live bugs and other performance issues in the future.

When things go wrong: Deciding to unfreeze

Despite code review, testing, staging, and code freeze, sometimes things still go wrong. Maybe it’s a weird edge-case bug nobody noticed; maybe it’s some small infrastructure failure that causes backlogs elsewhere. Additionally, key development staff may take a vacation for winter holidays, making bugs harder to find and fix.

When issues occur, DevOps teams need to ask themselves “How serious is this problem? Is it bad enough to need a fix right now?” Rookout can help with this, too. By speeding up diagnosis of the problem, Rookout makes it quicker to pinpoint the source of the issue (Is it a logic bug? A failure of an external service?) and giving software companies the information they need to assess the severity of a production issue. This cuts back on unnecessary downtime and means that companies don’t need to use diagnostic builds during the code freeze.

The code freeze period doesn’t have to leave developers out in the cold. With modern tools and creativity, it can still be a valuable time for software development and load monitoring. And if something does go wrong, those same tools can help pinpoint the problem.

Enjoy your winter!