Run Once, Run Away (RORA) Even Bites Pros

TDD Pro-Tip: RORA (Run Once, Run Away) is insidious, and although I am an old-guard agilist, I still have to actively resist its charms every day. Alright, well, look, I figured out after some helpful application of 2×4’s to the head, that I needed to phrase these pro-tips as advice to me, even when, as occasionally, in my heart of…
Read More

Steering Around The Pyramid Problem

TDD Pro-Tip: An important steerability force for me is in my strategies for sidestepping the pyramid problem. There are a lot of ways we could describe this "pyramid problem". Perhaps the most straightforward way is to ask how much code is "in play" during a test. At some point, and it varies by codebase, the answer becomes "a lot". When…
Read More

Using Kotlin for Data Builders

In Kotlin, functions whose last argument is a lambda, i call them end-lambda’s, make natural expressions of tree-shaped data builders. Say you’re building Performances, where a Performance includes (possibly) the list of songs being performed. making shit up here, it might look like: performance { song { } song { } } First thing you notice: this thing is building…
Read More

Great Geeks Are Great Humans

You can’t be a great geek w/o being a great human. I get how the tradition says you can. I get how much you wish it were so. You can’t be a great geek w/o being a great human. Being a great human is fabulously hard. It’s the hardest thing humans have ever conceived of. So, raise your game. I…
Read More

Refactor Your Tests

TDD Pro-Tip: I spend considerable effort making it possible not only to implement a test I want, but to make that test easy to read, to write, to run, and to debug. I’ve talked a lot about five premises of TDD. The money premise, the steering premise, and the chaining premise all get involved when we come to the coding…
Read More

Try Different, Not Harder

Change Pro-Tip: I give the same advice to myself as a coach that I do to my teams: "Try Different, Not Harder". A while back we covered Alice’s vision of how to change things. In countering it, I offered the adjustment "from final to iterative". The idea of iterative change is straightforward: It means that we change a thing, and…
Read More

A Question Of Humbling Proportion

The road to hell is lined with convenient parking spaces. I said recently that we need fewer addresses and more routes. These slugs are attempts to get at what I think keeps going wrong for us — in the trade, possibly in entire culture. There are numerous systems for software development out there competing in mindspace. (Stock word for these…
Read More

Create Experiences Not Arguments

Change Pro-Tip: When I can give people an experience, I get dramatically better results than when I give them reasoning. I’mo tell you one of my stories. Twenty years ago, with a considerable amount of "Shut up, I’m the pro from Dover", I got permission to do TDD in a corner of the app I was working on, an app…
Read More