s11e31: Team Calculating Monster meets Team Wild Yak
0.0 Context setting
It’s Tuesday, April 12 2022 in Portland, Oregon. Yesterday was snow, today was rain and a hailstorm.
Listening to: The Severance soundtrack.
A quick reminder: Things That Caught My Attention, Volume 1 collecting the 50 best essays from episodes 1-50 is out now. You, my three thousand-odd subscribers, can get a copy with 20% off.
Paid supporters and subscribers get a free copy, so imagine a great upsell here to become a paid supporter/subscriber.
1.0 Some things that caught my attention
Team Calculating Monster meets Team Wild Yak
Let’s say, for example, you had some sort of big-ass application and its job was to:
- Get given some numbers
- Do something to those numbers
- Not fuck up
I mean sure this ultimately describes every single computer program, but let’s just restrict it to something which has a more explicit and tightly-defined job of “running calculations”. Maybe it’s a payroll thing, I don’t know.
Rule 3, Not Fuck Up, is the most important rule, right? People like to be paid and they like to be paid the right amount. In principle you want to get that calculation right even though I suppose in the year of Our Highly Leveraged Capital 2022 you can totally fuck around with how much people get paid because what’re they going to do anyway? It’s not like wage theft is a thing, respectable white collar managers would never behave as such!
I digress.
Say you have this system and it’s being run by a bunch of people who include The Customers, in this case whoever’s in HR, and then it’s got The People Who Make It, who might be in-house or a vendor or whatever, and then some consultant comes along with some book which for some reason has a Wild Yak on the front and demands you bow down and tribute to the god of DevOps and Continuous Development and Agile, the latter of which in principle sounds good because, sure, yoga right? Maybe it’ll help lower your blood pressure and anyway, you’re in your late 40s now and you need to make sure you get out of bed the right way if you don’t want the rest of the day to be a write-off.
So now you’re supposed to be doing this Wild Yak thing and then before you know it there’s a whole bunch of other people turning up about how you should make your Calculating Monster Go Faster because what if HR suddenly want it to calculate new and exciting things? In principle everyone is nodding along to this because sure, what kind of person doesn’t enjoy finding new things to calculate? How else would bureaucracy continue to grow?
Great. We’ve got a Wild Yak on a PowerPoint and everyone is too polite to ask what the Wild Yak is for and everyone’s nodding and then suddenly someone says: wait. The way you’re making your Calculating Monster is all wrong. You’ve had a bunch of jokers in here. It’s terrible. The Wild Yak is not amused. It’s, like, totally not Wild Yak compliant.
Well you wait for these Wild Yak people to go away and while you’re recovering and they’re not in the room you look in the mirror, maybe pull at your skin a bit and grin and show your teeth, all that kind of stuff you’d see in a scene like this in a film and you think to yourself:
Hang on a second. Calculating Monster is actually totally fine. Nobody has shouted at me about the Calculating Monster in, like, at least three quarters. The last time Calculating Monster went wrong was when Brian was ejected with that quite nice severance package and I started looking after Calculating Monster. Why should I listen to these Wild Yak people who want to change what we’re doing? Sure we could be boldly calculating new things we’ve never calculated before, sure we could be seeking out new combinations of mathematics more quickly, but it’s not like we’re too slow. Right?
But no. The Wild Yak people are busy making sounds like “this is all terrible” and “burn the Calculating Monster and its calculating acolytes to the ground and salt the earth and hunt down their men and ensure they never reproduce, erect giant monuments and spikes in the earth proclaiming that where Calculating Monster stood, there is Nothing Of Value and Nothing To Be Held In Esteem”.
These don’t make sense. Calculating Monster works. Yak People say Calculating Monster is an abomination. Who’s right?
Weeelll....
I’m kind of on the side of the Wild Yak people here, but I want to show how Team Calculating Monster (TCM) totally have a point and perhaps one way of getting TCM on-side is to understand their point of view.
See, TCM’s actual lived experience is that the Calculating Monster works. The way Calculating Monster works that Team Wild Yak find so offensive is that TCM employs hundreds and hundreds of Baby Calculators, like, maybe thousands of them and every time an Exciting New Calculation is about to be released to crowds of HR and be received with orgiastic celebration, that Exciting New Calculation has gone through a very specific process.
That process is something like this:
- Someone at TCM, probably at HR, has discovered an Exciting New Calculation
- They painstakingly write that new calculation down in the Book of Requirements.
- What they write down has an example, like if you give Exciting New Calculation and orange, then it will give you an apple.
- Someone goes and implements the Exciting New Calculation using, I don’t know, Prolog, because reasons, and some of Team Wild Yak think it’s hilarious but some other Team Wild Yak people are all “sure, whatever works y’all”
- Now the exciting part. Before the Exciting New Calculation is released (to orgiastic celebration, pay attention), someone at HR on Team Calculating Monster is Chosen. This might be a younger person or it might be someone who has simply really, really cared about the detail of the Calculating Monster.
- The Chosen is given a preview of the Exciting New Calculation. This is probably why they need to be so careful about Choosing the Chosen: a regular person would totally have their mind blown by the Exciting New Calculation. What’s the job of the Chosen?
- Well, it’s the job of the Chosen to give the Exciting New Calculation a bunch of apples and make sure they come out as oranges. This Chosen sits down at their Data General Dasher-esque terminal, selects a bunch of apples that Don’t Feel Evil and pushes them into the terminal and checks that Happy Oranges come out.
- Now sometimes, and nobody’s happy about this, sometimes, the Chosen puts an Apple into the Terminal for the Exciting New Calculation to do its stuff and what comes out is not an Orange. It’s, I don’t know, a very unhappy finger trap, or it’s a coffee cozee that’s suffering from ennui. Not to fear! The bit of TCM that’s in charge of implementing the Exciting New Calculation gets told and everyone works super hard until that particular Apple reliably produces a happy Orange.
So, TCM goes through this process and what do you know, they keep going through it and what you think is: hey, this is working! Our process is consistently producing robust calculations, we always extract the right fruit and transform it into the right other fruit and then whoever gets to load it into whatever it is they do with fruit afterwards.
And everyone’s happy.
But Team Wild Yak are lurking outside on their M1 MacBooks Pro or whatever and you can practically hear them hissing (that’s super weird, but I guess some of them do it) because they hate this process and some of them are saying: YOU DON’T KNOW WHAT YOU DON’T KNOW! YOU’RE JUST BRUTE FORCING IT!
Because in a sense, what it comes down to is this. TCM’s process involves finding a Chosen and for that Chosen to check a bunch of apples and make sure they turn into oranges and yes it’s a process, but it’s one that isn’t very fast. It is, like, a manual fruit juicing process. You could make it faster, and in a way, TCM have made it faster, which is why although their holy book said there should only be one Chosen in each generation there are actually TENS of Chosen now, it happened in some weird procurement definition Chosen Activating Event, and now TCM don’t rely on just One Chosen finding the right apple and helping TCM make sure All The Apples are turned into Oranges. Now there’s, like Ten Chosen doing it!
And everyone’s all: Look, Team Wild Yak. THIS WORKS.
And Team Wild Yak says: yes, but it could be better. Because your brute force apples to oranges search is manual and instead you could automate it and it would be much faster.
What do you mean, says TCM?
Well, says Team Wild Yak (TWY), your Ten Chosen. They’ve got their special Testing Apple Orchard, right?
Yeah, says TCM.
The thing about your Testing Apple Orchard, says TWY, is that it’s only so big and it can only grow so big because it needs an individual Chosen to dream up a new Apple that doesn’t turn into an Orange and then if it doesn’t, they always give The Calculating Monster that apple and add it to the orchard, right?
Yes, that’s right, says TCM.
And then each time you release an Exciting New Calculation, you have your Ten Chosen go and get each of those apples from your Testing Apple Orchard and feed it into the Totally Not A Data General Dasher terminal, yeah?
Get to the point, says TCM.
Well, says Team Wild Yak:
- Your Testing Apple Orchard takes a finite amount of time to go through that’s limited by the speed of a Chosen
- Your Testing Apple Orchard can only be a certain size, or if it grows, it can only grow at a certain rate, limited to the speed of a Chosen and how quickly they can dream up a new kind of Apple to test
So? says TCM.
Well, says Team Wild Yak, we should use robots.
Say what? says TCM.
Robots. We should totally use robots. They’re faster than Chosen and besides, what robots will do is that they will dramatically increase the size of your search space and also can dramatically increase the growth and discovery rate of your search space.
Can you say that in English, says TCM, we don’t put Wild Yaks or other animals on our books.
Well, says Team Wild Yak:
- You’re sure Calculating Monster works because it’s supposed to turn apples into oranges and you know it does that because you give it an apple and it turns into an orange
- But you haven’t checked other fruits, and you can only check so many other fruits so quickly
- There is a way for you to be more sure that Calculating Monster will calculate the right things and Not Fuck Up that doesn’t rely on you brute-forcing the apple search space.
Okay, says TCM, that took quite a lot of time for you to get to and I’m not entirely sure it paid off or makes sense.
Don’t worry, says I (because I am Team Wild Yak here, obviously), what I’m trying to get across here is that you think everything is fine because what you’re doing is you have someone manually checking that a calculation works in UAT and sure that works, but it’s a manual process and you have no idea what you don’t know. It hasn’t broken yet, and I don’t want to turn you into a gibbering maniac, but the space of what you’re not checking is much larger than what you are checking. This isn’t arguing for testing in depth, but it is trying to point out that your current testing strategy isn’t necessarily assuring you of robustness in the way you think it might be.
Are you shitting me, says TCM, you took about 2,000 words to say that?
Yes, says I. But hopefully it was at least mildly entertaining along the way and the education and joy was in the journey?
Whatever, says TCM. Just stick it in Jira.
Any references in this story are totally fictitious, etc. No Calculating Monsters were harmed, etc.
Eh, no grab bag today because that took about 20 minutes and I have to admit I had no fucking clue where that was going. It made sense at the time.
How are you doing? Have you dipped into the book? Maybe just a little? How was it?
Best,
Dan