Hard-TDD vs Soft-TDD

Alrighty-then. This Hard-tdd vs Soft-tdd thing. A couple of days ago, I worked through some underplayed premises of TDD here. Along the way, I touched on what I call Hard TDD vs Soft TDD. The terms derive from AI, where proponents differ on soft-AI vs hard-AI. A semantic association, not a real analogy, so i’ll skip that. Hard vs soft here isn’t about technique, it’s about what we believe the value of the technique includes. And don’t be confused, there …

Hard-TDD vs Soft-TDD Go to Post »

On Pairing

A friend asks what to do about a bad pair. That’s a juicy one, and prods me to muse. Why do we pair? It’s one of the techniques we adopt to increase productivity. That’s measured in geekery by insights per hour, or such like. Maybe if we understand what makes good pairing, we can get closer to some possible remedies for bad pairing? Good pairing involves a bunch of otherwise disconnected-seeming aspects. These form an interactive context in which the …

On Pairing Go to Post »

Five Underplayed Premises of TDD

This entry is part of 9 in the series Underplayed Premises

UPDATE: This post has been restructured and made into a video, you can view it here. Here are five underplayed premises of TDD. Why "underplayed"? Well, they’re there. Hardcore TDD’ers model them all the time. But it feels like they just don’t get the camera time. I want TDD coaches and teachers to step back from "what’s an assert" and rigid rule systems, and highlight these premises in their own work. The money premise: we are in this for the …

Five Underplayed Premises of TDD Go to Post »

Crabby Note To TDD Journeyfolk

TDD journeyfolk, let me rattle your cage a little this fine afternoon. Lemme sketch a common situation for me. I have a problem, not a small one, to be solved in a tech stack I’m not intimately familiar with. Further, some aspects of the problem are things no one on stack overflow has ever done before. They look, on paper, like they might be doable, but there’s no drop-in and very little advice. I’m in this situation where I have …

Crabby Note To TDD Journeyfolk Go to Post »

Automocking: Don’t Take Hard Shots

This entry is part of 2 in the series Automocking

Yesterday, I started my explanation about not using automockers. But that muse is about just one aspect of the automocking world: interaction tests. And automockers can do a lot more than that. We could use an automocker for years without ever writing an interaction test. So, then, again, why don’t I? I’m an old fart, ya know. To the extent I’ve learned anything at all in my time here, I’ve learned that every strength is a weakness. I see that …

Automocking: Don’t Take Hard Shots Go to Post »

Automocking: Behavior Tests Are Not Quite

This entry is part of 2 in the series Automocking

So, with the intent firmly in our minds, from yesterday, I feel closer to explaining my automock resistance. There is still some teasing apart to do. Automocking tools bring several possible aspects to the floor. The first of these is by no means required by automockers, but is commonplace. And that is behavior-based testing. Behavior-based testing is the kind of testing where i validate A in an A->B relationship, by asserting that B’s methods were called. If, in setting X, …

Automocking: Behavior Tests Are Not Quite Go to Post »

We’re In This For The Money

(When I’m teaching and coaching, I have a number of premises that I discuss and that will show up somewhere in everything I do. Here’s the money premise, which I usually bring up at the earliest opportunity.) Look, kids, we’re in this for the money. Somehow you got the idea that TDD, pairing, micro-stepping, and refactoring are not about increasing your productivity. It could be the misguided craftsmanship movement, who give you the excuse to say "we don’t have time …

We’re In This For The Money Go to Post »

Stop Using Logs Everyday

I don’t "believe" in logs, generally. What I mean is, for developers, logs should be seen strictly as a story for ops, not a development tool. I understand why ops needs to see logs. Ops is a customer just like any other, and what they need, we can supply. But I see far too many developers use the log all day long during development. Everyone from time to time does "print" debugging, of course. No technique on earth can entirely …

Stop Using Logs Everyday Go to Post »

Defining Agile: A Musing

Defining Agile Sooooo, I saw a couple folks arguing earlier about what is or isn’t Agile. That’s okay. People do that. Analytical people thrive on doing that. Anyone who’s gotten to the level of journeyfolk in any arena will seek to define that arena. All very healthy stuff. Nowadays I tend to avoid these arguments. I have my reasons. First, there is no definition anywhere on earth of anything that can’t be abused or misused willfully or not. There is …

Defining Agile: A Musing Go to Post »

User Stories Are Playing Pieces: The “Right Writing” Is Wrong

User Stories If you are concerned about how you write a user story, you have missed the entire point. A user story is a little card that reminds us of all the actual conversations we’re currently actually having. If the words "bathtub farting" are enough for the team to actually converse about what they signify, they’re enough for what they’re for. The very first step you take that’s away from "user story is a marker" is the road back to …

User Stories Are Playing Pieces: The “Right Writing” Is Wrong Go to Post »

Scroll to Top