책상 위 고무 오리에게 코드를 한 줄씩 설명하다 보면 스스로 문제를 발견하게 된다는 방법이다. 『실용주의 프로그래머』(The Pragmatic Programmer)에 소개되며 널리 알려졌다. 오리는 아무 말도 하지 않는다. 효과는 설명하는 행위 자체에서 나온다.
왜 통하나
- 머릿속에서는 건너뛰던 단계를 말로 하려면 하나하나 밟아야 한다. "여기서 이 값은 당연히 있고..."라고 말하는 순간 그 '당연히'가 의심스러워진다
- 남이 이해할 수 있게 설명하려면 문제를 다시 정의해야 한다 → 디버깅 문제 정의 5단계
- 도움 요청 글을 쓰는 것도 같은 효과가 있다. 시도한 것, 기대한 결과, 실제 결과를 정리하다가 답이 보이기도 한다
막혔을 때 함께 쓰는 방법들
- 쉬기: 커피, 산책, 점심, 샤워. 쉬는 동안 머리가 계속 일한다
- 같이 보기: 다른 사람은 다른 도구와 질문을 가져온다
- 조사 마감 정하기: "30분 안에 못 찾으면 물어본다"
- 내 코드가 정말 실행되는지 확인하기: 고친 코드가 실제로 실행 경로에 있지 않아서 아무 변화가 없는 경우가 의외로 많다
- 하기 싫은 일 하기: 미뤄 둔 로그 분석이나 문서 읽기가 답인 경우가 많다
막혔을 때 한 발 물러서 생각을 정리하는 습관은 이너 게임의 STOP과 비슷하다. 다른 전략은 디버깅 포켓 가이드 (개요)에 있다.
출처: The Pragmatic Programmer, 20th Anniversary Edition David Thomas, Andrew Hunt