User Tools

Site Tools


pairprogramming

두 사람이 한 컴퓨터를 사용해서 프로그래밍을 하는 것으로 ExtremeProgramming에서 표방하는 프로그래밍 방법 중 한가지.

한명(Driver)은 직접 코딩을 하고 다른 한명(Watcher/Observer)은 옆에서 지켜보며 소위 훈수를 두거나, 질문을 하고, 또 Driver가 육체적 일(타이핑)을 하느라 뇌의 상당부분을 혹사하므로, 온전한 뇌로 정신활동(알고리즘에 대해 고민한다든지)을 하며, 상호 보완을 해준다 – 두 사람이 Collective Mind로 마치 한 사람의 역할을 하는 것과 같다.

코딩하던 사람이 피로해지거나 막힐 때 뿐만 아니라 주기적으로 서로 역할을 바꾸어서 계속 진행한다. 팀이 두명 이상일 때는 하루에 서너번 씩 짝(pair)을 바꾸도록 한다.

혼자서 하는 프로그램보다 두배 가량 빠르고 에러 발생률은 절반 이하로 떨어진다. 결과적으로 개발 시간은 훨씬 줄어든다. (코딩에 전체 개발의 20% 정도 밖에 소요되지 않고, 디버깅과 메인터넌스에 대부분의 시간이 소요되는 걸 고려한다면 더욱)

엉클밥의 실제 PairProgramming 과정을 대본화 한 것을 웹에서 볼 수 있다. PairProgramming의 효과에 대한 연구자료는 로리 윌리암스(PairProgramming의 대표적 연구자)의 논문들을 참고하라. CACM/IEEE에 발표되었던 The Costs and Benefits of Pair Programming이 대표적이다.

참고로 이 PairProgramming을 적극적으로 사용하고(만들었다고 할 수는 없다. PP는 컴퓨터의 탄생부터 있어왔다) 발전시킨 켄트벡이나 워드커닝험같은 사람들은 교육학의 개념에서 PP의 힌트를 얻었다고도 한다.

see also http://www.pairprogramming.com/


[과학기술분류]

pairprogramming.txt · Last modified: 2018/07/18 14:10 by 127.0.0.1