Agile methods break tasks into small increments with minimal planning and do not directly involve long-term planning.
Iterations are short time frames that typically last from one to four weeks. Each iteration involves a cross functional team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing.
Also known as Single Source of Truth, this philosophy is prevalent in model-driven architectures. DRY code is created by data transformation and code generators, which allows the software developer to avoid copy and paste operations.
DRY code makes large software systems easier to maintain, as long as the data transformations are easy to create and maintain.
Test-Driven Development, is a software development process that relies on the repetition of a very short development cycle:
First the developer writes an automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.