Agile ceremonies, a CI/CD pipeline, code reviews — teams check every box and still ship mediocre software. Taliferro holds the same practices to a stricter test: does this habit actually catch problems, or is it just theater we've gotten used to performing?
Published: 3 Apr 2023 · Updated: 10 Aug 2026
Co-Founder Taliferro
Most software teams can list their practices from memory: Agile ceremonies, a CI/CD pipeline, code review gates, maybe test-driven development. Every box is checked. The software still ships late, still breaks in production, and is still hard to change six months later.
The practices aren't the problem. What's missing is the habit underneath each one — the thing that makes a practice actually do its job instead of becoming theater. Here's where that shows up.
A review that exists only to satisfy a merge requirement teaches nobody anything. "LGTM" on a 400-line diff isn't quality control, it's a rubber stamp. Reviews that actually catch problems ask a different question than "does this work?" — they ask "will the next person understand why this exists?" That means the reviewer explains their reasoning when they push back, not just approves or blocks, and it means reviews happen on changes small enough to actually read.
TDD gets sold as a bug-prevention technique, and it does catch bugs — but that's the smaller benefit. Writing the test first forces you to design the interface before the implementation, which surfaces awkward APIs before they're load-bearing. A function that's painful to test is usually a function that's doing too much.
# Write the test first — it forces you to decide the interface
# before you decide the implementation.
def test_add_numbers():
assert add_numbers(2, 3) == 5
assert add_numbers(-1, 1) == 0
# Now the implementation has a spec to satisfy.
def add_numbers(num1, num2):
return num1 + num2
CI/CD automates the boring parts of shipping — build, test, deploy — and that's genuinely valuable. But a green pipeline running a weak test suite is false confidence dressed up as rigor. Automation speeds up whatever you point it at, including bad tests. The pipeline earns trust from what's inside it, not from existing.
Taliferro builds cross-functional teams — developers, testers, and whoever owns the client relationship — into the same delivery loop, so a design tradeoff gets caught by someone who has to explain it to the client, not discovered after launch. We hold TODD, our own Momentum System, to the same bar we hold client work to: if a habit doesn't survive contact with our own product, we don't recommend it to anyone else's.
Agile, CI/CD, and code reviews are infrastructure, not outcomes. They create the conditions for quality software — they don't guarantee it. The teams that actually ship good software are the ones that keep asking whether each practice is still doing its job, not just whether it's still on the checklist.
Turn slower sprints into shipped work with agile coaching services, connect it to the Momentum System, or talk through the sprint problem.
Want this fixed on your site?
Tell us your URL and what feels slow. We’ll point to the first thing to fix.
Explore Taliferro's free tools: Ask TODD · Find · Email Signature Builder · SayIt · Lead Vault · Meet Maya — or become an affiliate.
More from the blog