, 24 tweets, 16 min read Read on Twitter
So @JoshuaKerievsky’s tweet about my use of “Example-Guided Development” (he says Design but I prefer Development) has caused some discussion. I figured I would try to explain my thinking and link to some of the discussion in a single thread, to attempt to tie it together.
@JoshuaKerievsky I spend a lot of time thinking about “getting the words right”. Naming things is hard, etc. TDD has never been about testing, at least not in any way that could replace actual testing. It is a design discipline that uses executable examples to help guide the thinking.
@JoshuaKerievsky I found when I stopped using testing vocabulary altogether developers took to the approach quickly and intuitively. This seemed to transcend experience level too. I have always said if I find a better way to describe this amazing way to develop software, I’ll happily adopt it.
@JoshuaKerievsky I had an epiphany when I saw the title of @sf105 and @natpryce’s book Growing Object-Oriented Software *guided by* Tests. I was so hung up on “Test” being wrong, it hadn’t occurred to me “Driven” might be too. Tests, or examples, shouldn’t *Drive* design.
@JoshuaKerievsky @sf105 @natpryce Meeting user needs should drive your product. Market forces should drive your product. Business strategy should drive your product. What the examples do in not-Test not-Driven Design is _guide_ the programmer(s) by providing small model clients to inform design choices.
@JoshuaKerievsky Also, Design isn’t the goal of TDD. Shipping software to meet business needs is the goal. So really it’s about Development rather than Design. So that leaves us with not-Test not-Driven not-Design as an amazing software development technique, that I want to tell people about.
@JoshuaKerievsky So over the last year or so I’ve been using the term “Example-Guided Development”, where each word has earned its place:
@JoshuaKerievsky 1. Examples aren’t tests. They are point examples to act as guide rails.
2. They Guide design, as exemplars (h/t @marick). Needs drive things.
3. The purpose is Development of solutions to customer needs. Design is just part of the story.

And @JoshuaKerievsky likes this. Hooray!
@JoshuaKerievsky @marick Now @martinfowler is concerned that renaming things risks appropriation and erasure, and I agree. I am always super transparent about my sources and inspirations. It is naive to believe any idea ever has only one source. Everything builds on something.

@JoshuaKerievsky but having discovered a better name—more intention-revealing, accessible, less cognitive distance—to describe something, I think it would be irresponsible, or at least a missed opportunity, not to use that better term. I had more success saying BDD over TDD for the same thing.
@JoshuaKerievsky Someone called @alwarren56, whom I don’t know, thinks I may be naming something “on a whim”. I can assure you I understand the implications and trade-offs of changing the name of something. The upside has to be considerably better than the cost.
@JoshuaKerievsky I think @rebeccawb captured my intent of wanting to use a better pedagogical term. People who know how to do this don’t care what it’s called. People who spend their time teaching people, or teaching teachers of people, are always looking for better names.
@JoshuaKerievsky Then @svetzal suggested “calling the shots” at different levels should have different names. I agree but I think this is part of the implementation. TDD and BDD _each_ cover all levels. The notion that BDD = high level, TDD = low level is simply incorrect.
@JoshuaKerievsky Then @RonJeffries expressed concerns about Using Title Case, and about branding and marketing. I think these are significant enough to treat separately, so here are some thoughts about branding.
@JoshuaKerievsky @RonJeffries Branding, literally, is using a mark, word or phrase to identify ownership of something. Farmers used to brand livestock to deter thieves, but it quickly came to be used as a quality mark [citation needed]. Hank’s cows produce the best milk. Sophie’s sheep the best wool.
@JoshuaKerievsky @RonJeffries So people would protect their brand against fraud. (I could just brand my poor quality cows with Hank’s mark and pass them off as his.) Branding is useful. It suggests, at the very least, consistency. MacDonald’s might not be the best burgers, but you know what you’re in for.
@JoshuaKerievsky @RonJeffries There is a strong association of branding with marketing and monetisation, which makes sense. However that often isn’t its primary purpose, consistency is. XP is a brand. BDD is a brand. TDD is a brand. They suggest a recognisable way of doing things.
@JoshuaKerievsky @RonJeffries Title Case is a signifier. It says to the uninformed reader that this is a Standard Name. Using that name with other people should elicit the same ideas in their head. It’s not unlike the way @martinfowler describes pattern names: they bring the pattern to mind if you know it.
@JoshuaKerievsky @RonJeffries Now @KentBeck _explicitly_ didn’t try to monetise XP as a brand. He told me. I _explicitly_ didn’t try to monetise BDD inspired by that conversation. Some terms become well-enough established that you don’t need sentence case. “Test-driven development” is one.
@JoshuaKerievsky @RonJeffries But that’s a style issue. When I’m writing about these things, I assume a significant segment of my audience won’t be familiar with these terms, so I use Title Case for Significant Terms because it makes it easier for the casual reader to spot the terms with a specific meaning.
@JoshuaKerievsky @RonJeffries So yes, it is a branding exercise, but not for commercial reasons. @RonJeffries saying he is brand-agnostic is naive at best, and assumes people don’t closely associate him as a fierce defender of Scrum, or a signatory to the Agile Manifesto (both sentence-cased) for instance.
@JoshuaKerievsky @RonJeffries To bring this back round, @JoshuaKerievsky then points out that reframing isn’t just a casual activity. I’m sensing some friction between Josh and Ron, but nothing I think a face-to-face conversation with a bottle of fine wine couldn’t resolve.

@JoshuaKerievsky @RonJeffries Ron is writing up his own thoughts about all this. I’ve used the phrase “example-guided development” a bunch of times over the last year or so, but I can’t think of a canonical source. TBH I would point to Nat & Steve’s book title!

@JoshuaKerievsky Ok that’s me done.

In conclusion:
1. I think “Example-Guided Development” is a fantastic way to describe The Thing.
2. Branding for consistency is a great idea. Monetising it necessarily creates conflicts of interest.
3. I love that @JoshuaKerievsky is excited about this too.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Daniel Terhorst-North
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!