1. 모든 중복이 제거되기 전까지는 테스트를 통과한것으로 치지 않는다.
2. 구현하기 위해 역방향이 아닌 순방향으로 작업한다.
3. 앞으로 필요 할 것으로 예상된느 객체의 생성을 강요하기 위한 테스트를 작성한다.
4. 빠른 속도로 구현한다.
5. 일단 한곳에 캐스팅을 이용해서 코드를 구현했다가 테스트가 돌아가자 그 코드를 적당한 자리로 옮긴다.
6. 명시적인 클래스 검사를 제거하기 위해 다형성을 사용한다.