Lumina Sales is live.See it

Freeze big software changes before your busy season

7 min read

By Lumina Software

  • Custom software
  • Reliability
  • Service business
  • Operations
  • Release management

Every service business has a stretch of the year when the phones do not stop. For a heating company it is the first cold week. For a pool company it is the first warm weekend. For a lot of shops it is the run from Thanksgiving to New Year's, when people want everything fixed before family shows up.

That stretch is the worst possible time to ship a big change to the software the business runs on. It is also when owners feel the most pressure to change things, because every rough edge in the system is suddenly costing calls and jobs.

When we build and maintain custom software for service businesses, we ask every client the same question in the slow months: when does your busy season start, and what are we not allowed to touch once it does? This post is about why that question matters and how to set up a change freeze that a small team will actually follow.

Why busy season breaks software releases

Most bugs are not caught by the person who wrote them. They are caught by the office the first time a real customer hits the odd case. In a slow month, the odd case shows up once a day and someone has time to call the developer, explain what happened, and wait for a fix.

In busy season, the same bug can show up dozens of times before lunch. Here is what changes when volume goes up:

Small error rates become big piles. A booking flow that fails one call in a hundred is a nuisance in March. In January, that same rate can mean a stack of lost jobs by the end of the week, and nobody has time to reconcile them.

The office has no slack to report problems. When dispatchers are slammed, they work around a broken screen instead of reporting it. The workaround becomes the process, and the bug lives for months.

Rollback gets harder. A release that changed the database, a pricing rule, and a text template all at once cannot be undone with one click. If the change touched records that crews already used in the field, rolling back can create a second mess.

The people who know the old way are busy. Training a team on a new screen takes time they do not have. A new layout that saves ten seconds a call in theory costs minutes per call in practice while people relearn it.

None of this means the change was bad. It means the timing was.

Decide what is frozen and when

A freeze only works if everyone agrees on what it covers. "Do not change anything" is not a rule anyone follows for three months. A useful freeze names the systems, the dates, and the exceptions.

We write it down as a short page the owner signs off on:

  • The dates. A start date a week or two before the rush usually begins, and an end date after it reliably fades. Use the shop's own history, not a guess.
  • The frozen systems. Booking, dispatch, invoicing, payment, and anything the phone or voice agent writes to. These are the paths where a bug turns into lost revenue or angry customers the same day.
  • What can still change. Copy on the website, a new report for the owner, an internal dashboard nobody depends on for live work. Changes that cannot block a job or a payment are usually fine.
  • Who can approve an exception. One named person, usually the owner or ops lead. Not the developer and not whoever is loudest that day.

The point of the page is not paperwork. It is so that in the middle of a hard week, nobody has to argue about whether a "quick tweak" to the invoice template is allowed. The answer is already written.

Ship the risky work before the freeze starts

A freeze is easier to live with when the big work lands early. The slow months are when you should do the things that will hurt to change later:

  • Database changes and data migrations.
  • New integrations with a payment processor, accounting tool, or field app.
  • Changes to how jobs are priced, quoted, or taxed.
  • New phone flows or a new voice agent script for booking.
  • Anything that changes what techs see in the field.

Each of those should ship with enough runway to see real traffic before the rush. A useful rule of thumb is that a change should survive a few weeks of normal volume, including at least one full billing cycle if it touches invoicing, before the freeze date. If a project is going to miss that window, it is usually better to hold it until after the season than to rush it out the door.

This is also the time to clean up. Turn off features nobody uses. Remove old automations that fire on retired job types. Fewer moving parts going into the rush means fewer things that can surprise you.

What the freeze should still allow

A freeze that blocks every fix will be ignored the first time something breaks. Real problems still need real fixes during the season. The rule is not "never ship." It is "ship small, ship only what is broken, and be ready to undo it."

During the freeze, we allow:

Bug fixes with a clear cause. If the problem is understood and the fix touches one thing, it can go out with the exception approver's yes. If nobody can explain why the bug happens yet, the first step is a workaround the office can use, not a code change.

Config changes the office already owns. Hours, holiday closures, tech availability, and service areas should be settings the office edits without a developer. If those require a release today, that is a good project for the slow months.

Security patches. If a vendor or library ships a fix for a real vulnerability, it goes out. We test it on a copy first and ship it during the quietest hours of the week.

Every exception gets the same treatment: one change at a time, a written note on what changed, a known way to roll it back, and someone watching the system for an hour after it ships. If two fixes are needed, they go out separately so that when something goes wrong, you know which one did it.

Watch harder while you change less

A freeze is the time to look closely at the system, because you are not busy changing it. We put a few simple checks in front of the owner during the season:

  • Calls answered versus calls that reached a booking.
  • Jobs created versus jobs dispatched the same day.
  • Invoices sent versus payments that failed.
  • Any automated job, sync, or integration that did not run when it should have.

These are not fancy dashboards. They are the handful of numbers that move first when something breaks. If bookings drop while call volume holds steady, something in the booking path is failing, and you want to know that by noon, not on Friday.

Keep a running list of everything the team wants to change. Busy season is when you learn the most about where the software slows people down. Write each one down with the date and the person who raised it. When the freeze ends, that list becomes the plan for the next slow stretch, ranked by how often it came up.

Start with one conversation

You do not need a formal release process to get most of the value here. Ask the person who builds or maintains your software three questions this month:

  1. When does our busy season start, and when does it end?
  2. What are you planning to ship before then?
  3. If something breaks in the middle of the rush, how do we undo it?

If the answers are vague, that is the work to do now, while the phones are still quiet enough to think. The goal is a season where the software stays boring and the team spends its time on customers, not on figuring out what changed overnight.

Written by Lumina Software. Have a question? Book a call

Keep reading