Also known as Test-Driven Development (TDD)
• Write a unit test before start writing a code
• Write a code that is enough to pass the test
• Verify the code against the test
• Continuously integrate the passed code
together
• Can be performed together with pair
programming