Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing
In this episode of Maintainable, Robby speaks with Alan Ridlehoover, Senior Engineering Manager at Cisco Meraki. Alan shares his perspective on building well-maintained software by focusing on behavior-centric testing, clear code ownership, and thoughtful technical decisions that stand the test of time.
Alan discusses his experience working in both startup environments and large-scale engineering teams, including how he navigates the unique challenges of each. He provides practical advice on managing conditional logic in code, scaling with third-party dependencies, and ensuring that testing strategies remain effective as systems grow in complexity.
Key Takeaways:
- The characteristics of well-maintained software: behavior-centric testing, solid code principles, and ownership boundaries.
- Balancing the needs of startups vs. large enterprises when it comes to software maintenance.
- Alan’s approach to handling conditional logic with a technique called "rehydration" to simplify complex code.
- Why focusing on behavior, not implementation, is critical for scalable, maintainable tests.
- The importance of interfaces and facades for managing third-party dependencies and future scalability.
- How to approach technical debt as a conscious trade-off, not an inevitable burden.
- Best practices for addressing flaky tests, including managing non-determinism, order dependencies, and race conditions.
- How to set up effective monitoring and alerting systems to maintain a healthy software environment.
- The role of team structure and product ownership in delivering sustainable, high-quality software.
Episode Highlights:
- [00:05:32] Introduction to the Guest's Background: Robby and Alan discuss Alan's work at Cisco Meraki and his approach to well-maintained software.
- [00:15:10] The Importance of Behavior-Centric Testing: Alan explains why focusing on behavior, not implementation, helps in both startups and large-scale environments.
- [00:24:30] Rehydration: A Strategy for Managing Conditional Logic in Code: Alan shares his method for simplifying code with many conditionals.
- [00:35:00] Navigating Technical Debt: Alan offers advice on how to strategically manage technical debt without slowing down business needs.
- [00:45:18] Monitoring and Alerting: Alan’s tips on keeping systems healthy and avoiding customer-facing issues through smart monitoring setups.
Resources Mentioned:
Connect with Alan Ridlehoover:
Thanks to Our Sponsor!
Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error-tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and other frameworks.
It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.
Keep your coding cool and error-free, one line at a time!
Use the code maintainable to get a 10% discount for your first year. Check them out!