# Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing

EP-186 | October 8, 2024 | 48:27



Topics: Testing, Architecture


How do you build robust systems that last? Alan Ridlehoover, Senior Engineering Manager at Cisco Meraki, shares his approach to behavior-centric testing, clean code practices, and navigating the balance between fast development and sustainable maintenance.





## Show Notes

### Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing

In this episode of Maintainable, Robby speaks with [Alan Ridlehoover](https://www.linkedin.com/in/aridlehoover/), Senior Engineering Manager at [Cisco Meraki](https://meraki.cisco.com/). 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:

- [Radical Candor by Kim Scott](https://www.radicalcandor.com/)
- [The Code Gardener](https://the.codegardener.com/)

Connect with Alan Ridlehoover:

- [LinkedIn](https://www.linkedin.com/in/aridlehoover/)
- [The Code Gardener Blog](https://the.codegardener.com/)

### 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!&nbsp;

Use the code **maintainable** to get a 10% discount for your first year. [Check them out!](https://www.appsignal.com/?utm_source=maintainable&utm_medium=podcast)








## Transcript



