Nicolas Carlo: Changing Messy Software Without Breaking It
Oct 19, 2020
auto_awesome
Nicolas Carlo, Senior Tech Lead at BusBud, discusses the benefits of using feature toggling/flags, the importance of documentation and knowledge sharing in deploying software, and strategies for managing technical debt including sustainability weeks and upgrading dependencies. They also explore the challenges of managing dependencies and the considerations of rewriting vs refactoring existing software projects.
Maintaining a well-maintained codebase involves easy modifications, test coverage, and straightforward deployment.
Technical debt refers to deliberate shortcuts in code, which should be communicated and revisited later.
Deep dives
Characteristics of a well-maintained codebase
Nicholas believes that a well-maintained codebase is one that is easy to understand, run locally, and make changes to. It should also have test coverage to ensure functionality, and deploying should be straightforward.
Defining technical debt
Nicholas explains that technical debt is not necessarily bad code, but rather conscious shortcuts taken in the code. He emphasizes the importance of not abusing the term technical debt and clarifies that it should be related to intentional shortcuts that will be revisited later.
Balancing shortcuts with long-term maintenance
Nicholas discusses the trade-off between taking shortcuts to implement features quickly and the impact on long-term maintainability. He highlights the importance of clear communication with the business about the trade-offs and the need to revisit and address the shortcuts at a later time.
Navigating the challenges of working with legacy code
Nicholas shares his experience working on existing codebases and the challenges that come with it. He emphasizes the need to continuously learn and improve, and he discusses his motivation behind creating the Understand Legacy Code website to share knowledge and resources with developers dealing with legacy code.
Robby speaks with Nicolas Carlo, Senior Tech Lead at BusBud. They discuss the tradeoffs when testing out new features and the benefits of using feature toggling/flags to keep code getting merged into main branches. Nicolas also shares how Busbud has quarterly sustainability weeks to work on improving things, along with advice for listeners who might feel like they are at a loss for how to get stakeholder buy-in on dealing with technical debt challenges.