읽고 있는 책에 코드 리뷰와 페어 프로그래밍에대한 내용이 짤막하게 나와 있어서 옮겨 봅니다.
코드 리뷰
"코드 리뷰가 낭비인가요?" 강의중에 사람들이 종종 묻곤 한다. 좋은 질문이다. 우리는 표준을 강요하거나 심지어 결함을 찾으려고 코드 리뷰를 사용하는 것은 낭비라고 생각한다. 대부분의 결함을 회피하는 좋은 방법이 자동화된 테스팅 기법인 것처럼, 대부분의 표준을 지키도록 강요하는 경우에도 코드 분석기나 IDE 검사기가 더 유용하다. 코드 리뷰는 이와는 다른 종류의 문제를 찾는데 초점을 맞춰야 한다. 예를 들어 경험이 부족한 개발자가 작성한 코드에 간결함, 변화 허용성, 반복제거 및 기타 좋은 객체지향 기법들이 사용되었는지 확인하는 차원에서 코드 리뷰를 수행할 수 있을 것이다. 한편, 코드 리뷰는 복잡도와 같은 이슈를 제기하는데 좋은 도구가 될 수 있다. 우리가 알고 있는 어떤 조직은 새로 커밋하는 코드에 맥케이브 순환 복잡도(McCabe Cyclomatic Complexity)를 계산하여, 그 값이 임계치인 10을 넘으면 코드 리뷰를 실시한다.
코드를 체크인하기 전에 코드 리뷰를 요구하는 일부 정책은, 리뷰 단계 앞에 미완성 작업의 대규모 적체를 유발한다. 하지만 이것은 린(Lean) 환경에서는 허용될 수 없고 적극적으로 회피해야만 하는 상황이다. 지연 없이 코드 리뷰를 실시하는 한 가지 방법은 코드를 작성할 때 짝을 이루도록 하는 것이다.
짝짓기
짝짓기(짝 프로그래밍으로도 부름)는 두 명이 나란히 앉아 같은 작업을 하도록 하는 기법이다. 이 기법은 코드 리뷰를 일괄적으로 처리하는 대신 연속적으로 이루어지도록 한다. 현명한 짝짓기는 높은 가치를 제공한다. 짝을 이뤄 코드를 개발하는 것은 학습과 팀웍, 문제 해결 능력을 증진시킬 수 있다. 게다가 짝짓기는 종종 생산성을 높이기도 하는데, 두 사람의 눈으로 검토하므로 코드의 품질과 견고성을 모두 향상시키기 때문이다. 더욱이, 짝은 방해를 차단하고 작업에 집중하도록 하는 경향이 있다. 프로그래밍을 해 본 경험이 있는 사람이라면, 소프트웨어 개발은 지속적으로 문제를 푸는 훈련이라고 이야기 할 것이다. 더구나, 짝짓기는 멘토링 프로그램을 내장하고 있기 때문에 신규 인력을 팀에 추가하는 것을 용이하게 한다.
짝짓기가 모두에게 적용가능하거나 모든 상황에 적합한 것은 아니다. 하지만 짝짓기는 시너지를 자주 유발한다. 각기 다른 일을 하는 것보다 둘이 함께 일하는 것이 훨씬 잘 통합되고, 테스트되며, 결함없는 코드를 자주 인도할 수 있게 한다. 그리고 짯짓기는 미완성 작업들이 적체되지 않도록 하면서, 리뷰의 이점을 취할 수 있게 하는 최선의 방법 중 하나이다.
코드 리뷰
"코드 리뷰가 낭비인가요?" 강의중에 사람들이 종종 묻곤 한다. 좋은 질문이다. 우리는 표준을 강요하거나 심지어 결함을 찾으려고 코드 리뷰를 사용하는 것은 낭비라고 생각한다. 대부분의 결함을 회피하는 좋은 방법이 자동화된 테스팅 기법인 것처럼, 대부분의 표준을 지키도록 강요하는 경우에도 코드 분석기나 IDE 검사기가 더 유용하다. 코드 리뷰는 이와는 다른 종류의 문제를 찾는데 초점을 맞춰야 한다. 예를 들어 경험이 부족한 개발자가 작성한 코드에 간결함, 변화 허용성, 반복제거 및 기타 좋은 객체지향 기법들이 사용되었는지 확인하는 차원에서 코드 리뷰를 수행할 수 있을 것이다. 한편, 코드 리뷰는 복잡도와 같은 이슈를 제기하는데 좋은 도구가 될 수 있다. 우리가 알고 있는 어떤 조직은 새로 커밋하는 코드에 맥케이브 순환 복잡도(McCabe Cyclomatic Complexity)를 계산하여, 그 값이 임계치인 10을 넘으면 코드 리뷰를 실시한다.
코드를 체크인하기 전에 코드 리뷰를 요구하는 일부 정책은, 리뷰 단계 앞에 미완성 작업의 대규모 적체를 유발한다. 하지만 이것은 린(Lean) 환경에서는 허용될 수 없고 적극적으로 회피해야만 하는 상황이다. 지연 없이 코드 리뷰를 실시하는 한 가지 방법은 코드를 작성할 때 짝을 이루도록 하는 것이다.
짝짓기
짝짓기(짝 프로그래밍으로도 부름)는 두 명이 나란히 앉아 같은 작업을 하도록 하는 기법이다. 이 기법은 코드 리뷰를 일괄적으로 처리하는 대신 연속적으로 이루어지도록 한다. 현명한 짝짓기는 높은 가치를 제공한다. 짝을 이뤄 코드를 개발하는 것은 학습과 팀웍, 문제 해결 능력을 증진시킬 수 있다. 게다가 짝짓기는 종종 생산성을 높이기도 하는데, 두 사람의 눈으로 검토하므로 코드의 품질과 견고성을 모두 향상시키기 때문이다. 더욱이, 짝은 방해를 차단하고 작업에 집중하도록 하는 경향이 있다. 프로그래밍을 해 본 경험이 있는 사람이라면, 소프트웨어 개발은 지속적으로 문제를 푸는 훈련이라고 이야기 할 것이다. 더구나, 짝짓기는 멘토링 프로그램을 내장하고 있기 때문에 신규 인력을 팀에 추가하는 것을 용이하게 한다.
짝짓기가 모두에게 적용가능하거나 모든 상황에 적합한 것은 아니다. 하지만 짝짓기는 시너지를 자주 유발한다. 각기 다른 일을 하는 것보다 둘이 함께 일하는 것이 훨씬 잘 통합되고, 테스트되며, 결함없는 코드를 자주 인도할 수 있게 한다. 그리고 짯짓기는 미완성 작업들이 적체되지 않도록 하면서, 리뷰의 이점을 취할 수 있게 하는 최선의 방법 중 하나이다.