Talks

Spacecraft! The Care and Keeping of a Legacy Application

Spacecraft! The Care and Keeping of a Legacy Application

by Annie Lydens and Jenny Allar

The video titled "Spacecraft! The care and keeping of a legacy application" features speakers Annie Lydens and Jenny Allar presenting at RailsConf 2022. They provide an allegorical journey aboard the fictional spacecraft Legacy, where the team faces the challenge of maintaining an aging software infrastructure. The narrative follows an astronaut named Yuki, who recognizes the need for significant improvements to the spacecraft during a series of missions. The presentation is structured in several chapters that outline the journey from despair to recovery and incremental improvement in legacy applications. The key points discussed include:

  • Chapter 1: Despair – Yuki notices that the missions are taking longer due to outdated and convoluted systems, leading to team dissatisfaction and a loss of faith from Mission Control.
  • Chapter 2: The Black Hole – Yuki contemplates a risky full rewrite of the application akin to flying into a black hole, acknowledging the dangers of abandoning the existing system without thoughtful planning.
  • Chapter 3: Assessment – Yuki contacts a principal astronaut for guidance on assessing the current state of their systems and emphasizes the importance of having a reliable test suite to drive improvements.
  • Chapter 4: Parts Unknown – Yuki realizes the need to evaluate unknown and legacy components of the system critically and decides to focus efforts on maintaining what is necessary.
  • Chapter 5: Recovering Institutional Knowledge – To tackle the confusing parts of the spacecraft, Yuki seeks to recover past knowledge through team collaboration, analyzing logs, and documenting processes.
  • Chapter 6: Socializing Knowledge – Yuki promotes a culture of knowledge sharing and emphasizes the importance of documentation as integral to development work.
  • Chapter 7: Working as a Team – Yuki reflects on how team dynamics and communication affect productivity, committing to regular check-ins and team agreements to foster collaboration.
  • Chapter 8: The Sum of All Parts – The conclusion highlights the philosophy of code stewardship, promoting a commitment to incremental improvements and maintaining the legacy application effectively through teamwork and shared understanding.

The main takeaway from the presentation is that maintaining a legacy application requires a thoughtful approach that prioritizes incremental improvements, teamwork, and effective communication, which ultimately leads to a healthier codebase and a team that can confidently navigate their development challenges.

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.'