Robby Russell - Prepare to tack: Steering Rails apps out of technical debt - Rails World 2024

Learn practical strategies for continuously improving Rails apps through strategic investments, efficient collaboration, and sustainable engineering practices that deliver long-term value.

Key takeaways
  • Drop the “technical debt” framing and position improvements as strategic investments that increase efficiency, reduce risk and improve customer experience

  • Never do complete rewrites - treat your app like it’s the last one you’ll ever work on and focus on continuous improvements

  • Question and remove unused/outdated code, features, data and dependencies regularly - the easiest feature to maintain is one that doesn’t exist

  • Make maintainability part of your team’s identity and daily habits rather than a one-time effort. Build a culture that values and celebrates incremental improvements

  • Avoid solo heroics - make collaboration and knowledge sharing core team practices, especially for major refactoring work

  • Be cautious with gems and external dependencies - they often add more complexity and maintenance burden than value. Consider writing simpler custom solutions

  • Test new approaches on existing stable features first rather than introducing them with new functionality

  • Stop waiting for permission - frame maintenance work as essential rather than optional and tie it to business goals

  • Embrace your monolith for smaller teams - keeping everything under one roof often leads to less overhead and complexity than distributed architectures

  • Make unreliable tests either reliable or remove them completely - tests should propel development forward, not hold it back