← All posts

The workbook was running TDD on us the whole time

2026-06-08

Three red X's stacked on a math sheet used to send me into hint-mode. Then it clicked — the workbook is basically a test suite. The X's aren't bad, they're the whole point. Calling this Failure-Confirmation-Driven Parenting. Parenting frameworks series, Part 2.

"Got 'em wrong AGAIN."

Three red X's stacked at the top of his math sheet. Mouth in a hard line. Mad at the paper.

Me from a year ago would've gone "oof," and slid a hint under the next problem. Just a little nudge.

I wrote about that habit in I was grabbing his failures before he could feel them — and writing it down didn't kill the habit. Three X's in a row still makes my hand twitch toward his pencil.

It's getting a little quieter, though. I want to write down why.

First — getting things wrong isn't actually bad

I think most parents know this in their head. Then you look at the actual grade on the page and that knowledge evaporates. I'm not above that one.

But when I look back at my own school years, the stuff I actually remember is the stuff I got wrong. The problems I breezed through, gone. The ones I face-planted on, still right there.

What was "studying" even supposed to be

Let me write down my working definition (just mine, not gospel).

Step 3 is where studying actually starts, in my head.

Just solving the problem? Not studying yet.

Solving plus checking? Still not studying.

If the workbook ends at "graded, X's and checks counted," the score moves but the learning doesn't. The thing that moves the score later is remembering the X spots. That's the part.

(Also: I was 100% the kid who stopped at "graded" and felt fine about it, so I'm not preaching from a mountain here.)

Bug curves, and the "zero defects" thing

Different angle for a second, sorry.

In software shops there's this thing called a defect curve (nobody really plots them out loud anymore, but the instinct is still in there). You're tracking how many bugs QA finds over time.

Weird part: if a test cycle comes back with "zero defects found," the room doesn't celebrate. The room raises an eyebrow. Something's off.

Why? Because the whole shop runs on the assumption that people screw up. Code reviews, tests, CI ── the entire stack is built around catching mistakes humans definitely made.

Zero defects isn't the goal. Zero defects usually means the tests aren't sharp enough. The bugs are still in there, just hiding.

Once you say "people," the wiring carries

This is the part I most wanted to write.

The minute the assumption is "people screw up," that piece of wisdom stops belonging to dev shops, right? It's just about people.

People. Meaning kids, and me.

A system built around the assumption that humans miss things probably ports straight over to studying. We don't aim for "no bugs in production." We probably shouldn't aim for "no X's on the page" either.

Hold on, isn't a workbook basically TDD?

Quick recap if you don't write code for a living. TDD (Test-Driven Development) goes:

def test_add():
    assert add(1, 2) == 3   # ← write the expected answer first (currently fails = Red)

def add(a, b):              # ← then write the function
    return a + b            # ← if the test passes, you're Green

Write the "this is what success looks like" check first. Start from broken (Red). Patch the implementation until the check passes (Green). Loop.

And the workbook? The workbook is literally already that.

Kid is the implementation, and the implementation is currently red. He works the problem. He gets one wrong (still red). He looks at the answer, internalizes why it landed there, and next time a problem of that shape shows up, the test passes (green).

Doing a workbook isn't about solving the problems in front of you.

It's about turning yourself green.

Once I started seeing it that way, my disappointment when an X showed up started to feel weirdly off. The X is just Red. It's a test result. It's the workbook telling you exactly where to patch the implementation.

Calling it Failure-Confirmation-Driven

What this lands on, if I had to name it: Failure-Confirmation-Driven Parenting.

Reads obvious when I write it out. But running the TDD vocabulary across it actually made it easier to explain to myself why I don't panic when I see X's piling up on his sheet.

What I tell my kid, roughly:

"Solving the problems isn't the actual job. As many X's as you want. Understanding the X's is the job. So actually — the X's are where you found out what to grow into. Pretty good news, kinda."

Got a hard side-eye for that one. So I tried a demo.

1+1=?, 1+2=?, 1+3=?

He answered all three immediately. Of course.

"Did you grow?"

"Nope. I already knew."

"Right. So if everything's a check mark, doing the workbook is pointless. You're doing it to find the X's. Find an X, that's a place you can grow."

Maybe that's the whole thing.

It also kinda changes what homework is. If the workbook is the test suite, maybe the smart move is to skim the material first, then sit down with the problems. The problem set is the spec, after all.