The ever more popular test-first approach.
A widely popular programming rythm where you write failing tests before implementing/changing the functionality of functional code.
(as roughly gathered from Uncle Bob)
- Never write production code unless it is to make a failing test pass.
- Never write more tests than necessary to get one failing test.
- Only refactor when all tests are passing.
Some people (like Jim Coplient at JavaZone 2007) have observed that TDD has a detoriating effect on software. This notion is challenged by Robert "Uncle Bob" Martin and there is a debate between them available on InfoQ portraying this.
A TDD style which emphasizes writing production code within the test before gradually moving it out as needed.
- Wikipedia article: http://en.wikipedia.org/wiki/Test-driven_development