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 amd 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.
(A 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.)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
The Dreaming was the first album I heard from Bush. It is stunning. I mean, every take, it is stunning.
Bush is one of the greatest "I may in fact be hopelessly insane" singers of all time, but whackos are a dime-a-dozen, what's astonishing about her work is how she works to give you the *grounding* you need to hear the insanity.
Here's Chet Baker & Gerry Mulligan, "My Funny Valentine".
Mulligan was just enough older than Baker, & more successful, to tune him up and get his mind right. The Baker/Mulligan takes are pretty much all impressive.
It's a quartet, w/Carson Smith one-stringing bass, and Bunker pitchin' in little snare-brushes. But we speak of the two.
Chet was on a rail to death, and it was astonishing that he lasted as long as he did. He might have made of west coast cool a movement, but he really just made of it a symbol, and the east coast -- Miles, the incomparable Miles -- trampled that idea.
Either 1) the horse is sick, or 2) the water is sick, or 3) they're both fine and the horse just isn't thirsty.
Two pro-tips:
a) It's not usually #3.
b) #1 and #2 often co-present, cuz drinking sick water will make a horse sick.
Give that #1 & #2 -- co- or singly-presenting, are so vastly much more common, I'm always startled when people seem so confident that they're in a #3 situation.
It's always, how do I get these horses to drink this water. It's never, what might be making my horse sick, or what is it about this water that a healthy horse won't drink it?
Mulling over a little Oxygen Not Included for tonight and tomorrow. Not sure, but I'mo start it and see how I feel. Seed: V-SNDST-C-66913931-0 Classic, Survival.
Some concepts for this one: I'm gonna repeat the deluxe-hab-unit thing, but will start with a very small crummy hab-unit, and only upgrade when I'm really ready. I'm gonna go oxygenate-everything instead of atmos-everywhere. I decided to try *not* using a dedicated researcher.
Finally, most importantly, I'm gonna try to stall on identifying a final "central spine" location until I'm ready to really commit to its final location, i.e. by getting near space above and oil below. I'm gonna make the tentative spine *very* wide.
For my generation, of course, this is a second-tier overplay -- "Stairway" is the most overplayed song of all time -- but if you can manage to hear it the first time. If you can just come to it fresh. This is stunning.
Do you know what I should like to know? I should like to know what Armstrong would have made of it. I should like to know whether he'd've put it on one of his tapes with his commentary.
On the cover of Hofstadter's famous _Godel, Escher, and Bach_, there's a photo of an artifact he made, called a "trip-let". The trip-let, when lit from three different angles, produces shadows that spell out "G", "E", and "B".
Let's talk about software design.
Before we dig in: I love to think & talk about geekery, but it's comfort food, not my most important story. Take a break, enjoy this thread, but please stay in the larger game with me, which isn't changing code, it's changing the world.
Black Lives Matter.
I was recently asked to prepare some content around the topic of software design. There are a lot of ideas out there about "good" software design and "bad", and about rules or the lack thereof. It's a rich topic, a lifetime game.