See : Otaku, Cedric's weblog: Agile people still don't get it I have to agree with Cedric, when one focus on one specific agile process like TDD and then say he's doing Agile Software Development, then he's not being agile. Being agile is about giving customer more value for it's money. In the case of TDD, if you focus on writing test, then you do not focus on customer value. That does not mean that writing tests will not increase customer value, but there is a balance between the time you spend writing tests and the time you spend writing software for your customer that must be achieved (the famous 80-20 can be applied here). One of the Agile Principle is to deliver working software. Working software is software that the customer can use... Unit tests is not something the customer can use. Any agilist that focus on a particular methodology and/or process is not doing Agile Software Development. An agilist is someone who focuses on giving value to it's customer.