You, Unilateral Work, And A Lizard
You’ve opened a pull request.
You didn’t exactly mean to open a pull request, not when you set out. It’s just that one thing sort of led to another, and now you have one.
A while ago, you looked at some code, or you read an article, or you had a conversation, or maybe it was more like an argument. And whatever it was, it raised a question.
Maybe the question was, ‘could this work?’, or maybe it was the variant of this that has a swagger and hides its identifying mark, more like, ‘I’m going to show you this will work’.
Then the question found a spare moment, a crack in the pavement to grow in, and it morphed into you doing something, and the doing something grew and turned into a ‘spike’, but using time that you never needed to really negotiate for, answering something you haven’t necessarily got buy-in for yet. And in its own right, that’s probably fine. You should try stuff.
The time was made available off the back of some ‘ah let them give it a go’ loose approval, or using your role’s autonomy, or a lightly obscured gentle misallocation of some other task’s time, or you wasting your life outside your salaried hours for work purposes which by the way we’d like you to stop doing. Again, whatever it was. You found some time and you just did it.
And then the spike started looking quite good actually, and then it sort of wasn’t a spike so much, because you can’t in all honesty see that you’d do very much differently if it wasn’t a spike really, and it’s done now, and it works, and although you appreciate that this isn’t exactly how we do things, maybe we should just ship it?
So now it’s a pull request.
And now you have to get me to approve it.
—
Or maybe it’s not exactly that.
Maybe you’re a fully-fledged expert in some niche, like a specific field of security. And you absolutely do know your stuff. That’s exactly why you got hired.
But to get your job done, you need us to do something in our world. We’re probably not going to understand it, and that’s alright, not a problem, you don’t expect us to. It’s your field, you can lead the way, you just need us to accept it.
So you’ve got the solution all figured out, and you’ve done your research. You know that, to us, it will sound a bit weird, raise a few red flags. But you’ve thought about that, and you’ve looked into how our thing works too, without needing to bother us which you think was good of you, and you have the answers.
So now you’ve opened a pull request. Or you’ve written a proposal. Or you need us to answer some complex question late in this whole process. Or whatever it is you’ve done as technical preparation.
And now you have to get me to approve it.
—
I’ve been you at times. You with the not-a-spike pull request much more than you with the trust-me-I’m-an-expert thing, but yes, sometimes that too.
But I’m not you now. Different hat. I’m the principal software engineer or the tech lead or the product owner or whoever else is standing in the way between you & admittance. I’m responsible for this thing we look after, and I like my cup of tea served boring.
You’ve just given me this whole piece of work that you’ve unilaterally done. Hi! Have we ever talked about this thing before? Have we ever met before?
—
Well, guess what, I’m concerned about this.
I’ll be honest, I don’t understand your work. It’s quite a lot. I reckon I might be able to understand it, although that might be unfounded, and so I can give it a go. But either way it’s going to take up time that I don’t have an abundance of, and you’re going to be secretly annoyed at the hold-up, but it’s fine.
And then I do find some time somewhere, and I do look at it, and I do sort of understand it, and I can admit that it might work. But I don’t exactly like it.
Look, I spend a lot of my time shielding other people from stuff.
You, the junior engineer? I try and shield you from your entirely anticipated and within-parameters mistakes. I try and save you from them cascading outwards, scaling up, and messing up your day, let alone anyone else’s, and if I’m working with you, I do that by trying to stay close to what you’re doing and intervening early & often.
But now your work is here, and it escaped that, and it does have mistakes in it, and they’re expensively deep in the foundations, or photocopied a thousand times, to a point where it’s a problem, and I don’t like it.
You, the senior software engineer? You don’t make those mistakes any more, but I shield you from having to constantly reason with our full technical strategy. You might imagine that to be something you do want to be part of, but it’s a different job to yours and I’m not sure you’re right. I go to a lot of dry meetings about all sorts of things and it all adds up to me manipulating the workstream — that you’ll ultimately be fed — into something that is dependency-ordered and aligned and risk-appropriate. I try to be fairly open & candid with you, but I don’t habitually tell you everything that I and the people at my level have in mind, because it will distract or overwhelm or spook you, or otherwise diminish your focus on the assigned work and undermine the performance that’s expected in the job you do have.
But now your work is here and it’s bypassed all of this barely visible, small-m management, and I think about what would have happened if it had been through that, and I don’t like it.
And you, the expert? It’s a similar tale. I don’t want you to be hearing about our problems and challenges and plans all the time, whether it’s coming at you as an ask or just an endless cascade of information. You’ve no doubt got your own important business to deal with. So I surface or escalate the issues that really matter, and keep a lid on the rest within our group.
But now your work is here in my world where all of that detail and chaos still exists nonetheless, and I think about your request’s relationship with all the things I haven’t told you about, and because you’re the expert, I don’t understand your work well enough to really have a handle on that, and I don’t like it.
—
I don’t like it. Yet here it is, a completed work. You’ve spent your time on it, but you’re not personally a business and you’re still getting paid, so it’s not actually time you really value, it’s the investment of emotional energy, and your hopes of accomplishment, and opportunity costs of delays, and being taken seriously, and all the other human things you feel.
So it sucks to be me, pointing out my dislikes, or even questioning you, because I know you’ve put work into this, and I know what it’s like to be on the receiving end of this, and I sort of wonder whether I should just let this one slide.
And it sucks to be you because it’s done and it works and all of my critique is very well and good in theory but the fact remains that we are still just one green tick shy of it being done-done.
Hey, I don’t dislike you. You’ve not really been unreasonable in any of this. But we are just structurally not going to have a great interaction here now. It’s literally too late.
If I want to press my objections, I’m on the back foot and all I can really do is mitigate the negatives. If I make concessions in the interest of harmony, our technical leadership is weakened and everyone — including you — loses out eventually, because you’re not being corrected, or challenged, or held accountable, or because our technical cohesion is evaporating through regular admittance of things we’d have preferred to have been done differently.
Neither of us is happy.
—
You already know what the answer is. It’s obvious.
It’s consult early.
If it’s correctness or alignment that you’re going to fall down on, get your validation whilst the consequences are cheap.
If it’s understanding or empathy or foundational acceptance that you need, soften me up. Generate some early buy-in when it’s a little, intangible thing, and not a truckload of full-fat detail that I need to wade through.
I know that this feels like a thing you shouldn’t have to do, because you know you’re right, or at least your work product seems to be functionally correct, and the work should surely speak for itself. And I know that when it’s in progress, and you’re in the zone, and you don’t want to slow down to talk to me about something that isn’t even ready to show me yet, it doesn’t seem like there’s a good moment. I get it.
But my primary responsibility isn’t validating your individual facts, and although I’m trying to empower you, my job isn’t about letting you proceed entirely unhindered. It’s safeguarding what we do, with or without integrating your thing. I don’t want to be an elitist, pedantic gatekeeper, but some kind of gatekeeping is ultimately my job.
So I need you to slow down and try and engage with me sooner.
—
And if you’re ready to do that, I’m going to let you in on a secret.
I have a business partner. Maybe they’re more my assistant. I’m not sure. It’s a bit of a weird relationship.
You haven’t met them. But they’re involved in quite a lot of my work. And in many ways it’s really them you need to please here, not me.
Let me introduce them by handing this writing over to them.
—
Hey! Woooo! Nice to meet you! I gather you’ve met Rob. I’m also Rob! Confusing!
Well, I’m part of Rob. Part of his brain! The lizard brain, they say! Lizards are fast!
Don’t tell anyone this because we’ll get in big trouble but I basically run things around here. Exciting! I like eating burgers and playing Zelda! I don’t like sabre-toothed tigers or shadows!
You with the serious science might suppose I’m the amygdala or something. And I guess I am. Haven’t thought about it. But I’m just not that purely defined. Some of me is deep-seated primal instinct, but some of me is slightly higher order shortcuts and strategies. Not everything is pew-pew-pew, throwing myself through a plate glass window in a gunfight. I can think for, like, three whole seconds sometimes. It’s just never going to be deep or fancy, you know?
Maybe I’m Rob’s laziness or maybe I’m his effectiveness. Why not both?
I don’t want to review your work! No! I don’t want to read all that stuff you wrote. Who’s got time for that? I don’t want to look up who you are and what your job is and I don’t want to worry about what any of that means, although I am excellent at initiating worries when I feel like it, so watch out. I don’t want to try to work out what level of shared context we’re likely to have and guess whether you’re aligned to that or whether you know what you’re talking about in that context. BOR-ING.
But, between you and me, I do want to say yes to things. Specifically, I like to say, ‘yeah, that’s fine’ to some undefined percentage of things each day and then never look at them again. It gets rid of stuff and keeps this place tidy!
So I want to take one glance at your name and your little Slack avatar and immediately remember that we talked before and that you were nice to me and that you seemed eminently sensible. I want to read maybe one in four words of your ‘hello again’ message as fast as I can and for it to sound a lot like the thing we talked about back whenever. See, I know about things!
I don’t want to bother recalling and replaying all of that history, and I certainly don’t want to relitigate it. I want to very quickly fish out maybe three pieces of data from when it was just a heads-up from you: it was a bit weird, you made me feel OK about that, and we had basic agreement in principle.
Now that time has passed and the result is here, I want to skim read your finished work, scroll, scroll, hurray it’s the end, and I want it to instinctively fit with my expectations, which were set by our prior contact. To you, this might look slapdash, but I’m not green-lighting any old nonsense here. I’m taking measurements and I’m doing spot checks and I’m looking to match patterns, and I’m really good at this by the way, not because of software engineering but because of my other hobby of staying continuously alive.
I want to feel in my little lizard brain heart (what?) like it’s probably going to be fine, because if I don’t feel like that, I’m going to scream, and then Slow Brain will wake up, and there will be a lot of paperwork for everyone to do.
And also, you’re costing me energy and I’ve got a lot of other stuff on, so I want this to be over. You should help me with that!
Now, what was it you wanted again? Run it by me and if it sounds good then I’ll give it a rubber stamp. I’ll put it in Slow Brain’s out-tray for you. There’s a chance I might flag it for attention at 3am for no reason; I can’t promise you I won’t. But otherwise you’re good. If you need me, I’ll be here, half-listening to you whilst I keep an eye out for tigers.
Let’s go play with bikes! 🚲🚲