2016년 11월 10일 목요일

코드 리뷰, 그 냉정과 열정 사이 (1)

  인도 개발자랑 협업하면서 인도 개발자들이 종종 코드 리뷰를 요청하는데, 현재는 프로젝트 초반이라 내 업무가 너무 많아서 코드 리뷰를 요청받으면 엄청 부담을 느낀다. 부담을 느끼는 이유는 몇가지가 있는데 정확하게는 하기와 같다.

1. 코드 리뷰 요청이 오면, 내 업무 + 코드 리뷰까지 해야 하므로 업무 증가에 대한 부담감을 느낀다.

2. 내 업무를 하다보면 요청 받은 코드 리뷰를 까먹거나 혹은 자꾸 미루게 되는데, 이렇게 되면 인도 개발자는 하염없이 해당 코드 리뷰를 기다리게 된다. 코드 리뷰를 받아야 소스코드를 메인라인에 반영할 수 있기 때문이다. 그래서 요청받은 코드 리뷰를 하지 못하고 계속 미루다 보면, 나 때문에 일이 진행되지 않는다는 생각이 들어서 마음이 조급해진다.

  지난 주에는 인도개발자에게 맡긴 새로운 기능 구현에 대한 코드 리뷰를 진행했는데, 신규 프로젝트 초반이라 내 업무가 상당히 많았다. 그래서 코드 리뷰를 미루다가 '나 때문에 인도 개발자의 일이 진행되지 않으면 어쩌지'라는 조급한 마음에 코드 리뷰를 일부분만 해서 보냈다.

  하루 뒤에 인도 개발자가 내 피드백이 반영된 수정 코드를 보냈다. 그런데 처음 코드 리뷰를 할 때 일부분만 보고 코멘트를 했기 때문에, 당시 보지 못한 다른 부분의 코드를 보니 또 수정할 부분이 있었다. 물론 내 업무를 수행하는 중이라 무지 바뻤기 때문에 또 일부분만 코드 리뷰를 해서 보냈다.

  이러기를 한 5~6 차례 정도 했나? 한가지 기능에 대해서 이렇게 오랫동안 코드 리뷰 하고 수정하고를 며칠에 걸쳐서 하니, 인도 개발자도 그렇고 나도 그렇고 코드 리뷰가 너무 지치고 지겹더라.....  나중에 인도 개발자가 그러더라 "이번이 제발 마지막이었으면 좋겠어...." 다음부터는 코드 리뷰 할때, 너무 조급해 하지 말고 한번에 코드 리뷰를 해서 보내야 겠다....

<긴 코드 리뷰의 시간을 헤쳐온 인도 개발자의 마음이지 싶다...>

  물론 코드 리뷰를 통해서 몇가지 버그를 미리 잡기도 하고, 인도 개발자가 사양을 잘못 분석한 것도 바로 잡기도 했다. 이게 바로 코드 리뷰의 진정한 목적이 아닐까 싶다. 디버깅 전에 버그를 미리 고치는 것. 아마 나중에 문제를 발견하여 디버깅하면서 수정하는 것보다 시간은 훨씬 절약 될 것이다.

  그런데 현실에서 이렇게 코드 리뷰의 진정한 목적을 달성하는 것이 무척이나 어렵다. 왜냐하면 잠재적인 버그를 코드 리뷰를 통해서 발견하려면, 코드 리뷰 해주는 사람이 코드 리뷰 받는 사람만큼이나 변경된 사양/코드에 대해서 잘 알고 있어야 하기때문이다.

  그러려면 변경된 사양과 작성된 코드에 대해서 자세히 분석해 볼 시간이 필요한데, 앞서도 말했듯이 내 기능 개발로 가뜩이나 바뻐 죽겠는데 남 사양/코드 분석할 시간을 낸다는 것은 정말이지 큰 부담이다.

  이번에 인도 개발자에게 맡긴 신규 기능을 코드 리뷰 하다 보니 인도 개발자가 사양 분석/코드 구현에 들인 시간 만큼은 아니지만, 나도 코드 리뷰를 위해서 어느새 해당 기능의 사양을 분석하고 구현된 코드와 비교하는 시간이 꽤 들었다. 그로 인하여 의미있는 결과가 도출 된 것 같긴 하지만 말이다.

  하지만 여전히 코드 리뷰 요청이 오면, 나는 부담스럽고 자꾸 나의 일을 방해받는 것 같아 여전히 짜증스럽긴 하다. 어떻게 하면 코드 리뷰를 효율적으로 잘 할 수 있을지 고민 중이다.

0 개의 댓글:

댓글 쓰기