Skip to main content

Command Palette

Search for a command to run...

The CI/CD Trap: Why Over-Engineering GitHub Actions is Killing Your Engineering Velocity

Updated
3 min read
The CI/CD Trap: Why Over-Engineering GitHub Actions is Killing Your Engineering Velocity
A

I'm full stack developer. JavaScript & Python enthusiast. I like to build software projects using JavaScript & Python.

We’ve been told that "Automate Everything" is the gold standard of modern DevOps. But after two years of wrestling with complex GitHub Action workflows, I’ve realized a hard truth: Most complex CI/CD implementations aren't saving time—they’re stealing it.

What was supposed to be a 5-minute fix often turns into a 5-day debugging marathon. If your team is spending more time fixing the "Automation" than writing the "Product," you don’t have a workflow—you have a disaster.

1. The "Blocked" Black Box

The most "rubbish" part of the current system is the dreaded Blocked State. You check your PR, and GitHub says it’s blocked. No error logs. No clear "Why." No direction.

In a complex environment with dozens of checks—from Jenkins build triggers to Oracle migration validations—GitHub Actions often fails to provide a clear trace. You end up playing detective, digging through thousands of lines of YAML and status check rollups just to find out a single bot account didn't have the right "Write" permission.

2. Testing in Production (The "Merge to Main" Fallacy)

One of the biggest architectural flaws in many poorly designed workflows is the lack of a proper test environment. Why should an engineer have to merge unverified code into the main branch just to see if the workflow actually works?

  • Many workflows are configured to only run on push to main.

  • This forces a cycle of: Merge -> Break Main -> Raise Fix PR -> Merge -> Break again.

If a workflow doesn't run and validate on your feature branch, it isn’t a safety net; it’s a landmine.

3. The "Over-Engineering" Pandemic

DevOps teams often fall in love with "clever" logic. They build massive, interconnected workflows with complex if: conditions, multiple bot actors (github-actions[bot]), and nested dependencies.

When these workflows grow, they become "brittle." One small change in a label name or a GitHub App permission causes a silent failure. We’ve seen senior engineers leave companies because the "Developer Experience" became a nightmare of waiting for self-hosted runners that never trigger.

4. High Maintenance, Low ROI

Automation is only useful if it saves more time than it consumes.

  • The Reality: A task that takes 5 minutes to fix manually takes 5 days to automate and debug.

  • The Cost: You lose your best engineers to "YAML Hell." They want to build AI infrastructure and distributed systems, not spend 40 hours a week debugging why a PR label didn't trigger an automerge.

The Verdict

GitHub Actions is great for simple deployments. But for complex, multi-stage enterprise PR checks? It’s often a "rubbish" system that hides errors and slows down delivery.

If your "Automation" makes a developer's life hell, it’s time to strip it back. We need Product-First engineering, not Workflow-First frustration.

More from this blog

Akshay Sushir - Software Developer

30 posts

JavaScript & Python Enthusiast | Full Stack Developer | Blogger