Issue #17
Stop Watching Your Code Fail 📉
Ready to stop watching your code fail in production? Today, we're talking about the hidden cost of choosing monitoring over testing. Buckle up!

Welcome back, developrrrs! 👋 Ready to stop watching your code fail in production? Today, we’re talking about the hidden cost of choosing monitoring over testing. Buckle up!
🤿 Deep Dive
There’s something uniquely frustrating about watching a team celebrate their “robust” monitoring setup (canaries + metrics + logs + …) while having zero automated tests. It’s like installing a sophisticated security system in your house but never checking if the doors are actually locked. Yes, you’ll know the moment someone breaks in, but wouldn’t it be better to prevent the break-in in the first place?
According to IBM’s System Science Institute, fixing a bug in production costs 100 times more than fixing it during development. Yet here we are, proudly showing off our Grafana dashboards while our test coverage looks like Swiss cheese and our developer experience feels like a game of whack-a-mole.

I get it. Monitoring is sexy. It gives you real-time graphs, fancy alerts, and that warm, fuzzy feeling that you’ll know exactly when everything falls apart. Plus, it’s visible to management – nothing says “we take reliability seriously” quite like a wall of monitors showing colorful metrics. But here’s the uncomfortable truth: if you’re relying primarily on monitoring to catch issues, you’re already too late.
Here’s a story that still keeps me up at night: A team pushed a seemingly innocent code change that introduced a subtle memory leak. Their monitoring caught it beautifully – after it had been slowly eating away at production resources for three days. The fix? Five minutes. The investigation time? Two full days of context switching, emergency meetings, and stressed-out developers who could have been building new features instead. A simple unit test could have caught this before it ever left a developer’s machine.
👩💻 The Real DevEx Cost
Let’s talk about what this monitoring-over-testing approach is really costing your developers. Every time a production alert fires, you’re not just dealing with a technical issue – you’re actively destroying developer productivity and morale.
I watched a talented developer quit after being woken up at 3 AM three nights in a row to investigate production alerts. The irony? All three issues could have been caught by basic integration tests. This isn’t monitoring – it’s talent-repellent masquerading as quality control.
Each alert forces context switching, wrecks work-life balance with late-night calls, and creates a culture of anxiety where developers are afraid to make changes. Great developer experience means giving developers the confidence to ship code without fear. Tests provide that confidence. Monitoring alone just tells you how badly things went wrong.
🎯 Why We’re Addicted to Monitoring
The monitoring-first mindset is seductive for several reasons:
-
Immediate gratification: Set up Prometheus and Grafana, and boom – instant visibility
-
Crisis hero potential: Nothing says “I saved the day” like catching a production issue at 3 AM
-
Management visibility: Dashboards make great screenshots for status reports
-
Clear ROI: Every caught production issue feels like a win
But this is reactive thinking. It’s like having a really good hospital instead of investing in preventive healthcare. Sure, you’ll save some lives, but wouldn’t it be better if people didn’t get sick in the first place?
🤔 The Testing Culture Deficit
Building a testing culture is harder because:
-
The benefits are less visible: You can’t show a graph of bugs that never made it to production
-
It requires upfront investment: Good tests take time to write
-
The payoff is delayed: You’re preventing future problems rather than solving current ones
-
It feels like “extra work” when deadlines are tight
But here’s the thing: every hour spent writing tests is like buying insurance with a guaranteed return. Every bug caught in development is hours or days of production debugging you’ll never have to do.
💡 The Bottom Line
Your monitoring setup is important, but it shouldn’t be your first line of defense. Every alert that wakes up your on-call team is a reminder of a test you probably should have written.
Here’s your complete action plan to shift from reactive to proactive:
-
Make it easy: Set up test frameworks, write examples, and create templates
-
Make it fast: Invest in quick feedback loops – tests should run in seconds, not minutes
-
Make it required: No PR gets merged without tests (yes, even that “quick fix”)
-
Make it visible: Track and celebrate test coverage improvements like you do uptime
-
Make it valuable: Share stories of bugs caught early, calculate the time saved
Start treating your test suite with the same reverence as your monitoring stack, and watch your 3 AM incidents decrease.
Remember: A good test suite is better than a good night’s sleep because it ensures you’ll actually get one.
Stay proactive! 🛡️
Powered by coffee ☕️ and the blissful silence of alerts not firing
📊 Stat
97% of Developers Experience Context Switching Due to Multiple Vendor Tools

The State of Developer Experience 2024 report highlights that managing an average of 14 tools often leads to inefficiencies. Developers face fragmented ecosystems that impact their productivity, with nearly all admitting to context switching regularly. Simplifying or unifying tooling can enhance workflow consistency.
💡 Key Insight: Tool consolidation can reduce developer cognitive load and improve productivity.
📌 Essential Reads
🤖 Google Uses AI to Slash Code Migration Time by 50%. Google has successfully leveraged large language models (LLMs) to cut internal code migration time in half. In a recent transition from JUnit3 to JUnit4, AI modified 149,000 lines of code across 5,359 files in just three months, with 80% of changes being AI-generated. While human oversight was needed to refine AI suggestions, the process significantly accelerated migration efforts. This showcases AI’s growing role in large-scale codebase transformations.
👩🏼💻 Salesforce Halts Software Engineer Hiring for 2025 Due to AI Productivity Gains. Salesforce CEO Marc Benioff announced that the company will not hire additional software engineers in 2025, citing a 30% productivity increase from AI tools like Agentforce. This boost has significantly enhanced engineering efficiency, reducing the need for new hires. Instead, Salesforce plans to add 1,000 to 2,000 salespeople to better communicate the value of their AI offerings. Benioff emphasized that “everything needs to become about Agentforce at Salesforce,” highlighting the company’s strategic focus on AI-driven solutions.
⏩ Accelerating Code Reviews with Microsoft’s ‘Nudge’ System. Microsoft, in collaboration with Delft University of Technology, developed the ‘Nudge’ system to expedite pull request (PR) completion times. By analyzing 22,875 PRs, they identified key bottlenecks such as submission timing, contributor experience, reviewer count, and critical file changes. The ‘Nudge’ system sends automated reminders to authors and reviewers, resulting in a 60% reduction in PR completion times. This approach highlights the effectiveness of timely prompts in streamlining code review processes.
🛠️ Tools
-
Act allows you to run GitHub Actions locally, making CI/CD workflow testing faster and easier.
-
Rundeck is an open-source automation platform that allows developers and operations teams to create, schedule, and manage automated workflows with role-based access control.
-
PostHog is an open-source product analytics platform that provides event-based tracking, session recording, and feature flagging to help teams understand user behavior.
Get the next issue on Thursday
5-minute weekly reads showing how top engineering teams solve their biggest DevEx challenges and reduce burnout.
Subscribe for freeDelivered every Thursday. Trusted by 3,000+ engineers at companies like Stripe, Google, and Netflix.

