What my grandfather understood about being indispensable
Let me tell you about the most productive week of my career, during which I accomplished absolutely nothing of value and was lavishly praised for it.
I was brand new to the company, early career. First week on the team, still learning where the coffee was, still doing that thing where you laugh a beat late at jokes you didn't understand because you don't yet know all the context. And the fellow who wrote the .NET side of our little operation, the man whose code my code was supposed to talk to, went on vacation.
For a week.
Of course, he was entitled to have a vacation, and I want to state that clearly and without sarcasm, because I'm about to spend a thousand words making his vacation sound like the Hindenburg, and none of this was his fault.
The work in front of me needed his endpoints. His endpoints did not exist. He wasn’t there to write them. I was a frontend person who was, at that point in his life, generously described as "learning JavaScript," and who knew precisely as much about .NET then as he does now, which is nothing.
So there I sat. Blocked. Stopped. Done. Free, arguably, to spend the week reorganizing my desk.
Now, here's where you might imagine that a wise senior engineer put a hand on my shoulder and explained the way forward. That's not what happened. What did happen is that I was raised by a man who would have found my situation morally suspect.
A word about my grandfather
He was a shop steward. If you're unfamiliar with blue-collar union shops of half a century ago, this means he was the person on the factory floor that a co-worker went to when something was wrong. He then took it to management, and was therefore trusted by everybody and beloved by nobody. This is a very specific kind of job and it makes a very specific kind of man.
He told me, more times than I can count:
Nothing and nobody stands in your way. If you don't have the thing you need, make do with what you have. And if the person who does the job you need done isn't here, then you learn to do their job.
Hold onto that last sentence. We're going to come back to it, and I'm going to reveal that I misunderstood it for roughly two decades.
What I did instead of nothing
I didn’t learn .NET. I had standards, and one of them was that.
What I figured out from whatever scraps of the internet existed at the time, was how to build a convincing imitation of a thing that doesn't exist yet. In the dev world, we call these mocks. Stubs. Fakes. We devs didn’t invent this concept. Go to a home show, or a home-improvement place, and you’ll see cabinets installed in a mock kitchen. The rest of the house isn’t needed to get the task at hand done.
It's honest work, oddly. Everybody knows it's fake. That's the deal.
And it worked. The backender came back from vacation, and his endpoints landed. Of course they were not shaped the way I'd guessed they'd be, because “guessing” isn’t “knowing”, so I spent some time pulling my placeholders out one at a time and putting the real thing in behind them. But the work was there, waiting for me to dive into. I had not spent the week rearranging my desk.
He was impressed. They asked me to show the other frontend folks how to do it.
The hero reading
Here's the thing about being praised for a workaround. It feels molecularly identical to being praised for a solution. There is no way to tell them apart from the inside. I have looked.
Let’s read my grandfather's line again:
If the person who does the job you need done isn't here, you learn to do their job.
I heard that as “Grit your teeth, kid, be the hero, don't be the person standing around with his hands in his pockets.”
That's the flattering reading, and I was twenty-something, and I took the flattering reading, because that's what twenty-something is for. Honestly, who doesn’t enjoy being a hero? I once worked for a company that had a little green hero cape for heroic saves. Everyone loves a hero.
And that reading isn't useless. It's the thing I still tell every new engineer who'll sit still long enough to hear it:
You can't be blocked. There is always something to do.
Write some documentation. Fix the linting errors. Increase the test coverage. Go learn the thing you've been avoiding because it's dull, or because you're a little afraid of it. Grab a broom. Empty the trash bins.
And I mean that last part literally, which is why I say it. I'm not above trash duty. I have never once in my life been above trash duty, and I'll tell you something, I've never met a good one who was. That instinct, to sit there blocked rather than do something useful that doesn't happen to look impressive, is real. It's just worth calling it what it is. That's vanity. That's not a blocker.
The half I missed
But notice what "you can't be blocked" doesn't say. It doesn't say the work can't be blocked.
Because the work absolutely can. That ticket can be dead in the water while you are perfectly fine, whistling, up to your elbows in something else entirely. Those are two different facts, and a standup meeting mashes them into one status, and the one that comes out of your mouth is the one about you.
Which is exactly the trap I walked into, and got applauded for. Look at what actually happened that week. A company discovered that it had exactly one human being who could write its backend, and that when that human being took a perfectly ordinary vacation, the work stopped. That's not a scheduling inconvenience. That's a structural fact about the business, and it walked right up to them and introduced itself.
And the reason they noticed is that some kid had to spend his first week building a papier-mâché backend to survive it.
There's always something to do
If "there's always something to do" just means you stay busy, you haven't solved a thing. You've hidden one. The board looks fine. Nothing's red. Everybody's productive. And the actual problem is sitting right where it was, running up a bill nobody is counting, precisely because you were good enough at your job to make sure it never showed a single symptom.
That's not grit. That's camouflage.
My grandfather was a shop steward, and a shop steward is not in the hero business. He was a cross-train-everybody man, his entire life. The reason a union hall insists that everyone on the floor knows more than just their own machine is that a shop where exactly one person knows how a thing works is one vacation, one illness, one bad afternoon away from stopping cold. On a factory floor, redundancy isn't a nice-to-have. It's the whole ballgame.
He wasn't telling me to be a hero. He was telling me that a shop where only one worker knows the machine has a problem, and that the fix is for more on the floor to know the machine.
Same sentence. Both halves sitting right there in it, the whole time. I took the half that made me feel good about myself.
To the company's enormous credit — and I want to be fair, because this story could have gone the other way and usually does — they did the right thing. We started cross-training the backend people across the different parts of the system. The next time somebody went on vacation, nothing happened. The most boring possible outcome, which is what a fixed problem looks like.
I didn't understand at the time that this was the actual ending of the story. I thought the ending was that I was clever.
Say both things
The work is blocked, and I am not blocked, both.
The work is blocked: Here's the cause. Here's what it's costing us. That goes to the room, and it goes to whoever's above the room, and you don't soften it, and you don't swallow it just because you found a clever way around it. A way around is not a fix. The bottleneck is still there, and it will be there next month, wearing a different hat.
I am not blocked: Here's what I’ve done, and here’s what I’m doing next.
The first part is the shop steward. The second is the kid. My grandfather was both, and he handed me both, and I spent an embarrassingly long time doing only the one that felt like winning.
The same split explains the PR sitting out there waiting on a review. Nobody is coming. Nobody is thinking about your branch. Nobody feels the little pang of guilt you've imagined them feeling. Their day does not get worse because your work is going stale.
It’s not their problem. It’s yours.
So go get it. Ask in the channel. Ask again. Walk over there. Put the ticket on the screen in standup where everybody can see what's waiting on what. Cut your nine-hundred-line monstrosity into something a human being could actually review without weeping, because a diff that size isn't a request, it's an imposition, and you know it.
Get pushy, but not rude. Pushy. And then a little pushier than feels comfortable, because the alternative is sitting there "blocked on review," which is the softest, most pitiful version of that word ever spoken in a conference room. You're not blocked. You just haven't asked hard enough yet.
Are you blocking somebody?
That's the shop steward giving me the side eye. But hero mode can blind a dev to that, which is the whole problem.
It can show up as being the only one who knows how the deployment works. Being the one with the credentials. Being the person they come to. I was the only SEO person once. The only Lighthouse person. Way back, I was the only one on the dev team who could get a thing done with a CSS selector instead of a heap of JavaScript, and I'll admit it felt terrific.
None of it felt like being a bottleneck. It felt like being valuable, which is the most flattering thing, and the hardest thing to see straight.
Being the person they come to while being the person they wait on - that’s the blocker.
You're a bottleneck with good performance reviews
So go look. Whose work runs through you? What breaks if you take a week off — which you are also entitled to do? If the honest answer is "quite a lot," then you're not indispensable. You're a bottleneck with good performance reviews.
Make do. Don’t be in the way. Be loud about what is in the way.
My grandfather would've had that figured out before lunch. Took me twenty years, but I got there.
Top comments (0)