TDD, Options, and Culture
The background for this post: Gil Zilberfeld posted a link to a blog post by Joshua Kerievsky. I had some questions and Josh’s response, to me, seemed to change the story a bit. As I suspected, the story is hypothetical, and changes to support the intended conclusion. This always makes it very slippery to talk about a story. The details matter. And in this case, the change overwrites the original, without any indication of what has changed. That makes it even harder to have a conversation about it.
The Story
I’ll give a synopsis of the story here, since it may change again. In brief,
- “A customer reports a defect. It’s inhibiting them from getting some important work done.”
- David finds the defect and test-drives a fix, including refactoring to re-design the code around the defect. He spends two hours doing so.
- In a parallel universe, Sally finds the same defect, fixes it without an automated test, hand-tests the fix, pronounces it good and pushes it to production. There’s no indication of how long this took, but presumably it’s intended to be less than two hours.