Software, technology, sysadmin war stories, and more. Feed
Tuesday, October 23, 2018

Lack of progress exposed by the Canary MacGuffin

There's a certain scenario involving teamwork that I've seen play out a few times at larger companies. It's happened enough times that I wound up coining a term to describe it. It's not something I purposely set up, but it kind of emerges after the fact.

I'll try to first explain it with an analogy from the world of adventure video games. Let's say you're a character in one of the original (read: good) Zelda games. You have a quest for the adventurer, and it involves getting to some location and obtaining some item you really need.

You ask the adventurer to get this item for you, and they agree. They go off for a while, and you hear nothing. You see them again a bit later, and they insist they're "working on it". Time passes. Again, you hear from them: "top of my list". More time passes. They report back: "kind of tricky". Nothing happens.

While this is going on, you realize that to even start work on their quest, they have to obtain a copy of a certain key, and that is only sold in one place: a certain shop. You know the shopkeeper, and talk regularly, and nobody's even so much as stopped by the shop in many days.

This didn't occur to you at the outset. It's only while pondering why things have gone wrong that it all fell into place. Perhaps you started thinking "if only I had tried to get the item myself", and that took you down the road in your mind, and you realized "oh, I'd need a crystal key before I could do anything else - it would be quite obvious as soon as I started out".

That's when it all fits together: the lack of demand for the crystal key means the adventurer, in all likelihood, hasn't even attempted solving your quest yet. For all they've been saying, nothing has been happening.

Back in the real world now, I see this happening with software. I haven't set up anything like this intentionally, but have instead stumbled across the notion while wondering about whatever could be taking someone so long to deliver something. That's usually when it becomes obvious: you have to have a "such and such" in just the right place, or you can't possibly make progress. Then you go and look and... hey, nobody's done anything of the sort. There's not even any attempt to do anything of the sort.

What are they doing? Not making progress on your request, that's for sure!

I've decided to give this a name. It's a combination of terms often used in screenwriting and in technical work.

I call it a "Canary MacGuffin". (or Canary McGuffin, if you prefer.)

In tech circles (and the original hole-in-the-ground mining context), a canary is something that you have which tells you when something else is happening. It's typically used to give you advance notice of something potentially harmful, like the site going down, or a mine filling with gas. It goes off before things go too far, in other words.

A M[a]cGuffin, then, is from screenwriting and refers to a plot element that may drive the story forward. It has to be satisfied for things to progress. You get it out of the way and then you can get on with what you were really there to do.

The quest wasn't "get a crystal key". It was "get this item I need". The crystal key just happens to be a complication that shows up along the way. Likewise, the software request wasn't to "copy this one file into this one place", it was to "make a dashboard". It just happened to require that one-time file copy event. Hence, it's a Canary MacGuffin.

One final thing to consider about this is what's actually going on when the other team is saying all of these things and they aren't delivering. I posed this scenario to some friends and boiled down the responses.

First, maybe they're unreliable. They're flaky.

Second, maybe the task is stupid, and they're waiting for it to be killed. (How this matches up with the fact the requester is still asking about it and is starting to get concerned is another story.)

There's one more which I suppose might happen, and I guess I'm kind of hoping to see some day:

Third, somehow, they manage to accomplish the task without the Canary MacGuffin. Maybe they're really clever and just smashed through in their own really good way. Or, maybe they're really dense and never realized it would matter, and somehow managed to get things to connect in a really terrible way that'll break the next time someone looks at it funny. Either way, you can count on a good story coming from it.

You can guess which possibility accounts for most of the scenarios.