Embarrassment Driven Development

Googling “embarrassment driven development” (EDD) does not return as many hits as it should. I think it’s a very powerful development technique. I first heard the expression from the Plone guys at PyCon 2006, and Google did turn up this match:

[ArchipelagoSprint] Time to get cracking on Plone 3.0!

Wrt. timelines, I was hoping that we could try to have a “Tech preview” release before the Plone Conference 2006 in Seattle (October 25-27) – I’m going to be on-stage there talking about the exciting new features of Plone 3.0 – and I’d like to not be booed off stage. Yes, this is embarrassment-driven development – as usual. 😉

That’s Alexander Limi illustrating the prime motivator for EDD.

The idea behind EDD is simple: if you have to demo something in front of an audience, and that something sucks, you will move hell or high water to make sure you don’t look like an idiot.

Every product has rough edges and warts, but no one wants a demo to be all warty and to have to say “yeah, I know you shouldn’t have to click to the left of the button, but we just haven’t gotten to that yet”. EDD ensures that, at least for the parts you have to get up and show, the rough edges will be smoothed in time for the show.

I’m going to be practicing EDD leading up to JSConf. I want to be able to show some useful, non-trivial bits of ServerJS work by then.

9 thoughts on “Embarrassment Driven Development”

  1. I think EDD and TDD/BDD/etc inhabit slightly different spaces. EDD is a good project management level tool. It tells you you should really get rid of that button, or fix some input form to accept unicode, etc. It doesn’t tell you anything about how you should technically go about doing any of those things, though. So EDD combined with a technique from the TDD/etc group is probably better than either alone.

  2. At my last place of employment we had something really neat. You had to demo something every two weeks in front of everyone else. This meant that everyone was always interested in producing something in short time frames and the EDD was always a factor.

    What a great name!

  3. Where I work right now, our department (products dev, we’re about 14 people) ends every week with a demo for the rest of the company (consultants, sales, etc) of the new features we’ve completed this week. Great motivational tool, carrot and stick and all that.

  4. EDD is very low-tech, but as Mr. Calderone points out, it’s what leads to that great level of polish close to the end of a release cycle. It’s definitely not really a project management technique, but more of an interesting, alternative way to define passion for your product. It always comes down to whether you’re passionate enough to put in the extra two days of obsessive tweaking near the release date.

    PS: I think I coined the term without any outside influence, but you never know. 🙂

  5. Jean Paul, by TDD, i guess you mean Test-Driven Development, in which case the does not tell you about how you should implement anything either. And what does EDD have to do with button placement?? You really don’t understand the concept my friend, you should re-read the article.

  6. @JP: I definitely practice EDD + TDD, with the occasional bout of ADD 🙂

    @Christopher and Marcus: Extreme programming’s short iterations kind of offer a bit of that, but it’s nothing like having a real in front of people demo that is regularly scheduled. Sounds like a grand plan. I also use screencasts as another EDD driver.

    @Alexander: Very cool that you’re the originator of the term. I would certainly believe that, given the lack of google-fu for the term. I honestly wasn’t sure if it was you or Alan who had first said it to me, but your name was on that email that turned up 🙂

    @cak: Actually, TDD does tell me how to do things (write failing test, write code to make the test pass), and EDD has everything to do with button placement, assuming the button in question is a blight on your UI.

  7. I too work in a group that practices EDD-every-two (EDD ET) pronounced “Eat it!” and I have found it very useful. I wonder about the relationship between EDD and ADD.

Comments are closed.