Muses

Getting Past Impostor Syndrome

I wanna muse about roughly 17 things. But i’m gonna try to relate them to a single message. The additional challenge, some of u may be in a place where this message will sound like an attack. Please please believe it is not meant to be that. The message: you gotta get past this impostor syndrome bullshit. It is a nasty trick that you and geek culture are pulling, together, on yourself. Far from being "honest" and "healthy", it is […]

Getting Past Impostor Syndrome See Full Post

TDD Pro-Tip: Start Builders & Partial Comparators Early

TDD Pro-Tip: Prevent complex test data from spiraling out of control by going to builder & custom comparator early on. The push-to-small, coupled with SOLID, coupled with things like third normal form, all lead us to a place of wanting to compose domain objects into potentially very rich dependency graphs. A card in a address-tracking subsystem sounds at first blush like a class with about 5 simple strings in it, and we certainly start there when we first approach it.

TDD Pro-Tip: Start Builders & Partial Comparators Early See Full Post

Acculturation: A Little Deeper

I’ve mentioned "acculturation" a couple of times lately. Let’s dig in a little deeper on that. In our trade, we make much of "education", training and learning and skills inventories and such-like. I say we make much of it, well. That’s an overstatement, of course. Companies talk about it a great deal. But i’m often struck by fabulously wealthy companies who are utterly dependent on and desperately needful of geek skills and won’t pay a dime to improve them. But

Acculturation: A Little Deeper See Full Post

Slinging Advice and Where I Come From With It

So, I’m out there slinging advice about how to change the world of being a professional programmer. Maybe y’all need to hear some things about that, that might not have occurred to you. I am just some schmoe. I am having a successful life in the world of geekery. There are a host of causes for that, among them my dumb luck, and also among them the way I approach and enact the work. I like to talk about this,

Slinging Advice and Where I Come From With It See Full Post

TDD Pro-Tip: TDD & Refactoring Are Intertwined Life-Game

TDD Pro-Tip: TDD and refactoring are permanently intertwined activities, neither of which can be grasped all at once, so start learning how to write tests at the same time you’re learning how to change code w/o adding bugs to it. Some activities are what I think of as "life games". The better you get at it, the more there is to learn. I call them games, cuz my first two noticed experiences of this were in the games of pool

TDD Pro-Tip: TDD & Refactoring Are Intertwined Life-Game See Full Post

TDD Pro-Tip: They Work For You, Not You For Them

TDD Pro-Tip: remember who works for who, and shape your tools to your hand, not your hand to your tools. (Btw, these tips are in no particular order. If you want to know the truth, i’m musing them as I do them. People always know more than they can say, and i’m no exception, but i’m digging at what I do over and over, and sharing it.) One difference I see over and over between noobs and olbs is the

TDD Pro-Tip: They Work For You, Not You For Them See Full Post

TDD Pro-Tip: Suspect Demeter Chains

TDD pro-tip: demeter chains are anti-microtestable. What is a demeter chain? It’s code where we talk to a collaborator’s collaborator. U can look up the origins of the name in your copious free time, but in regular code, it looks like this: x = a.b.c.d.e.f; each one of those dots is a link in a demeter chain out of whatever the object is that contains that assignment. A is our direct collaborator. We might have been passed her, or given

TDD Pro-Tip: Suspect Demeter Chains See Full Post

How TDD Makes Change Faster

We spoke of two questions in the recent re-visiting of the money premise. How/why does TDD make changing layered branching logic faster? What’s the capital outlay to change to it? I’ll stall a little further on 2, but let’s do 1. Some provisos before we get started, and they’re pretty important. Proviso #1 We are speaking here of a particular kind of test applied at a particular time during development, specifically, microtests applied right before (and sometimes right after) the

How TDD Makes Change Faster See Full Post

We’re In TDD For The Money

This entry is part [part not set] of 9 in the series Underplayed Premises

Time, this morning, to return to the underplayed TDD premise called the money premise. In one phrase: "We’re in this for the money." What does that mean? In the software business, like every other business in a long period of very high demand, we make more money when we ship more value faster. Please be careful here. When we say "more value faster", we’re not trying to constrain the possible varieties of value. THIS IS AN INCREDIBLY IMPORTANT THING TO

We’re In TDD For The Money See Full Post

Parsing Expressions, TDD, and the Big Why

So, for those following along, the other day I had to decide whether to roll my own parser for boolean expressions involving tags, like "(stinky & doofus) | (ugly)". Very standard stuff. In the end, I rolled my own, and I have to tell you, I just had a really wonderful time. A parser for strings is an absolutely awesome place to do TDD. They’re just strings. No clever fakes, no extract & override, nothing. Just strings. I hadn’t done

Parsing Expressions, TDD, and the Big Why See Full Post

Scroll to Top