TDD Pro-Tip: Wrap Containers Early & Often

TDD Pro-Tip: Wrap framework collection classes early and often. The Primitive Obsession smell is ubiquitous around collections, and not seeing and fixing it can greatly hamper productivity. In HollywoodSimulator, a common act of every Person is to spend time manipulating their little black book — the collection of the contacts they have. The first-pass way to represent this would be to use a framework collection class. In Java/Kotlin, that’s List<Person>. List<Person> is not a primitive, far from it, in Java […]

TDD Pro-Tip: Wrap Containers Early & Often See Full Post

TDD Pro-Tip: Test-Before Is Operationally Different

TDD Pro-Tip: Because the power of TDD is operational rather than artifactual, test-before provides several benefits over test-after. Sometimes folks propose the writing of tests after the code is written. The idea here is that the point of the game is to have the tests, and that it makes no difference whether we do them before we write the code or after. This idea is flawed: it centers TDD around the artifact — the made test — rather than the

TDD Pro-Tip: Test-Before Is Operationally Different See Full Post

TDD Pro-Tip: Iterations Aren’t Increments

TDD Pro-Tip: TDD depends heavily on a view that accepts and even values iteration. TDD is an I&I style of work: iteration and increment are both involved. Nearly everyone gets "increment": an increment is an improvement, an enhancement, a detectable step forward in value. Each increment is a pass over the code, during which we add to its function. TDD noobs take "increment", then, to mean "add a passing test". On the one hand, that’s great. On the other hand,

TDD Pro-Tip: Iterations Aren’t Increments See Full Post

My Agility 2: The Made-For?

This entry is part [part not set] of 3 in the series Defining Agile

Seen a few soft murmurings about the idea that the made, the making, and the maker includes the made-for. That’s good. If the idea doesn’t work, let’s change it so it does. I do want to toss some grist into the mill that might have impact. In some of what i’m seeing, "children" could easily be substituted for "made-for". As in, "think of the chiiiiiildren". Others are a tad more hard-nosed, if not quite mercenary about it: they say "made-for"

My Agility 2: The Made-For? See Full Post

My Agility 1: A Working Formulation

This entry is part [part not set] of 3 in the series Defining Agile

A formulation I’m trying out today: "my agility is an autopoietic community centered around the triple balancing of the made, the making, and the makers." there’s odd terms in it, and also missing ones, so I feel like pushing it around a little out loud. Obviously, the least ordinary term there is the a-word. Autopoeisis is literally "self creation", and when I say that, I say "well why use a big fancy word," and the answer is: because the literal

My Agility 1: A Working Formulation See Full Post

Method’s the Wrong Place To Look

This entry is part [part not set] of 3 in the series Defining Agile

There’s an old joke: A policeman comes across a drunk crawling around under a streetlamp, asks him what’s up. Drunk says he lost his car keys. So the cop helps him look for a while. But no luck, so the cop asks him, "Where’s your car, sir?" and the guy points off in the dark. Cop says, well, why are we looking over here, when your car is over there? Drunk says, "Well, because the light’s better here." There are

Method’s the Wrong Place To Look See Full Post

TDD Pro-Tip: Graceful and Awkward

TDD Pro-Tip: The first step past beginner-TDD lies in grasping the difference between awkward and graceful collaborations, and learning the myriad contextualized patterns for moving from the former to the latter. Folks invest a little in TDD, maybe cuz they’re excited, maybe cuz they’re ordered. They read a little. They try an exercise or two. They learn a little about their xUnit options. Maybe they boldly even use TDD to write a method or a class in their day job.

TDD Pro-Tip: Graceful and Awkward See Full Post

Building the Wrong Thing

Folks worry a lot about building the wrong thing, that is, making software that does not please the many and different interests of the org, the users, the operators. I’ve certainly seen that. We all have. Government seems particularly consistent at doing it, tho surely there are plenty of commercial orgs that have the same problem. I see this problem differently from most folks. I’d like to take a few tweets and walk through my approach. The key insight for

Building the Wrong Thing See Full Post

TDD Pro-Tip: Build Cells

TDD Pro-Tip: Build cells — logic nucleus on the inside, environment inputs & outputs on the outside, and a semi-permeable cell wall between the two. The metaphor i’m proposing here is really about the nature of borders in code. Prior to TDD, my grasp of this topic was driven largely by the great theory of object-orientation that began to emerge back in the ’80s and came to dominate the modern s/w landscape. As with so many aspects of the programming

TDD Pro-Tip: Build Cells See Full Post

The Gold Of Microtests: The Value

This entry is part [part not set] of 3 in the series The Gold of Microtests

Okay, twice now i’ve intro’d this question about the value of m-proof, the rather trivial proof microtests give: what the geek said is what the computer heard is what the geek wanted. Time to just deal with it, eh? Remember that all of the value that comes from microtests comes before we’re done with the program. As we’ll see, some of it comes from the fact that the artifacts — the microtests — exist at all, and some of it

The Gold Of Microtests: The Value See Full Post

Scroll to Top