Orthogonality and the DRY Principle - This part of the interview with Dave and Andy (not that Dave and Andy, this Dave and Andy) talks about decoupling and expressing every idea only once in a system. I was happy to see a discussion of how code generation can support an agile development process:
Andy Hunt: Creating a code generator is an investment. You're banking that it will be cheaper in the long run to build the code generator, because as changes come up you can simply tweak the input to the code generator and regenerate the byproducts. Without a code generator, you will have to manually make changes by hand each time to all the byproducts. If you expect a lot of volatility, a code generator can be a good investment.