I’m a software engineer. Been doing it for about four years. I work on large, old web applications. Working on large, old web applications, even if you’ve been doing it for decades, is one of the most insanely daunting things a human being will ever do. This is true: the most complex structures ever created by mankind are computer programs. The large hadron collider at CERN is a distant second. To say the learning curve at software jobs is immense captures neither the scope nor the horror of the experience, so I figured I’d come up with a metaphor.
Only what metaphor? What image could convey this Lovecraftian terror, this yawning chasm of insanity into which only the maddest of us are brave enough to gaze, to laugh hysterically until we choke on our own tongues and die?
I wound up going with a castle. It’s an old castle, and it’s haunted. It’s in, I want to say, Scotland. An elaborate network of cables snake through the walls and floors of this castle. When the cables are activated by ropes and pulleys on various walls, any number of bells in the servants’ area are jingled, triggering a timely and cheerful response from the staff. These cables crisscross and interact with each other in mind-bendingly complex ways that no one really understands, except for Barb, who’s been here forever. (And she’ll mostly just tell you to read the wiki, which hasn’t been updated in since the Crimean War.)
Let’s say you’re the new guy or gal on the team. No one’s crazy enough to ask you to add a new cable and pulley. No, that’s not going to be your first task. (There’s actually talk of adding a new one, but it involves endless meetings with all the leads, two architects, four business analysts, and a very sweaty project manager. No, two—two project managers. It’s slated for a release in some distant horizon of time, probably long after you quit.)
No, your first mission, should you be stupid enough to accept it, will be to fix a single broken pulley. This will help you “get the lay of the land,” a phrase normally meant to convey the image of a two-dimensional plane. In this case it means you’ll be traversing an impossibly interconnected series of Escher-esque hallways and stairwells, coming up every now and then for air, coffee, and the occasional quip of “wow, so complex”, to which your colleagues will only snort and give you a look that says “welcome to hell”. (They’ll also enjoy, at this point, watching you eat your words about how “simple” this bug sounded at the standup.)
But you’re not so easily frightened. You’ve had extensive training, an internship or two, and this isn’t your first large, old web application. You can do this. Hell, you passed advanced algorithms with room to spare. No one tells you what to do.
So anyway, the castle—it’s midnight, there’s a thunderstorm, and in you go. There’s a pulley in the drawing room that’s supposed to summon the help when the user is finished with tea. It hasn’t worked since last Christmas, but everyone’s too afraid to fix it because a) the winter code freeze, b) Barb wrote it three presidential administrations ago and doesn’t remember how it works, and c) the developer who most likely broke it is a miserable pedantic bastard who everyone hates is very satisfied with leaving the hell alone for the rest of forever.
And now the bug belongs to you.
You sigh, crack your knuckles, and dive in. What’s the first thing you notice? Why, there’s no light! You can’t see what’s right in front of you, so the first thing you do is take a wrong turn and fall down a flight of stairs that leads down to the dungeon. But no problem—you’re not too badly bruised. If anything you’re embarrassed because you sort of saw it coming right before it happened. You get back up and leave a comment at the head of the stairs so you don’t do that again. (The next time you’ll stop yourself at the last possible second, cackle wildly to yourself in your cube, and say something like, “Nice try, stairs! Nice try,” inspiring your cube neighbor to don his headphones.)
You have a candle. Did I forget to mention this? Yes, you have a candle. It’s not very big, but it’s reliable. (And it’s not lit. Why didn’t you light it? What’s wrong with you? That comment you left at the head of the dungeon stairs won’t do you any good if you can’t read it. Go light it. Barb has the matches.) So now you can see, but you can only see what’s immediately in front of you; everything else is shrouded in darkness and treachery. And spider webs—there are spider webs everywhere. Dear God, why are there so many spider webs?
You also have a map. It’s not a very helpful map, because really it’s only a bunch of pictures of various rooms in the castle—it doesn’t show you how to get from one room to the other, nor does it show you where in the castle each room is located. And by the way, every room relies on a vastly complicated interconnected system of pipes and electrical wiring, so if you want to change something in a room, you may have to deal with gallons of raw sewage and yards of exposed electrical wires. (The electricity isn’t for lighting, unfortunately—it’s mostly for powering an elaborate system of speakers that play Halloween sound effects records, pictures that spin around on the walls, and mirrors that light up from behind and show you faces of dead things. Because castle.)
Your first task is to find the drawing room. You venture into the castle and have a look around, your candle trembling in the damp, foul air. You turn left. No, those are the stairs, dammit! You turn right. Hmm… Doesn’t look like a drawing room. Whoops! No, that’s a closet with no apparent function other than housing a caged lion. (Why on earth is there a caged lion? Never mind.) You fumble on. This goes on for half a day until you chance upon the drawing room while attempting to find the room next to the drawing room, in order to find the drawing room, if that makes any sense. (It doesn’t.) You make a note of where you are and how you got there and sit down to eat a mushy tuna fish sandwich. No mayo because you were too tired to remember it this morning, and the cafeteria doesn’t have any of those little packets. Seriously? Why? What cafeteria doesn’t have those little packets? This one, you guess. Also your chips are stale.
Back to work. Your next task is to find the broken pulley. No problem! At least the worst part is over—you found the goddamn drawing room. You lift your candle to the wall. Nope, no pulleys there. You try the next wall. Nope, no pulleys there, either. (Hmm…) You try the other two walls but still no pulleys. In desperation you also check the floor and the ceiling.
At this point you exit the castle and walk over to the lead’s cube. She’s on the phone. You wait ten minutes and walk over again. She’s off the phone, but she’s in the middle of typing what looks like a very long and angry email. You manage to choke out your question about the missing pulleys in the drawing room.
Silence. Did she hear you? Hard to say…
You’re just about to head back to your cube when someone behind you speaks. He has overheard your question and delivers the very unwelcome news that there are in fact seventeen drawing rooms in the castle, and that you were probably just in the wrong one. Oh, and they all look exactly the same, except for that some of them have pulleys and some of them don’t. (No one knows which ones or how many. Or something. It’s on the wiki.)
You go home for the day, defeated.
You show up bright and early the next morning. You’re not letting this castle get you down, no sir-ee! As the caffeine kicks in you fantasize about announcing your victory at the next standup. You’re so close. You fire up the castle and go to work, running immediately to the drawing room to pick up where you left off, only to remember that there are seventeen other drawing rooms that look exactly like this one, and this is the wrong one, and you’re nowhere. Even your mounting caffeine rush can’t stop the feeling of complete deflation that follows this realization.
You stare at your phone for an hour. It’s not on.
Two days later you find another drawing room. This one has pulleys—hallelujah! You start yanking them like they’re connected to some gilded deus ex machina. Nothing happens. How are you supposed to verify they all work? Shouldn’t an army of servants rush into the room, asking how they can help? Maybe they know which one is broken!
No, another developer tells you, there’s no staff in the pretend castle. (I may have failed to mention this as well—the real castle, the one that’s actually out there in the world and being used by real people, is called the production castle. This is not that. This is the pretend castle and it only has half of the things.) In order to find out if the pulleys work in the pretend castle, you have to go down to the servants’ area and listen for the bells yourself. Basically you are the help.
How do you do this? You have to be in two places at once. Wait, where was the drawing room again? Did you write it down? The correct one? Well, you’re not even sure that the last one you saw was the correct correct one—you only know that it’s a drawing room with pulleys.
Nope, you didn’t write down where you were. Back to square one. You go home defeated.
The next day you arrive full of hope and unjustified optimism. You’ve had a full night’s sleep, and you only dreamt about the castle twice. You have every reason to believe that the second dream was your unconscious mind’s way of solving the puzzle as you slept, so that fixing the real thing will be a piece of cake.
You find the drawing room with the pulleys. At least you think it’s the one you found yesterday. There’s literally no way to be sure. You fucking write it down this time. Got it. If you lose your way again, you will be able to zap right back to it. No problem.
You race down to the servants’ area (you wrote that part down yesterday, thank Christ) and hook strings onto all of the bells connected to every single pulley in the castle (all 206 of them) and drag them back to what you now hope in the name of The Almighty Father is the correct drawing room. (You’ve been rethinking your atheism lately.) You attach little bells of your own to the strings you just attached to all of the real bells downstairs, so now you will know—you will know—if all of the pulleys in this piece of shit room work or not.
You go to lunch with an uneven feeling you can’t quite put your finger on. You later realize that feeling is the realization that you haven’t even started fixing the actual bug yet.
You come back and yank on the drawing room pulleys. Nothing happens. Why is nothing happening? You’ve tied little strings onto all of the bells in the servants’ area and dragged the strings back up to the drawing room and tied on little bells of your own, and none of them are ringing when you yank on the pulleys. You yank the pulleys so hard that you worry for a second that it’s going to bring down the entire castle.
Barb is on another call. You stand at her cube, fuming, waiting for her to wrap up. She’s giving you a fearful look. Are you going to murder her? She writes something down on a post-it note. It’s a name.
Who in the living fuck is Jim Amberblamby?
That same developer who helped you out before, with the seventeen different drawing rooms, tells you that Jim Amberblamby is in charge of activating all of the bells in the pretend castles. He works remotely in the Virgin Islands. Also he’s part time. Oh, and also he’s leaving at the end of the month to finish his novel, and they don’t know who’ll be replacing him. Probably a contractor with even less bell ringing experience than you.
You send Jim an email. Nothing. You send another. Days go by. You try calling, but realize he doesn’t have a number listed in the corporate directory because he’s remote.
You go back to the developer who’s helped you along this whole time, this saint of saints, and fall to your knees. You just want to make the bells ring. How can you make the bells ring?
The saintly developer walks over to your cube, enters the castle, rewires a bunch of things that only exist on the complex number plane, and now the bells work.
Great! What did he do? You should write it down. He starts explaining it to you, but someone taps him on the shoulder—it’s time for a meeting. As he’s walking away he yells that it should be on the wiki.
You look back at your pretend castle. You’re afraid to touch it. You take a deep breath, go to your now least favorite room, and yank a pulley.
A bell rings.
You jump for joy! You scream-laugh into your hand and then jump for joy again!
You go home not so defeated.
You literally run to your cube the next morning, having only dreamt about the bells four times last night. Let’s do this! Let’s go ring some bells!
You spend an hour just yanking pulleys and ringing bells, wondering at this marvel of technology that you sort of helped make happen. Bells, bells, bells!
You spend the entire rest of the day in meetings.
You spend the entire next day in meetings too. It’s now the weekend.
It’s Monday morning. You can’t stop dreaming about the pulleys and the bells. Why is this happening? What have you become? Doesn’t matter. The pulleys and bells are all there is anymore. That morning you yank pulleys and ring bells for two hours and go to a three-hour meeting. You spend the entire meeting wondering if you can jigger the bells to play a little tune. You could make a living at this, turning bells in imaginary castles into precious little music boxes! Yes you could!
You come back from lunch and tell yourself you really need to get back down to it. You force yourself to not play with the bells, and remember that you were supposed to go to a friend’s birthday party last night.
Wait… in all the euphoria of the pulley yanking and the bell ringing you forgot one thing—none of the pulleys are broken. You’ve been in the wrong drawing room the whole time.
You go home defeated.
The next morning at standup you report that you’re still working on that one broken pulley. Your manager tells you that you’ve burned through all of your allotted time for this bug, and maybe they should hand it off to a more senior developer and give you something a little easier. You’re not having any of this. You tell your manager you’re going to keep working on it. The bells belong to you now. They’ve always belonged to you. You get an additional eight hours to fix the broken pulley, and more than a few sideways stares from the other developers.
Now you know what to do. You know how to a) find a drawing room, b) connect the bells in the servants’ area to the pulleys in the drawing room, and c) figure out if any of the pulleys are broken. You need to write this down. You take very careful notes of each drawing room you find and whether the pulleys are broken or not. You repeat this process seven times. You work through lunch.
The eighth room is the one. Without even thinking you just start yanking the pulleys and almost miss it—the absence of a bell. You’re so consumed by the repetition of it, so entranced, that you nearly move on to the ninth drawing room before doubling back and re-testing the pulleys.
Sure enough, you’ve found the broken pulley. You rejoice! You scream-laugh into your hand and jump up and down in your seat. You’re so overjoyed that you don’t even try to get out of a twenty minute monologue from your cube neighbor about his new baby. You don’t want to murder this person, not even once. You’ve found the answer, and you feel like you could do literally anything. You call your mother and ask her how her day is going. She asks you what you want. You tell her about the bells.
You spend the rest of the day in meetings.
You come back the next day, just full of zeal. Full of zest, and all of the things that make this job the best job in the world! You are a wizard. It’s true. Your friends can’t comprehend what you do—it’s too far beyond them. You spend an hour reading comics online because you’re so happy. The rest of this bug will be a breeze.
It’s time to get back to work. You fire up the imaginary castle, go directly to the correct drawing room, and yank on all the pulleys. Sure enough, one of them doesn’t make a bell ring. You’re a genius.
Now… how to fix it.
OK—no, it’s fine. You can do this. You’ve got this. Barb walks by. You say something like, “Hey, I found the thing.” She pretends not to hear you. You don’t know why, but for a second there you thought she’d stop at your cube and give you a pat on the back and tell you what to do next. (She doesn’t.)
It’s no matter. You get back inside the castle and right up to the broken pulley. “You’re mine,” you mutter as you rip off the wall and feel your way up to where the pulley disappears into a rat’s nest of other pulleys and other things that don’t really look like pulleys but could possibly be pulleys from another room. They literally all look the same and there are dozens of them. (Shouldn’t they at least be color coded or something?)
OK, wait—now your pulley cable is snaking down into the floor. At least you think it’s your pulley cable.
No problem. You start ripping up floorboards. You lose your pulley cord, so you rip up a few more in a strained effort to find it again. You accidentally flood the room with raw sewage, expose several electrical wires, and destroy the castle in a fiery explosion of electromagnetic shit.
You have to start all over.
You rebuild the castle from scratch, run back inside, and fall down a flight of stairs.