True story: Eighteen or so years ago, I had a gig rolling code at an engineering company. We were writing a windows app using Microsoft Foundation Classes to drive a TTY interface to a box of various radio hardware junk.
I was gigged in by a guy I’d taught a c;ass (in MFC) to, because he liked that I knew my shit, and he loved that I spoke openly about joy, right in the classroom. right in front of God and everybody.
G and I got along great. We were both heavy smokers and committed drinkers and hardcore software geeks. We spent many an evening after work, just hanging out, talking about geekery, smoking cigarettes, and drinking like fools.
So, in the work, I was doing Test Driven Development (TDD). I mean, don’t kid yourself, long time ago, and I wasn’t doing the TDD I teach today, not by any stretch. I was still just learning it, and in that setting, it worked pretty well. (It was, frankly, an easy problem.)
And Gary was my boss, and he tolerated it, as an eccentricity, exactly the way any boss tolerates someone whose product and person they like. "So, he will only wear purple socks, it’s no big deal, let him, cuz I like him and he does good work." That kinda thing.
One day, a bug.
One of the pieces of junk had rev’d its firmware, and the TTY scripts weren’t doing the thing anymore. So we sat down together in the debugger, and we quickly realized there was an extra CRLF (or maybe a CRLF had been sent instead of a prior CR, long time gone.)
So we agreed on the fix, and we made it, and I ran my TDD tests, and we got, idunno, 80 reds and 3 greens. 🙂 We had the right fix, conceptually, but we put it in the wrong place, and instead of fixing the one bug, it created many many bugs.
We backed it out, wrote a test for the case, and worked for a while until we had the new test green and all the other tests green, too.
Smoke break.
We go outside, light up. And G’s really quiet. You have to understand, we were both friends and co-geeks, and we chattered like magpies the entire time we were together. And he’s just standing there with me, in a cloud of smoke, staring off into the distance.
Then he immediately lit a second smoke, not something we usually did. And he hadn’t said a word, and I’d run out of things to say, and I was genuinely a little concerned, but I couldn’t think of anything to say.
Finally, he stubs out his cigarette, turns back to me, and he just says one sentence:
"I guess this TDD shit really works, doesn’t it."
Then we went back inside, and he started sitting with me every day, learning TDD right beside me as I was learning it.
We had a terrific time together, and then the project got taken away, and I went on to other gigs. About two years later, they called me out of the blue.
"We want you to come back and show our team how to do that stuff."
I’m like, "What stuff? MFC? I don’t use MFC much anymore, and I don’t have any prepared material."
"No, no, not that. We want you to do all that stuff you did before, that we didn’t give you permission to do, and actively ignored while you were doing it.
That TDD stuff."
I went back with them for about a year, and I coached a team for them, that was very successful, doing TDD — and the rest of XP as I understood it.
Side Note:
On that second project, I worked with one other man and nine women. First time I’d worked closely with female geeks. They were so smart, so fast, so open, and so strong. It broke every stupid idea I ever had about women in tech.
Does the GeePaw Blogcast add value?
If so, consider a monthly donation to help keep the content flowing. You can also subscribe for free to get weekly posts sent straight to your inbox. And to get more involved in the conversation, jump into the Camerata and start talking to other like-minded Change-Harvesters today.