21장 협력 구현
목차
- 21.1 협력 개발 방법 개요
- 21.2 짝 프로그래밍
- 21.3 공식적인 정밀 검토
- 21.4 여러 가지 협력 개발 방법
소프트웨어의 크기가 커지면서 협력 및 커뮤니케이션의 중요성이 점점 커지고 있다. 소프트웨어의 품질을 향상시키기 위한 협력 프로세스는 어떤 것이 있는지 살펴보도록 하자.
21.1 협력 개발 방법 개요
"협력 구현"은 짝 프로그래밍, 형식적인 정밀 검토, 비형식적인 기술 검토, 문서 읽기와 더불어 개발자들이 코드 작성과 제품 개발에 관련된 다른 작업에 대한 책임을 공유하는 데 사용하는 기법을 가리킨다.
개발자가 자신의 코드의 문제점을 발견하지 못한 것을 다른 사람은 볼 수 있다는 점에서 협력 구현 기법이 생기게 되었다. 대표적인 협력 구현 기법에는 짝 프로그래밍, 정밀 검토, 워크 스루 등이 있다.
협력 구현을 통해 시니어 개발자와 주니어 개발자가 서로 대화할 수 있는 시간을 제공하고, 시니어 개발자의 경험과 기술을 주니어 개발자에게 전달할 수 있는 시간이 되기 때문에 전체적인 팀 생산성이 향상된다.
21.2 짝 프로그래밍
짝 프로그래밍은 두 명이 한 팀을 이루어 한 명은 키보드로 코드를 입력하고, 다른 한 명은 키보드에서 손을 떼고 코드의 결함을 발견하는 전략이다.
짝 프로그래밍의 성공 요건
- 코드 작성 표준으로 짝 프로그래밍을 지원하라.
- 코드 작성 방식에 대한 논쟁으로 불필요한 시간 및 감정 소모를 하지 않는다.
- 짝 프로그래밍이 감시가 되지 않도록 하라.
- 짝 프로그래밍을 강요하지 마라.
- 정기적으로 짝과 작업을 교대하라.
- 짝이 서로의 속도에 맞출 수 있도록 하라.
- 파트너 모두 모니터를 볼 수 있게 하라.
- 사이가 좋지 않은 사람을 짝으로 만들지 말라.
- 초보자끼리 짝을 짓지 않는다.
- 팀의 리더를 선정하라.
짝 프로그래밍의 혜택
- 혼자서 개발할 때보다 압박을 더 잘 견딘다.
- 코드의 품질을 향상시킨다.
- 일정을 단축시킨다.
- 협력 문화 보급과 신참 개발자의 교육, 공동 소유 장려와 같은 협력 구현의 다른 모든 혜택을 제공한다.
21.3 형식적인 정밀 검토
정밀 검토는 결함을 발견하는 데 매우 효과적이며 테스트에 비해 상대적으로 경제적인 것으로 알려진 검토의 한 종류다.
형식적으로 정밀 검토를 하면 굉장히 많은 결함을 발견할 수 있다. 코드에 한정되지 않고, 이를 책을 편찬하거나, 발표를 준비할 때도 사용하면 좋은 품질의 제품을 만들 수 있을 것이다.
21.4 여러 가지 협력 개발 방법
이 외에 다양한 협력 개발 방법이 있고, 그 중 인기있는 워크스루에 대해 간략히 설명하겠다. 워크스루는 형식적이지 않은 검토라고 할 수 있다. 자신의 코드를 주변 동료에게 검토해 달라고 부탁하는 것이 워크스루에 포함된다.