Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
"Your mission, should you choose to accept it..." A stakeholder has brought you a failing project and wants you to save it. Do you accept your mission? Do you scrap the project and rewrite it? Deciding to stabilize a failing project can be a scary challenge. By the end of this talk, you will have tangible steps to take to incrementally refactor a failing application in place. We will also be on the lookout for warning signs of too much tech debt, learn when tech debt is OK, and walk away with useful language to use when advocating to pay down the debt.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "Rescue Mission Accomplished" presented at RailsConf 2021, Mercedes Bernard addresses the challenge of assessing and stabilizing failing legacy Rails projects. The primary focus is on the practical steps needed to evaluate whether to refine or rewrite a problematic application. The speaker emphasizes understanding the application's current state and context. Key points discussed include: - **Assessing the Legacy Code**: Start by trying to run the project locally and documenting the technology stack to understand its maintenance status. - **Evaluation of Technical Debt**: Acknowledge that incurring some technical debt during the project's lifecycle can be acceptable for meeting key business objectives but must be balanced to avoid long-term problems. - **Understanding Stakeholders' Context**: It's critical to communicate with stakeholders to grasp the business reasons behind previous decisions that may have led to the current technical challenges. - **Audit and Analyze the Code**: Conduct thorough audits of the code, including security assessments, test coverage evaluation, and data integrity checks to identify weaknesses. Utilizing tools for static analysis can help gauge code quality and technical debt. - **Incremental Improvements vs. Rewrites**: The talk illustrates that many teams opt for rewrites out of frustration, often underestimating the complexity and time needed. Bernard argues that most legacy applications can be salvaged with suitable refactoring. - **Creating a Stabilization Roadmap**: Construct a prioritized list of tasks that should be addressed to stabilize the application before adding new features. Key tasks include implementing CI/CD pipelines, upgrading languages and dependencies, and enhancing test coverage. - **Communicate with Stakeholders**: Regularly update stakeholders about the stabilization plan and educate them on the importance of these tasks, aligning the discussion with their priorities to ensure buy-in. - **Final Recommendations**: Advocate for code quality while keeping business constraints and perspectives in mind. Aim for incremental investments to maintain a stable codebase to avoid future failures. Bernard concludes by highlighting the importance of gradual, methodological approaches in refactoring projects and communicating effectively with all stakeholders involved. Success in stabilizing legacy applications lies in thoughtful planning, understanding the historical context of decisions, and prioritizing long-term quality over quick fixes.
Suggest modifications
Cancel