작은 단위의 테스트 케이스를 작성하고, 이를 통과하는 코드를 추가하는 단계를 반복하여 구현.
짧은 개발 주기의 반복에 의존.
Red: 실패하는 테스트 코드 먼저 작성
Green: 테스트 코드를 성공시키기 위한 실제 코드 작성
Blue: 중복 코드 제거, 일반화 등 리팩토링
실패하는 테스트 코드를 작성할 때까지 실제 코드를 작성하지 않기.
실패하는 테스트를 통과할 정도의 최소 실제 코드를 작성.
실제 코드에 기대하는 바를 명확히 정의.
불필요한 설계 피하고, 정확한 요구 사항에 집중.