Is TDD dead?

Spoiler alert: Hell no.

If you haven't noticed, there's been a pretty major nerd-spat playing out in certain corners of the internet. On the one side, Rails creator David Heinemeier Hansson believes that TDD is a waste of time and energy, and encourages poorly designed software. On the other side, many people of consequence disagree. Some respectfully (Kent Beck and Martin Fowler). Others not so much (Rob C. Martin).

Find DHH's incindiary post here. Note his use of clever rhetoric like, "This is not better." Also note that most of his arguments rest on his point that module isolation is a Bad Thing - a point that runs contrary to most modern software development (and a fair bit of not-so-modern stuff too). See also: Object Oriented Analysis and Design, Object Oriented Programming, SOLID principles, and pretty much everything else that isn't high-school grade code.

Find a 5-part debate between DHH, Kent Beck, and Martin Fowler here. Enjoy 3 hours of Beck and Fowler politely patting DHH's head as he repeats over and over what I summarize as: "TDD is bad because I don't like it!" and "TDD is bad because it produces code that I think is bad!"

Rob C. Martin weighs in several times, but my favorite is here. His conclusion uses the word "professional". That particular word struck a chord with enough folks that he had to clarify and almost retract what he had said. Too bad.


For the record, when possible, Small Army Of Nerds Corp. practices professional TDD. And though I find the word a little goofy, I fall squarely in the "mockist" camp. Unit tests test units - little to nothing else.


Damn, Cory

Cory Doctorow delivers an amazing talk about why the internet is broken and what we need to do about it.


A visual guide to the SOLID principles

An excellent set of images to help you remember the SOLID principles.

At this point, naturally, I removed my pants and the guy started screaming at me about police and indecent exposure. Confused, I said, “look, I’m just trying to pay you — I’ll hand you my pants and you go rummaging around in my pockets until you find my wallet, which you’ll take out and go looking through for cash.


A (mostly) painless introduction to computability

This is a spectacular 40-minute presentation by Tom Stuart, author of Understanding Computation: From Simple Machines to Impossible Programs, at the Scottish Ruby Conference 2013. It contains a whirlwind tour of the halting problem and how it pertains to modern day software development. Specifically, why we get crappy software on our iPhones.

2.1.4. Tom Stuart.mp4 from Neo (UK) on Vimeo.


We're hiring again

It's getting a little quiet around the office. It's time we opened our doors to a new batch of nerds.