# Pair Programing
– Programming 능력의 상향 평준화, 개발인력 변동시 에도 Project 영향도 적음
– Driver 역할의 개발자가 Test Code를 개발하고 이어서 다른 개발자 Implementation Code 개발
– 시스템 Error 감소 및 테스트 문서 최소화 가능
## 장점
– Test 문서대신 Script Code 로 대체가능
– Script 코드 품질향상 도모
– 시스템 변경 시 Test 코드로 이상여부를 Check 함으로써 Manual Test 필요없어 시스템의 유지보수 가능
– User Story에 집중하여 Outside-In 방식으로 개발
– 사용자 관점으로 개발, 테스트함으로써 시스템 수정을 줄임(BDD – Behavior Driven Development)
– 선진 Software 회사들은 대부분 TDD/BDD 방식 적용 (Test코드는 선택이 아닌 필수)
## 역량
– 집중력 향상
– 개인 역량 향상
– 능력의 상향 평균화
– 팀워크 향상
– 개인의 능력 투명(동료평가가 이루어짐)
– 핵심요원의 지식이 자연스럽게 전수
## 생산성
– 개발 집중력 향상
– 컴포넌트 형 개발(TDD Based)
– 소스 Re-factoring이 쉬움
– Test Automation
– 재작업 빈도 감소
– 결함 감소, 품질 향상
## 단점
– 초기 생산성 낮음(테스트 코드등 기본 뼈대 구축)
– 개발자 피로도 증가
– 갈등 회피 불가
– 적응 불가능 개발자 존재 시 원활한 진행 불가