1. 짝 프로그래밍
코드 품질 향상을 위한 협력적 개발 aunicornwithcancer.wordpress.com
2. 짝 프로그래밍 PAIR PROGRAMMING
• XP(eXtreme Programming) 의 실천방법 중 하나
• 전체 팀, 계획 게임, 작은 배포, 테스트 주도 개발(TDD), 설계 개선(리팩토링)
• 짝 프로그래밍
• 팀 코드 소유, 사용자 스토리, 지속적인 통합…
• 두 프로그래머는 한 대의 컴퓨터 앞에 앉아 모든 제품 코드를 함께 작성한다.
• 둘이 따로 일하는 것보다 양이나 질적인 면에서 더 나은 코드를 생성한다.
• 맡은 부분만 이해 하는게 아니라 모든 것을 이해한다.
역할 책임
드라이버 키보드를 가지고 프로그램을 작성하는 사람
파트너 옆에서 돕는 사람(네비게이터)
3. 왜 하는 걸까?
• 같은 수준으로 일하기
• 팀으로 일하기 – 안정감, 성취감
• 효율성 – 혼자서 할 때보다 두배 가량 빠르고 결함률은 반 정도가 된다.
• 지식의 전달과 공유
4. 어떻게 하는 걸까?
• 둘이 함께 개발
• 한 명은 키보드
• 한 명은 관찰/인도
• 주기적 역할 교대
• 짝 바꾸기
techcrunch.com
5. 잘 하려면?
• 이해도가 높은 사람이 먼저 드라이버를 한다
• 파트너가 할 일
• 드라이버가 일에 막히거나 피곤한 것 같으면 교대를 권한다
• 코드가 정확히 작성되고 있는지 실수는 없는지 살핀다 – 숲을 본다.
• 드라이버가 자신의 생각과 다르게 하더라도 일단 기다려본다
• 드라이버가 할 일
• 시작하기 전 어떤 일을 할건지 설명한다
• 파트너가 완전히 집중하고 있는지 확인한다
• 혼자 도망가지 말고 파트너의 소리에 귀 기울인다.
• 상대방을 존중한다!
6. 하지 말아야 할 것들
• 감시가 되지 않도록 한다
• 일방향 강의가 되지 않도록 한다
• 짝 프로그래밍을 강요하지 않는다
• 혼자 해도 충분한 쉬운 업무까지?
• 서로 좋아하지 않는 사람을 짝으로 만들지 말라
• 초보자들끼리 짝을 만들지 않는다
• 논쟁 보다는 개발에 집중(100분 토론)
• 짜증, 마이크로 컨트롤(엔터 스페이스 변수명이 뭐 그래)
• 한숨, 딴짓하기, 키보드 가로채기
funnyjunk.com
8. 우리는 어떻게 할까요?
• 방법론이 문제를 해결하지는 않습니다. 문제 해결의 힌트 정도 아닐까요?
• 자유롭게 합시다 : 제도에 사람을 맞출 수는 없습니다. 사람에 맞게 제도를 고쳐
야겠죠?
• 1 + 1 = 2, 1 + 1 > 2, 1 + 1 < 2
• 서로를 존중하고 편하게 해줍시다.
• 매우 강한 집중을 하게 되므로 자주 쉬어줍니다. 적어도 25분 작업에 5분 휴식
• 짝 프로그래밍은 보기만 쉽지 효과적으로 하기는 어렵다고 합니다. 하면서 좋았
던 부분, 고칠 부분을 생각하고 정리하며 지속적으로 고쳐나가 봅시다.