Whether to use MDA (Model Driven Architecture) or TDD (Test-Driven Development or Test-First Design or whatever you call it) seems like an important choice between two opposites. Should you do a lot of upfront design? Or should you write a small test, write the code for the test to pass, refactor and so on?

Well, I don't think it's a matter of one or the other. It's both! If you start with TDD, it's great to look at and work with the code with an MDA tool from time to time. You will easily see stuff you donít see in the code.

And if you start with MDA, you should still use tests for as much of the code as possible/is practical. It's also the case for an MDA-heavy project that for the next feature to be added, you might want to start doing it with TDD.

OK, OK. I'm allergic to silver bullets. Similar ramblings to the above could be used over and over again.