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

More Related Content

What's hot

GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법Sunjung Park
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101Chang W. Doh
 
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017devCAT Studio, NEXON
 
132 deview 2013 프로그래머로 산다는 것 유석문
132 deview 2013 프로그래머로 산다는 것 유석문132 deview 2013 프로그래머로 산다는 것 유석문
132 deview 2013 프로그래머로 산다는 것 유석문NAVER D2
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]Yurim Jin
 
자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법Minsuk Lee
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better EngineerDaeMyung Kang
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)Suwon Chae
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로NAVER D2
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임Yurim Jin
 
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자Minsuk Lee
 
2014년에 만든 나만의 이력서
2014년에 만든 나만의 이력서2014년에 만든 나만의 이력서
2014년에 만든 나만의 이력서Javajigi Jaesung
 
패스트캠퍼스 프론트엔드 강의 오리엔테이션
패스트캠퍼스 프론트엔드 강의 오리엔테이션패스트캠퍼스 프론트엔드 강의 오리엔테이션
패스트캠퍼스 프론트엔드 강의 오리엔테이션Taegon Kim
 
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기FAST CAMPUS
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며NAVER Engineering
 
[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black TreeYurim Jin
 
패캠 네트워킹 데이 - 침묵으로 가르치기
패캠 네트워킹 데이 - 침묵으로 가르치기패캠 네트워킹 데이 - 침묵으로 가르치기
패캠 네트워킹 데이 - 침묵으로 가르치기Javajigi Jaesung
 
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...NAVER Engineering
 

What's hot (20)

GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
GitLab Korea 밋업 - UX가 올 리모트 팀에서 일하는 법
 
초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101초보 개발자를 위한 웹 프론트엔드 개발 101
초보 개발자를 위한 웹 프론트엔드 개발 101
 
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
 
Pair programming how_to_20140930-1
Pair programming how_to_20140930-1Pair programming how_to_20140930-1
Pair programming how_to_20140930-1
 
132 deview 2013 프로그래머로 산다는 것 유석문
132 deview 2013 프로그래머로 산다는 것 유석문132 deview 2013 프로그래머로 산다는 것 유석문
132 deview 2013 프로그래머로 산다는 것 유석문
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법자기소개서, 이력서 쓰는 법
자기소개서, 이력서 쓰는 법
 
How To Become Better Engineer
How To Become Better EngineerHow To Become Better Engineer
How To Become Better Engineer
 
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
잘하면고효율, 못하면가문의원수가되는 짝프로그래밍 (Effective Pair Programming with Lessons Learned)
 
[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로[1B2]자신있는개발자에서훌륭한개발자로
[1B2]자신있는개발자에서훌륭한개발자로
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임[제3회] 9x년생 개발자 모임
[제3회] 9x년생 개발자 모임
 
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
GDG-DevFest, 만들면서 자랑하면서 성장하는 개발자
 
2014년에 만든 나만의 이력서
2014년에 만든 나만의 이력서2014년에 만든 나만의 이력서
2014년에 만든 나만의 이력서
 
패스트캠퍼스 프론트엔드 강의 오리엔테이션
패스트캠퍼스 프론트엔드 강의 오리엔테이션패스트캠퍼스 프론트엔드 강의 오리엔테이션
패스트캠퍼스 프론트엔드 강의 오리엔테이션
 
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
[강의소개] 파이썬으로 시작하는 웹 프로그래밍 CAMP 1기
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
 
[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree[9x년생 개발자 모임 송년회] Red Black Tree
[9x년생 개발자 모임 송년회] Red Black Tree
 
패캠 네트워킹 데이 - 침묵으로 가르치기
패캠 네트워킹 데이 - 침묵으로 가르치기패캠 네트워킹 데이 - 침묵으로 가르치기
패캠 네트워킹 데이 - 침묵으로 가르치기
 
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
200820 NAVER TECH CONCERT 14_야 너두 할 수 있어. 비전공자, COBOL 개발자를 거쳐 네이버에서 FE 개발하게 된...
 

Similar to 짝 프로그래밍 소개

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법강 민우
 
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한..."행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...Myeongseok Baek
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013호정 이
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
Better softwareengineer han
Better softwareengineer hanBetter softwareengineer han
Better softwareengineer hanDaeMyung Kang
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote진수 한
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할Hoyoung Choi
 
애자일 안한 이야기
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기Sungchul Park
 
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우NAVER Engineering
 
프로그래머 일하면서 성장하기
프로그래머 일하면서 성장하기프로그래머 일하면서 성장하기
프로그래머 일하면서 성장하기wlstjdpark
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템KwangSam Kim
 
스마일게이트 서버개발캠프 - 5vengers
스마일게이트 서버개발캠프 - 5vengers 스마일게이트 서버개발캠프 - 5vengers
스마일게이트 서버개발캠프 - 5vengers ServerDevCamp
 
Kgc12발표문서
Kgc12발표문서Kgc12발표문서
Kgc12발표문서Mingu Heo
 
해외에서 일하며 Ver 2
해외에서 일하며 Ver 2해외에서 일하며 Ver 2
해외에서 일하며 Ver 2Hakhyun Kim
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
 

Similar to 짝 프로그래밍 소개 (20)

홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
[IGC2018] 펄어비스 김광삼 - 대면 커뮤니케이션 주도의 게임 디자인과 게임 개발법
 
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한..."행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
"행복한 백발의 개발자"라는 제목으로 2024-03-06 어느 IT 업체에서 직책자로 승진한 분들을 대상으로 한...
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
Better softwareengineer han
Better softwareengineer hanBetter softwareengineer han
Better softwareengineer han
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote
 
NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할NDC2019 - 게임플레이 프로그래머의 역할
NDC2019 - 게임플레이 프로그래머의 역할
 
AKC2020 marimba 마주연
AKC2020 marimba 마주연AKC2020 marimba 마주연
AKC2020 marimba 마주연
 
애자일 안한 이야기
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기
 
[AKC2021] 애자일 안한 이야기 (박성철)
[AKC2021] 애자일 안한 이야기 (박성철)[AKC2021] 애자일 안한 이야기 (박성철)
[AKC2021] 애자일 안한 이야기 (박성철)
 
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
200819 NAVER TECH CONCERT 09_Case.xcodeproj - 좋은 동료로 거듭나기 위한 노하우
 
프로그래머 일하면서 성장하기
프로그래머 일하면서 성장하기프로그래머 일하면서 성장하기
프로그래머 일하면서 성장하기
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템만능 개발자를 위한 아틀리에 시스템
만능 개발자를 위한 아틀리에 시스템
 
스마일게이트 서버개발캠프 - 5vengers
스마일게이트 서버개발캠프 - 5vengers 스마일게이트 서버개발캠프 - 5vengers
스마일게이트 서버개발캠프 - 5vengers
 
Kgc12발표문서
Kgc12발표문서Kgc12발표문서
Kgc12발표문서
 
해외에서 일하며 Ver 2
해외에서 일하며 Ver 2해외에서 일하며 Ver 2
해외에서 일하며 Ver 2
 
커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
 

짝 프로그래밍 소개

  • 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분 휴식 • 짝 프로그래밍은 보기만 쉽지 효과적으로 하기는 어렵다고 합니다. 하면서 좋았 던 부분, 고칠 부분을 생각하고 정리하며 지속적으로 고쳐나가 봅시다.
  • 9.
  • 14. 참조 • 익스트림 프로그래밍 인스톨드, 론 제프리즈 외, 인사이트(2002) • 익스트림 프로그래밍, 켄트 백 외, 인사이트(2006) • 코드 컴플릿, 스티브 맥코넬, 정보문화사(2005) • http://xper.org/wiki/xp/ • http://www.slideshare.net/doortts/effective-pair-programming-with-lessons- learned?related=2