Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RailsConf 2017: An Optimistic Proposal for Making Horrible Code... Bearable by Joe Mastey The attempted rewrite is over, the dust has settled, and the monolith isn’t going away. After all, it’s still the app that makes all the money. On the other hand, nobody wants to work on it, every new feature takes forever, and your entire team is afraid of making any change for fear of the whole thing collapsing in on itself. In this session, we’ll walk through some of the technical and social problems that arise from difficult codebases. We’ll learn to stop making things worse, to measure what we need to change, and start making progress. In the thousand mile journey, here are the first steps.
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 video titled 'An Optimistic Proposal for Making Horrible Code... Bearable,' presented by Joe Mastey at RailsConf 2017, the focus is on addressing the challenges posed by difficult codebases in software development. The speaker discusses common experiences shared by developers working with legacy systems that become bloated and cumbersome over time. Here are the key points outlined in the talk: - **Commonality of Horrible Code:** Mastey begins by emphasizing that many developers encounter horrifying codebases, often resulting from years of incremental changes without proper oversight. - **Personal Anecdote:** He shares a personal case study involving a Rails project that evolved from version 0.7 to 1.2. The codebase became extensive and unmanageable, with massive files and unreliable test suites. - **Team Dynamics:** The team initially tried to rewrite the legacy codebase but struggled, ultimately leading to continued maintenance of the old code while slowly moving to the new one. - **Psychological Factors:** Developers developed a fear of making changes due to unpredictable test results and complex maintenance issues, which Mastey refers to as a psychological condition that can hinder productivity. - **Quantifying the Problems:** He suggests using tools to analyze the codebase to pinpoint areas that require immediate attention, using metrics such as line counts and method distributions to identify the most problematic sections. - **Strategies for Improvement:** - **Stop Making Things Worse:** Establish boundaries to prevent further degradation of the codebase by setting new standards. - **Prioritize Testing:** Focus on improving test coverage and reliability by eliminating bad tests and writing new, effective ones. - **Refactor Strategically:** Mastey argues for targeting the worst parts of the code first, emphasizing that fixing high-churn areas will yield better outcomes. - **Long-Term Vision:** The journey involves accepting gradual improvements over time rather than expecting immediate results, framing this as a more achievable and sustainable approach. - **Celebrate Small Wins:** The act of celebrating incremental changes can boost team morale and foster a culture of continuous improvement. In conclusion, Mastey’s optimistic approach to tackling codebases emphasizes understanding the uneven distribution of issues, measuring progress, and fostering a culture of continuous improvement. Rather than allowing fear of change to hinder progress, developers can take actionable steps to improve their code quality over time, ultimately making their legacy systems more manageable and less daunting.
Suggest modifications
Cancel