네비게이터
- 오류들을 너무 빨리 체크하는 것
- 드라이버가 문법에러와 오타를 수정 할 시간을 주기
- 너무 작은 에러를 계속 지적하는건 흐름을 끊고, 페어가 타인의 시선을 의식하게 됨
- 당신의 임무는 틀린 단어를 바로 지적하는게 아니라 큰 그림을 고려하는 것
- 로우레벨한 지시 하기
- 운전자에게 제안할 사항이 있으면, 운전자가 이해할 수 있는 가장 높은 수준의 추상화로 전달할 것
- 코드를 불러주는 것 같다면(심하면 각 키입력까지), 잠깐 멈추고 더 상위 레벨에서 얘기할 수 있는지 볼 것
- 그게 실패하면 아이디어 스케치를 위해 잠시 drive 해달라고 요청할 것
- 자신의 키보드를 사용하지 않는 것
- 모든 페어링 세션에 자신의 키보드 가져와서 시작 전에 꼽기
- 이러면 서로 역할 변경이 쉽고, 말 대신 보여주는게 가능
- 자기 마우스가 있는 것도 좋지만, 필수는 아님
드라이버
- 너무 빨리 드라이빙 하는 것
- 에디터에 아주 능숙한 경우, 숙련된 네비게이터 조차 따라가기 힘들만큼 빨라지기 쉬움
- 페어가 따라오고 있다는 확신이 없다면, 당신의 최고 속도로 코드를 조작하지 말 것
- 하는 일을 입으로 얘기하면서 하면 좋음
- 체크아웃된 네비게이터를 허용하는 것
- 너무 빨리 하거나, 이해하지 못하는 일을 하면 내비게이터의 주의를 잃기 쉬움
- 페어의 주의가 흐트러지고 있다면 멈추고 동기화 할 것
- 나쁜 질문 : "이거 이해하는거 맞죠?"
- 좋은 질문 : "어떤 부분이 팔로잉하기 어렵나요?"
-
페어링은 지속적인 쌍방 커뮤니케이션이 이뤄져야 함. 당신이나 당신의 네비게이터가 조용하다면, 멈추고 체크인하게 만들기
- 동등하지 않은 스크린 접근
- 모니터가 두 사람 사이에 있게 하고, 둘 다 똑같이 보이는지 확인할 것(폰트를 키우는 것도 고려)
- 한 사람이 옆으로 치우치면, 잠재의식 속 불평등 계층이 만들어짐
- 페어는 하나의 단위임. 둘 중 누구도 더 중요하지 않음
- 휴식하지 않는 것
- 페어링은 소모하는 것. 일반적인 프로그래밍 보다 훨씬 더
- 적절한 휴식을 취하는 좋은 방법은 뽀모도로 테크닉을 사용하는 것
- 시작하기 전에 선호하는 작업/휴식의 길이에 대해 동의해둘 것
- 경청하지 않고 듣기
- 듣는 것과 타이핑을 동시에 하는 것은 어려움
- 네비게이터가 제안을 할 때는, 키보드에서 손을 뗄 것. 더 좋은 건 몸을 돌려서 아이 컨택 을 할 것
둘 다 에게
- 비생산적인 산만함을 허용하는 것
- 페어링 시작하기 전에 모든 알림을 끌 것(컴퓨터와 폰 모두)
- 세션 동안에는 어떤 알림/문자 메시지도 받으면 안됨. 혹시 놓쳐서 받게 되면, 사과하고 그 다음에는 안 울리게 할 것
- 다른 모니터에 이메일 열어두기 않기
- (페어링 안할 때도 이렇게 해야함. 생산성을 증대시키는 가장 빠른 방법은 인터럽트를 줄이는 것)
- 역할을 바꾸지 않는 것
- 드라이빙과 네비게이션은은 서로 다른 이유로 소모됨
- 역할을 바꾸면 뇌의 피곤한 부분을 쉬게 하고, 쉬던 부분을 활성화 할 수 있음
- 드라이버를 교체하는 것은 페어링 세션에 활력을 불어넣을 수 있는 좋은 방법. 전환해야할 때 마다 알려주도록 타이머 설정해 두기
- 기술이라는 것을 잊어버리는 것
- 페어프로그래밍은 배워야 하는 "기술" 임
- 처음엔 잘 하기 힘들지만, 꾸준히 연습하면 향상 될 것
- 어려운 첫 경험후에 포기하지 말기. 숙련된 개발자라고 좋은 파트너일거라고 단정하지 말기. 연습없이 잘 되기를 기대하지 말기
- 각 세션후에 페어와 함께 피드백하고 반영하기. 어떻게 하면 더 잘할 수 있었을까 ?