October 22, 2006

...Learn TDD with Codemanship

Agile Backlash Article

I know I'm not really supposed to be discussing the "A" word this month, but I thought some of you might find this blog post by Jonathan Kohl interesting. It reminds me a little of the problem with religion and morality. Can you live a good life if you don't believe in God? I think you can. But then some might argue that I'm working for Satan, regardless of what I do in my life, simply because I'm an atheist. At least most non-believers have the good taste to remain agnostic!

And I'm afraid I'm not an agnostic when it comes to certain key principles in software development, either. I'm what Douglas Adams called a "radical atheist" about waterfall development. I strongly believe in evolutionary design - iterative and incremental, feedback-driven design. And I strongly believe that coding and designing are the same activity. Every line of code contains at least one design decision, therefore we cannot have completed the design until we've written the code. (Or completely modeled it in a language like UML or a DSL.) So I guess I'm saying that I completely believe in iterative and incremental, feedback-driven delivery of working software. This is based not only on experience, but also on some simple maths that shows me that the evolutionary approach is nearly always better and never worse than single-step delivery ("waterfall").

But I'm not saying that because it's written in a book or on a web site. And that's what makes me post-Agile, I guess.
Posted 16 years, 3 months ago on October 22, 2006