The Tao of Voyager Debugging
April 24, 2024•1,919 words
(Disclaimer: I know about as much about Taoism as about computer rocket science, which is to say, I get excited when I can read something about it. This text is one guy's exploration, opinion, and thought experiment. Email me at hi at vic dot work if you want to tell me what I got wrong. Thanks.)
When the news of NASA engineers managing to remotely fix an old computer way out there in outer space makes your fellow net citizens cry, you know you've found a good spot for yourself on the internet.
This is what I saw on my Mastodon feed earlier this week. The news was momentous: after months of trying, NASA scientists worked out how to make the Voyager 1 computer make sense again. The machine is 46 years old, and over 15 billion miles away. Bear that in mind the next time your Ma FaceTimes you to help her fix her PC.
Still, I thought it interesting. I was touched, too. But what was so touching about that story?
I started writing about this - started by making a list of all the skills it probably took to fix Voyager. At first, I was just hoping to show how these are not necessarily what all the aspiring IT professionals value these days - good teamwork, good documentation, that sort of thing.
But then, as I was contemplating the need for NASA fixers to squeeze any attempted fixes into an insanely laconic set of messages, the things started to align differently. It was no longer just a checklist of skills.
The mindset of a NASA Voyager fixer began to resemble something much, much older - and equally moving: the concept of the Three Treasures of Taoism.
The thought made me smile. If there is a Zen of Motorcycle Maintenance, maybe there was a Tao of Voyager Computer Repair?
About Tao Te Ching
Tao Te Ching is a text whose lives, interpretations, and histories are myriad. That's the good news: every time someone reads Tao Te Ching, they are likely to discover something new.
The tricky news is that every time someone decides to interpret this classic text, or (gasp!) translate it, they are likely to reach new conclusions and try new solutions, too. The tradition, history, allusions and symbols which the text has accumulated over the centuries make it even more likely that there will never be a "final and definitive" translation.
I'm telling you this because I'm about to comment on one of the text's most celebrated passages, and borrow three key ideas from it - the Three Treasures. And I'm about to refer to several English translations. Which means that, if I missed your favourite / preferred version - or if I missed a key point in the original, which you are capable of reading - then I can only apologize. As I said above - I'm using this piece to think aloud, and it's my blog, so I'll just go ahead.
The Three Treasures of Taoism
If you read chapter 67 of the Tao Te Ching, you will be exposed to three of the text's core virtues. "Guard and keep them," implores the author.
The Wikipedia article referring to these three concepts is helpful in trying to give as many translation options for these as possible. It also provides a "consensus" translation from among them: "compassion or love, frugality or simplicity, and humility or modesty."
My personal favourite - Ursula K. Le Guin's adaptation - gave me "mercy, moderation, and modesty". I think when I started thinking about this topic the other night, these were the words I thought with. But I like the consensus option from Wikipedia, so I'll choose to go with these.
How do these relate to the story of the Voyager Debugging?
Love and Compassion
Philae, the Rosetta Mission lander module, had its own Twitter account. Even back when Twitter wasn't X, this was still one of the best things on there: here was a piece of tech whose mission was narrated - in first person - on social media. And people loved it.
I think it's easy to project too many feelings or emotions onto our gadgets. We are frustrated, so it's obvious that the printer is conspiring against us. We yearn for good stories, so Philae's mission narrative is cute and heartbreaking. The need starts with us; the inanimate objects simply fill it as best they can.
But there is something more to it, and I think this additional aspect is what makes the difference. It's the change from "aww, a cute space robot is tweeting" to "We'll try to protect and fight for this thing, because we love it and we're proud of it."
That's why you keep fixing a car that saved your ass countless times, even though you could have spent the repairs budget on several new models already. That's why your bike or boat probably has a name and/or a gender.
And I think it's this love or compassion that drove NASA teams to keep trying to un-break the Voyager computer. The mission was slated to last for 4 years - so it's exceeded its planned duration ten-fold. Voyager has now been in space longer than I've been alive. Aging gracefully. Still doing work.
You don't just give up on a piece of gear with that much history. You try your best, over several months, to come up with a fix. And it's not an easy task.
Simplicity and Frugality
Can you imagine sending a text message across 15 billion miles?
Now, imagine more: that message is meant to do an important fixing job. On a very old computer that got broken. And keeps moving further away from you on a spaceship it was supposed to manage.
This is the ultimate exercise in simplicity and frugality.
Let's start with the message itself. You can't exactly send a zipped software patch or a plugin with an update. The computer's memory is never going to be big enough to execute something like this. Think Tesla's over-the-air updates... but they have to be thousands of times smaller, and over WAY more "air".
Speaking of this - let's also talk about the time it takes to do all this. NASA couldn't afford to try everything it could think of - all at once. It takes a day, right now, for a message to reach Voyager - and another day for it to send something back. So you're working in two-day intervals. This must be like a really constrained chess game: yes, there may be hundreds of paths to a win, but what if you only have five moves before you're in trouble yourself?
Finally - there's the aspect of a "maintenance culture". The people who designed Voyager probably don't work at NASA anymore - or anywhere else. And yet the fix succeeded. That must have been because the documentation on this project was second to none. And because anything NASA builds, it expects to run into big trouble - so it builds the culture and solutions of saving energy, keeping records, and making stuff redundant and fixable. Doesn't get any more "make do and mend" than this.
That's all well and good, but why should individual people bother? The last virtue might be an answer to this.
Humility and Modesty
It might look better on your CV if you could say that you launched X new rockets this year.
You might be forgiven for choosing to spend your time learning and building new things, instead of poring over code and specs from the 1980s.
The allure of new projects, pioneering things, being in the room where it happens, on the cover of a newspaper - that's what cements NASA's image in people's imaginations. The giant leaps for mankind, you know.
And yet. There were teams of people who spent months trying to fix this thing. Few of them get named in the official reports. And soon, when another comet gets discovered or another one of Musk's rockets blows up, their work will probably not be remembered.
Being OK with all this - "not wanting to be the first in the world" - is the last treasure from Tao Te Ching which fits this situation. There's work to do, so you start doing it. It's not easy, and gets tougher as time goes by. Even now, the Voyager computer isn't fully fixed - it just started communicating, and there's still a way to go.
Whoever at NASA worked at this project, might have known : there are other people doing other things, and their pace is not our pace, and we'll keep doing this work instead.
The reason it matters is this: we need more, much more of that kind of attitude.
Tao and the art of Computer Science
I told you about three ideas which might have been on people's minds as they worked on getting an old spaceship back online.
But I also told you about three ideas which should be on our minds as we look after the machines that are a bit nearer.
This planet, and every piece of gear we ever built here, works thanks to the fixers. They repair and maintain your stuff. They think of ways to solve problems.
Your software - yes, all of it - depends on open source contributors at some point down the line. They stay in the game for as long as their compassion and humility and frugality doesn't run out.
Your internet cables - yes, all of them - depend on a fleet of twenty two repair ships. They are mostly old, mostly overworked, and their crews are stretched increasingly thin.
In our rush to build bigger, faster, and more flashy gear, we leave these teams behind pretty quickly and pretty often. You don't hear about them until something breaks.
And most importantly maybe, you don't get taught any of this, when you start working in tech - or anywhere near tech, for that matter, which is pretty much everywhere these days.
We don't teach repair or maintenance / maintainability anywhere as much as we teach stuff related to build and deployment.
We celebrate "agile" and obsess over AI which churns out code / language / solutions for us. We ignore the effort that goes into fixing, maintaining, and documenting what we built.
Not to mention: we almost never teach the deeper level stuff. You know - why is a machine worth fixing? What is a batch of code really worth? What kind of value isn't captured on your phone's price tag?
This is the kind of syllabus I'd like to see. This is the kind of approach I'd look for - in my car mechanic, my government, the CEO of the company who ships my operating system.
We won't be able to move fast and break things forever. Sooner or later, on our way back from that particular joyride, we'll meet the folks who were there all the time: the ones who slowed down, cleaned up and fixed things for us.
My wish is that we make THAT part of the journey, and THAT merry group of people, just as important, sexy and well understood as the ones who hog the limelight. If Tao helps us get there, great. If there are better ways, my wish is that we find and share them.
Preferably before all our machines need NASA levels of skill and dedication to get fixed.