And Now We Wait

I have been working on a big project for the better part of a year now. It is a massive overhaul of the systems my department uses in their daily grind. Over time, those systems have become downright awful, and much of the awfulness was beyond our ability to address. A key part of the system was run by our IT department.

That system was never very good, but as our needs changed, the system… stayed the same. Any change would cost hundreds of thousands of funny-money dollars and take a year just to find out that it was going to be another year, and another bucket of funny-money. It’s budget-dollars, not real dollars, but spending on that system would take budget-dollars away from other projects.

This antique system left the rest of our tools making terrible compromises so that the missing functionality could be wedged in. It was time for a change, and I set out to replace that system we didn’t control with a better one that we did.

Hand in hand with that, is that my department’s servers are very, very old in server years. My employer, meanwhile, has created new services so departments like ours don’t need to maintain our own hardware. So this change became not just a massive software update, but a major infrastructure upgrade as well.

I underestimated just how much our applications had been warped to accommodate the crazy compromises. Unwarping them was worthwhile, but time-consuming, and none of these applications had been built with testing in mind. On top of that, the new infrastructure placed its own limits on the applications that required further refactoring.

The goal: to pull the tablecloth off the table without disturbing the dishes, then to slip in a new tablecloth.

For the first few months I worked alone, but as the Big Day approached (and receded), the rest of my team got increasingly involved. I managed to hand off the DNS and server config stuff to my boss just in the nick of time, before the complexity of that exploded in my face.

Not totally alone; I must amend. There were people in many other groups — the people creating the pretty dang awesome new infrastructure tools we are using, who went out of their way to accommodate me and help me along, even though my group is tiny in the scheme of things.

I mentioned the Big Day. That’s not quite accurate. Much like “Happy Hour from 3-7 p.m.”, the Big Day started three hours ago and lasts through the weekend. Right now a script is running, a complex bit of software I have devoted hundreds of hours to, that pulls the data out of the old databases, reconciles an incredible number of different ways the data can disagree, patches the Definitive Data together and houses them in their new, shiny home. When the script is done tomorrow morning, it will never be run again. It will be archived as a historical curiosity and that’s that.

So this evening my boss put all our systems on hold, and we began the migration. After the first giddy flurry of excitement as we all worked to make sure we were ready, I started my script. “And now we wait,” I wrote to the team.


3 thoughts on “And Now We Wait

  1. The wait is over; the script has run. I watched it the whole way, into the deep hours of the night. Quick tests look good. It’s looking like a Big Day.

  2. That’s really cool. Kind of a “no one outside a tiny minority will ever know…” but regardless… it sounds like a big deal, that went well.

    • There was a meeting when the whole department came in from across the globe and I was asked to say a few words about the Big Day. Most of what I said was practical – what has changed and what to expect, but just before the meeting moved to the next subject I asked for a moment to speak about migration 052. It was self-indulgent, but I thought a group tasked with understanding the engineer psyche would appreciate the story.

      I got a little misty talking about migration 052. Maybe it’s like those guys who spend months planning how to implode a building — a gigantic effort —then you push the button and the explosives go off and all that work is done. It’s not a problem you will have to solve again; that building is gone.

      I told them there at the conference, “We all want to leave a legacy. We want our labor to live on.” Migration 052 is some of the best code I have ever written. And in the desert, two vast and trunkless legs stand.

Leave a Reply

Your email address will not be published. Required fields are marked *