Speaker: Evan Dorn
Programmers are smart people. And smart people can make progress without process. Professionals in other fields first design, plan and prepare before they implement. So should programmers. TDD is a way to do this.
Note: Below points are taken verbatim from the talk. You should really watch the talk. It is awesome.
- Decide what the code will do.
- Write a test that will pass if the code does that thing.
- Run the test, see it fail. (A very important step.)
- Write the code.
- design and plan before you code.
- document your design.
- proof that code implements design.
- encourages design of testable code.
- decoupled design.
- methods of limited scope.
- limits cyclomatic complexiblity.
Processes might feel tedious initially but they are necessary to transition from a 'programmer' to a software engineer. And they pay off in better productivity, cleaner codebase and better designed system.
Also see: TDD on wikipedia