Code review

코드 리뷰에 대한 중요성에 비하여 코드 리뷰를 하는 개발 조직을 많이 보지 못했습니다. 코드 리뷰를 통하여 결함을 보다 빨리 발견하여 수정비용을 절감하는 효과뿐만 아니라 코딩 표준 준수와 개발자간에 학습효과 증가 등 많은 잇점을 가질 수 있음에도 말이죠.
 
왜 그럴까?, 우선 대부분 볼 시간이 없다고 한다. 리뷰 과정보다는 개발하고 수정할 일들이 급해 보인다. 또한 개발자에게 코드리뷰는 좋은 학습 과정이지만 간혹 내 코드를 남에게 보이고 검토를 받는 것에 대한 거부감과 리뷰 과정에 자존심도 상할 수 있다. 관리자도 돌아가면 되지 코드 수준까지 챙길 여력과 관심이 적은 경우도 많다.
실제 개발 조직에서 코드 리뷰의 수행 결과를 살펴보면, 코드 리뷰가 누적되면서 비용과 기간이 단축되는 효과를 살펴 볼 수 있다. 

                                                                  자료 출처: Best Kept Secrets of Peer Code Review

개발을 마치고 바로 테스트를 진행하는 것보다 코드 리뷰(동료 검토)를 수행한 뒤 테스트를 수행하는 경우가 결함수정 비용이 절감되는 것을 볼 수 있다. 이러한 결함수정 비용의 절감이 의미하는 것은 개발 이후 테스트 과정이 빨리 안정화되면서 전체 기간도 줄어 들 수 있다는 점이다. 

                             자료 출처 : Fagan, M. “Advances in Software Inspections”, IEEE Transaction on SE, July 1986

 
리뷰 대상이 코드로 한정될 이유는 없다. 동료검토는 요구사항 분석과 설계, 개발에 이르는 각 과정에서 주기적으로 이루어져야 한다. 이는 실제 많은 결함들은 요구사항의 모호함과 설계의 부정확함에서 기인한다. 또한 분석,설계 과정에서 수정이 이루어진다면 개발이 이루어지는 후반 과정에서 더 큰 효과를 줄 수 있다. 프로세스 개선의 표준 모델로 사용되는 CMMI에서 표준화 단계인 Level 3 이후 Level 4의 정량적 관리로 넘어가게 해주는 핵심 활동 중 하나가 바로 동료검토이다. 각 단계별 동료 검토가 없다면 정략적 목표도 결과도 파악하기 어렵다.

Agile에서는 코드 리뷰의 장점을 인정하여 Paire programming을 통해 실시간 코드 리뷰를 가능하게 만들어준다. 키보드를 주고 있는 드라이버(Driver)와 이를 관찰자(Observer)가 함께 프로그램을 작성하는 것이다. 폭넓게 설계, 테스트 과정에도 확장하여 적용할 수 있다.

코드 리뷰를 위한 도구들중에 야후는 Review board(http://www.reviewboard.org/) 라는 오픈소스를 사용하고 있습니다. 리눅스와 원도우 서버에 설치가 가능하고 CVS나 Subversion과 같은 코드버전관리 도구를 지원합니다. 사용법도 간단한데 자신의 코드를 수정하고 review를 요청하면 검토자는 기존 코드와 변경된 코드를 보고 리뷰 의견을 전달해 줍니다. 검토 의견에 따라 변경 코드를 commit하던가 수정하여 다시 리뷰를 받는 과정을 진행합니다.









 

by 황순삼 | 2009/10/23 18:27 | 트랙백 | 덧글(0)
트랙백 주소 : http://swprocess.egloos.com/tb/2462137
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >