00:00:00.900
Hello everyone, thanks for coming to our talk. We're super excited to present this to you today. This talk is titled "Spacecraft: The Care and Keeping of a Legacy Application."
00:00:12.420
I'm Annie, and I'm a developer at Initialized Capital, where I work on software that powers investment operations. And hi, I'm Jenny Allar. I'm a developer at Guild Education, where we partner with large organizations like Disney, Pepsi, and Walmart to provide education as a benefit for their employees.
00:00:19.560
Jenny and I have worked both together and apart on several different legacy applications. Despite how people typically describe software as architecture—shiny, perfect, and new—we have grown to think of legacy applications as spaceships: hunks of metal hurtling through the sky with people inside working hard to keep the ship on course. Today, we're going to talk about the care and keeping of legacy applications, and we will do so through an allegory.
00:01:00.059
Chapter One: Despair. In a galaxy not very far away, there lives an astronaut named Yuki. Yuki lives aboard the spaceship Legacy with his team. Most days are good; the team works to complete missions sent to them by Mission Control. The spaceship has served them well for a long time.
00:01:06.420
However, Yuki can't help but notice that missions are taking longer and longer to complete. The ship, which once felt clean, tidy, and modern, has grown almost unrecognizable. The ship has strange knobs and tubes, the origins of which predate Yuki's time aboard the ship, and nobody really seems to know what they're for. The exterior of the ship has been patched with one-off fixes, and the interior is crowded with baggage from team members, both new and old. The ship's manuals are outdated, and the team's diagnostic tests are painful to run—slow and certainly not comprehensive. They take so long to execute that the team has started avoiding adding any more tests, and they run them less frequently.
00:01:49.479
There's even an entire section of the ship that was built by a former space co-worker who went on a spacewalk and just never came back. Yuki doesn't go to that part of the ship anymore; it's too confusing over there. The last time someone tried to address issues in that area, the ship was inoperable for two days. With the state of the ship, missions are taking longer and longer. Yuki hasn't been able to take a vacation in months, and Mission Control is starting to lose faith in the team's ability to deliver. The situation feels untenable.
00:02:46.500
Chapter Two: The Black Hole. In times like these, it's easy to look out the window of your ship and daydream. Frustrated by the ship, one day Yuki looks outside and sees a nice spaceship flying by. He wonders wistfully if they have cold brew on tap over there.
00:03:01.500
Then Yuki spots something else: a black hole. Yuki has heard of black holes, but this is the first time that the crew aboard the Legacy has gotten close enough to feel its enticing gravitational pull. The black hole symbolizes the promise of a full rewrite. Yuki has heard of other lead astronauts who drove their ships into the black hole. Sometimes it worked, especially when executed nimbly in just the right context.
00:03:58.560
With the state of the ship, Yuki feels the pull of the black hole. What if they abandoned the spaceship? They could start from scratch, build enough bedrooms for everyone, fix their launchers, and eliminate the mysterious craft that have gathered on the ship's surface. It would feel so good. But Yuki also knows the siren song of the black hole disguises the dangers within; if they chose that route, it would be easy to leave the team in a much worse state.
00:05:02.820
They had already lost trust with Mission Control, and going into the black hole would only exacerbate that. To Mission Control, it would appear that they were standing still, making no progress, even if Yuki communicated with them to the best of his ability. Even worse, their competitor ships are always just a few seconds behind. Pausing or hindering forward progress would mean that those competitor ships would zoom right past.
00:05:39.180
If the ship being a mess is the only reason you want to sign your team up for a full rewrite, it's probably not the right choice. Yuki pulls his eyes away from the glimmer of the black hole and considers his ship once more. He decides it's time to do something.
00:06:12.840
Chapter Three: Assessment. To get anywhere, you have to know where you're starting from. Yuki fires up the communicator and calls Amanda, a principal astronaut he's worked with in the past. He explains the situation.
00:06:25.560
She asks him first about their tests. 'We have some tests,' Yuki says, 'but they're slow, some of them are flaky, and there are large portions of the ship that are missing coverage entirely.' Amanda replies, 'There are no shortcuts here. You'll need a test suite running reliably to make progress on improving your ship.'