TODD is now 16Ahead. This post was written under the old name; the product lives on at 16ahead.com.
The Checklist Problem
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.
Code Review Is a Conversation, Not a Gate
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.
Tests-First Changes the Design, Not Just the Coverage Number
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
A Pipeline Is Only as Good as What It Tests
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.
How This Shows Up in Our Own Work
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.
The Takeaway
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.