Fique off-line com o app Player FM !
Alan Ridlehoover: Building Robust Systems Through Behavior-Centric Testing
Manage episode 444131567 series 2558054
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:
Subscribe to Maintainable on:
Or search "Maintainable" wherever you stream your podcasts.
Keep up to date with the Maintainable Podcast by joining the newsletter.
191 episódios
Manage episode 444131567 series 2558054
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:
Subscribe to Maintainable on:
Or search "Maintainable" wherever you stream your podcasts.
Keep up to date with the Maintainable Podcast by joining the newsletter.
191 episódios
Todos os episódios
×Bem vindo ao Player FM!
O Player FM procura na web por podcasts de alta qualidade para você curtir agora mesmo. É o melhor app de podcast e funciona no Android, iPhone e web. Inscreva-se para sincronizar as assinaturas entre os dispositivos.