코드리뷰를 정말 잘 정착 시키고 싶다면…

다시금 예전에 열심히 코드리뷰 하던 생각을 하게끔 하던 일들이 생겨나면서 야밤에 여러 생각을 하게 만든다.

코드리뷰… 리뷰야 하면 좋은데, 시간은 없고…. 그렇다고 안할수도 없고…, 이런 생각으로 코드리뷰를 하게 되면 100% 얼마 안가서 그만두게 된다.

그럼 계속 잘 하게 하려면 어떻게 해야 하나?

그렇다면 일단 코드리뷰보다는 hudson과 같은 빌드 테스트 환경을 잘 갖추고, 소프트웨어 테스트를 굉장히 심도깊게 설계하라고 말씀 드리고 싶다. 리뷰를 하고자 하는데 테스트 환경을 잘 갖추라는게 무슨말인지 잘 모를거 같다는 생각이 들지만, 코드리뷰의 필요성은 리뷰를 받는 사람 개개인의 불완전함을 깨닫는 그 순간에 생겨나기 때문이다.

테스트 환경을 갖추고, daily 빌드 커밋 빌드 등등의 작업 regression test와 같은 것을 수시로 실시해서 조그만한 에러나 warning 조차도 해당 커밋을 한 커밋터들과 구성원에게 알람을 보내게끔 하면된다(한마디로 개쪽당해보는 경험 그 경험이 키 포인트다).  C++ 20년 넘게 하신 분들도 커밋 실수를 한다는 것, 그리고 메모리 관련 에러를 낼 수 있다는 거, 그리고 함수를 개선하려고 기본 기능을 침해하는 경우를 수도 없이 봐왔다. 그런 분들조차도 저런 빌드 fail 메시지가 무서워서 본인보다 경력이 낮은 다른 분들에게 리뷰를 요청한다.

빌드 fail 나고 테스트 fail나면 그 파급 효과가 상당히 크다는 것을 개개인이 느낄 때 코드리뷰는 성공한다. 그리고 리뷰를 강제해야 되냐, 혹은 필요할때만 하면 되는거냐… 하는 논란은 리뷰의 진정한 필요성을 느낄 때 정말 쓸데없는 질문이 된다. 왜냐면 불안전한 코드는 코드를 작성한 사람이 먼저 느끼기 때문이다.

CC BY-NC 4.0 코드리뷰를 정말 잘 정착 시키고 싶다면… by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.