- The Routing Intent by Leonardo Furtado
- Posts
- Poor Automation Is a Trap: Applying Software Design Principles to Network Automation
Poor Automation Is a Trap: Applying Software Design Principles to Network Automation
Avoid the hidden dangers of ad hoc automation

Find out why 1M+ professionals read Superhuman AI daily.
In 2 years you will be working for AI
Or an AI will be working for you
Here's how you can future-proof yourself:
Join the Superhuman AI newsletter – read by 1M+ people at top companies
Master AI tools, tutorials, and news in just 3 minutes a day
Become 10X more productive using AI
Join 1,000,000+ pros at companies like Google, Meta, and Amazon that are using AI to get ahead.
Let's Talk About Moving from CLI to Network Automation
This isn't another "automate or die" lecture. We'll cover working smarter in a world that's moving faster than ever.
By now, you've probably realized that network automation is crucial for businesses to stay competitive and boost efficiency. As companies keep up with the digital age, the need for automation in networking has become clear.
Although the main goals, like maintaining consistent uptime, ensuring strong security, and boosting performance, stay the same, the expectations in these areas have grown considerably. Today, organizations realize that delivering top-notch uptime, security, and performance is no longer just a plus; it's a must to succeed in a rapidly changing tech landscape. Implementing advanced network automation solutions is no longer a choice; it's a necessity for success in today’s market.
Today, there's a pressing need to meet demands and complete tasks more efficiently. If you’ve developed your skills as a network engineer, mainly using CLI, it's time to fully adopt automation.
Mastering network automation won't happen overnight. It'll take a lot of time, effort, money, and hard work. I recommend starting by learning the basics and experimenting with code and scripts for various purposes, but keep in mind these aren't ready for production. You're just getting familiar with working with code, not the CLI. Think of this as the first chapter in your network automation journey; it'll be invaluable as you move forward.
That said, be cautious, as explained below.
Watch Out for the Cowboy Coder Trap
Suppose you're in an environment where software-defined networking is considered advanced, and you have the opportunity to learn on the job established software development (SysDev) processes and frameworks. In that case, you can learn, adapt, and deliver results relatively quickly. However, this reality is mainly found in major tech companies like Amazon, Google, and Meta, while many others are still lagging behind.
Now, if you're leading the way in network automation within your organization but lack experience in how software teams work, tread lightly! You might unintentionally create problems and make situations worse, which could lead to setbacks.
Network automation must not be limited to specific tools or pieces of code; it’s a much broader strategy for managing and enhancing network systems. It’s about building a solid software culture for network engineering and operations.
If you’re driving this change in your organization, focus not only on writing code but also on understanding the core needs and how to manage your network effectively. Aim to deliver real value, not just snippets of code.
When Automation Backfires: The Hidden Cost of Skipping Software Design Principles
The rise of network automation has empowered a new wave of engineers to deliver incredible value, accelerating operations, reducing toil, and enhancing observability. But there’s a darker undercurrent we need to confront head-on:
When automation is implemented without a foundational understanding of software design principles, the consequences can be severe.
This is not a critique of network engineers, quite the opposite. The discipline of networking is deep, rigorous, and complex in its own right. But writing software, good software, requires a different mental model. Without proper design hygiene, automation becomes fragile, opaque, and eventually dangerous.
Let’s break down what happens when this gap is ignored.
1. Fragile Systems That Don't Scale
Scripts written ad hoc often grow organically and without structure. These start as helpful tools: a loop here, a conditional there. Over time, they balloon into mission-critical automation that no one understands or can confidently modify.
Common pitfalls include:
Hardcoded variables (e.g., IPs, credentials, device types)
Lack of modularity, making reuse impossible
Zero error handling, so one edge case breaks everything
Single-threaded assumptions, leading to concurrency issues
No abstraction layer, tightly coupling the logic to specific platforms
This creates non-deterministic behavior in automations that work under some conditions, fail under others, and cannot be trusted at scale.
2. Lack of Idempotency and State Awareness
A major principle in infrastructure automation is idempotency, the idea that running an automation multiple times should produce the same result.
Network engineers without a software background often write automations that assume an initial clean slate. When run on systems with drift or partial states, they:
Duplicate config entries
Wipe out valid configurations
Create race conditions
Trigger unnecessary rollbacks or alerts
Without proper state validation and reconciliation logic, these automations become destructive instead of declarative.
3. Operational Risk and Outage Amplification
Poorly designed automation has the potential to amplify outages instead of preventing them.
Some real-world failure patterns:
A script with a malformed loop disables interfaces across the wrong segment
Automation meant to update BGP neighbors accidentally wipes entire routing policies
A typo in a variable name gets pushed to hundreds of devices due to a lack of testing or peer review
When you combine:
No version control
No rollback strategy
No dry-run or staging mode
…you’re setting yourself up for operational chaos.