Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News "Agile People Do Get It" -- Uncle Bob

"Agile People Do Get It" -- Uncle Bob

As is usual with a rant, Cedric Beust's lengthy diatribe last week against "troubling comments" by an Agile speaker contains a grain of truth and at the same time, propagates a few misunderstandings.

Among his key complaints, are assertions like:
  • Tests are (executable) specs.
  • If it's not testable, it's useless.
And, more broadly: "Your code is your spec", and "Documentation gets out of date, code never does".

The trigger for his blog entry was a hands-on demonstration by Jeff Langr of Test Driven Development (TDD).  Beust complained about the quality of Langr's examples, and questioned the honesty of the demo.  Jeff Langr has responded in detail regarding his tests, and more generally addresses the subject that seems to have got Beust going: your code is your spec. Langr blogs:
Are tests specs? Yes, they can be, although in a small number of cases it's probably better to just write a brief English specification. But I'm doing test-driven development anyway, for other benefits that include fewer defects and better design.
He goes on to say that, given a choice between heavily documented code with no tests, or poorly written tests, and code without traditional documentation but having an adequate suite of tests (probably built with TDD), he'd choose the latter. This is the extreme, - when balanced with his previous quote, it's clear that he's not anti-documentation, he's simply using hyperbole to make a point.

While Beust does make some valid points, here's one statement which inaccurately paints all Agilists with the same dirty brush:
"Software is shipped with untested parts every day, and just because it's not entirely tested doesn't mean it's bad software or that the untested parts are 'useless'. Agilists just don't understand the meaning of calculated risk."  [emphasis added]
In response, "Uncle" Bob Martin concedes that
"if Agile evangelists use religious arguments, and don't connect with real developers with real problems, then they aren't going to get much further. The early adopters have adopted; and the next batch of folks are a bit more skeptical. To reach them we have to make much stronger arguments that are tied to the reality of development."
But Martin questions whether Beust is talking about risk or hope :-) and ends with this:
Actually, Agile People DO get it. We get it very well.  And we have gone very far into helping the rest of the industry get it.  There is hardly a big or small company that has not tried agile developent in one form or another, and there are many, many, that have invested significantly and are enjoying the benefits.

Agile is not a silver bullet. Agile is not THE ANSWER. But Agile techniques, and especially TDD, are very powerful techniques to get software written well, and to increase the level of professionalism in our industry.
Others who've jumped into the fray include Scott Ambler, with his TDD Myths and Misconceptions, and Ron Jeffries and others who are apparently holding an interesting discussion over on the PragProg yahoo group.  For those who aren't members of that mailing list, you can read Ron's take on a related absurd slogan in Automating "All" Tests: Slogan? Logical Impossibility? Foolishness?

Rate this Article