두 사람이 한 컴퓨터를 사용해서 프로그래밍을 하는 것으로 ExtremeProgramming에서 표방하는 프로그래밍 방법 중 한가지. 한명(Driver)은 직접 코딩을 하고 다른 한명(Watcher/Observer)은 옆에서 지켜보며 소위 훈수를 두거나, 질문을 하고, 또 Driver가 육체적 일(타이핑)을 하느라 뇌의 상당부분을 혹사하므로, 온전한 뇌로 정신활동(알고리즘에 대해 고민한다든지)을 하며, 상호 보완을 해준다 -- 두 사람이 Collective Mind로 마치 한 사람의 역할을 하는 것과 같다. 코딩하던 사람이 피로해지거나 막힐 때 뿐만 아니라 주기적으로 서로 역할을 바꾸어서 계속 진행한다. 팀이 두명 이상일 때는 하루에 서너번 씩 짝(pair)을 바꾸도록 한다. 혼자서 하는 프로그램보다 두배 가량 빠르고 에러 발생률은 절반 이하로 떨어진다. 결과적으로 개발 시간은 훨씬 줄어든다. (코딩에 전체 개발의 20% 정도 밖에 소요되지 않고, 디버깅과 메인터넌스에 대부분의 시간이 소요되는 걸 고려한다면 더욱) 엉클밥의 [[http://www.objectmentor.com/publications/xpepisode.htm|실제 PairProgramming 과정을 대본화 한 것]]을 웹에서 볼 수 있다. PairProgramming의 효과에 대한 연구자료는 로리 윌리암스(PairProgramming의 대표적 연구자)의 논문들을 참고하라. CACM/IEEE에 발표되었던 [[http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF|The Costs and Benefits of Pair Programming]]이 대표적이다. 참고로 이 PairProgramming을 적극적으로 사용하고(만들었다고 할 수는 없다. PP는 컴퓨터의 탄생부터 있어왔다) 발전시킨 켄트벡이나 워드커닝험같은 사람들은 교육학의 개념에서 PP의 힌트를 얻었다고도 한다. see also http://www.pairprogramming.com/ ---- [과학기술분류]