Coming Soon, the Steve Yegge vs. Dave Thomas Smackdown!?

Posted by Peter Armstrong Sat, 07 Oct 2006 19:00:00 GMT

In the (ruby) red corner, Dave Thomas. He:

  • is an excellent writer of books
  • wrote The Pragmatic Programmer (hooray!)
  • wrote Programming Ruby (huzzah!)
  • co-wrote Agile Web Development with Rails (hooray and huzzah!)
  • co-authored the Agile Manifesto

In the blue corner, Steve Yegge. He:

  • is an excellent writer of essays (his blog posts are essays, much like Paul Graham's)
  • writes lots of pro-Ruby blog posts (hooray!)
  • is an Emacs user (huzzah!)
  • works at Google (ka-ching!)
  • slammed "Agile Development" in this and this blog post

The funny thing is that if you actually read the Agile Manifesto it does not read like Egomania Itself.

In fact, I suspect that Steve Yegge probably agrees with the following four tenets of the Agile Manifesto:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

They sound a lot like how Google works, according to Steve Yegge's description of it. (I have no knowledge of how Google actually works.)

I like to think of what happened to Agile Development as kind of a microcosm of what happens elsewhere.

You start with four truths:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Most talented software developers in a business setting will look at these and either agree with these outright or at least see where the authors were coming from.

Then, you move on to some principles, which are still pretty good. Here are some of my favorites:

Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done.
...
Working software is the primary measure of progress.
...
Simplicity--the art of maximizing the amount
of work not done--is essential.
...
The best architectures, requirements, and designs
emerge from self-organizing teams.

At this point, most of the value has been created.

If you were an intelligent software development manager and you read--and thought deeply about--the ideas on those two web pages (and nothing else that the Agile community produced), you would probably become a better software development manager.

However, no money has been made yet!

And so, human nature comes into play. You can't just take the message, you need a medium to sell it to you. Repeatedly.

And when this is applied to software development, hilarity ensues.

So, since all you need to create your own software development methodology is a blog or a PDF-only book, I'll do it too! I have a blog (obviously), so here we go:

Pragmagile Development

Pragmagile Development will be the subset of Agile Development that I could imagine both Dave Thomas and Steve Yegge (and the cool 37signals kids for that matter) agreeing on. (I'm sure it would appeal to Dave Thomas since Pragmagile derives from Pragmatic as well as Agile :-)

There will be no original ideas in it, which means that it's totally in keeping with the Zeitgeist of Web 2.0.

I've created a Brand New Software Development Methodology and I still haven't eaten lunch yet!

Time to go fix that, and also buy a Dyson vacuum at Costco. (It sucks more than most software development projects!)

Ah, the Saturday Routine of the Domesticated Suburban Father.


Update 2006-10-23: I've revised this post to be a tiny bit more measured in tone. Also, the Dyson vacuum is the greatest appliance ever created. If only most software development practices worked as well as it does instead of sucked as much as it does...

Comments

Trackbacks

Use the following link to trackback from your own site:
http://peterarmstrong.com/articles/trackback/17

  1. From Toxic Elephant
    How to write software
    Peter Armstrong hits it right on the head: People Need Gaudy Shit Instead of having a loose set of things that work, that are generally or even just sometimes good, that we mix and match according to the circumstances, we get everything put together in...

(leave url/email »)