Refactoring Testless Code

Refactoring in testless code is hard. It’s the perfect demonstration of the manglish "agency" of code. It is simply not possible to change testless code and guarantee you’ve done no damage. It’s one of the most delicate operations geeks do. There are principles, yes. There are tricksy techniques, too. But mostly, there is experience & judgment. The deep trick is to turn every mistake you make into a microtest that would keep it from ever happening again. A key insight: […]

Refactoring Testless Code See Full Post

How I Don’t Apply XP, or Scrum, or Anything

These wrangles over system seem mis-focused. Moreover, they seem part of the surface of the elephant i’ve been trying to describe. A system is inherently an abstraction. It compresses, filters, selects, features from an experienced reality. We formulate systems for at least 3 reasons. First, so we can establish commonality. That is, we can use one system to describe a bunch of "different" local realities. We can say, "yes, that’s python and the web, that’s c and the pacemaker, but

How I Don’t Apply XP, or Scrum, or Anything See Full Post

Why I Write A Test

My intent in writing a test is to satisfy myself by the cheapest means possible that the code does exactly what I think it does. I stress that this is my intent. Believe me, fifteen minutes on the internet will reveal to you a barrage of other possible intents. Surely, by now, it will be clear to you that i’m not an essentialist, but an extreme pragmatist w/strong existentialist leanings. My intent is to use the test to underpin my

Why I Write A Test See Full Post

You’re Gonna Be Wrong

Dear smart geeks: stop worrying so much about whether you’re gonna get it wrong, you definitely are gonna get it wrong. How do I approach this? Hmmmm. Okay, I see a couple of threads that need to be pulled together. This one’s gonna be clunky, I fear. Ahhh well. I’m definitely gonna get it wrong, too, I spoze. 🙂 the drive to be right is a powerful one. For some of us, perhaps, too powerful. But it does come naturally.

You’re Gonna Be Wrong See Full Post

Your Design Is Broken: It’s TDD, not TDYAR

Think about your last huge unrequited crush. A real one, I m talking. A crush so big you go to sleep thinking of your future together, and wake up, ummm, guilty. The kind of crush that great romantic stories are made from, and for. The wobbly-knee d kind. And a complete non-starter: when I say unrequited, I m being clinical in an effort to minimize the likelihood of breaking out into laughter, as doctors and nurses in every ER around

Your Design Is Broken: It’s TDD, not TDYAR See Full Post

One Page Intro To Microtests | Video

A microtest has the following properties: It is short, typically under a dozen lines of code. It is *always* automated. It does not test the object inside the running app, but instead in a purpose-built testing application. It invokes only a tiny portion of the code, most usually a single branch of a single function. It never *reaches* inside an object’s boundaries, though the tester may certainly *look* inside them. It is coded to the same standard as shipping code,

One Page Intro To Microtests | Video See Full Post

What’s Coaching?

I’ve been mulling over what I do as a coach, for lo these many years, actually, and I feel like sharing some of it. I coach: I create or exploit openings through which individuals, including sometimes myself, can step closer to who they wish they were. I came to coaching early on in the movement. I was already a teacher and tended to be a leader in teams. I glommed onto XP immediately, and just as immediately started promulgating it

What’s Coaching? See Full Post

The Team And Three Flows

When I think about teams, I think about them with a strange mixture of metaphors. First I see a thing that is in some respects like one of our classic pictures of an atom. There’s some particles in the middle, and some others that seem somewhat clearly "outside" like the electrons in their clouds. But that metaphor slips a little. In atoms, the electrons & protons & neutrons are separate and separated. In teams, it’s more like a swarm. So

The Team And Three Flows See Full Post

The Noobification Of Everything

Friend Matt asked me to elaborate on "the noobification of everything" in the geek trades. This is a floppy vague one as yet, so be prepared to play fast and loose. The so-far endless demand for new software has created a poor skills distribution curve into the trade. Divide ever-so-arbitrarily our ranks into 5, dreyfus-style or thereabouts. 1’s know where to put semi-colons. 5’s know as much as we all know about geekery. We have way too many 1’s for

The Noobification Of Everything See Full Post

Strange Borders (And Bitching)

Thinking this morning about strange borders, led there by a typically weird geepaw route. If u didn’t know, coaches sit around all the time and bitch about their clients. This is perfectly ordinary and maps onto all jobs I think. Such behavior is "good thing, but". It’s important to do and it’s risky as hell. Bitching about clients brings a mixed lot of positive benefit and negative ill. Co-bitching is bonding, for instance. A way for us share, a kind

Strange Borders (And Bitching) See Full Post

Scroll to Top