View on GitHub

google-engineering-practices-kr

구글 엔지니어링 사례 (Engineering Practices) 문서 한글화

긴급 사태

가끔은 전체 코드 리뷰 절차를 최대한 빨리 통과해야 하는 긴급한 CL이 있습니다.

긴급 사태가 뭔가요?

긴급한 CL은 다음 중 하나를 포함한 작은 수정입니다:

긴급 사태에서 우리는 응답 속도뿐만 아니라 전체 코드 리뷰 절차의 속도에 대해서 아주 신경써야 합니다. 이 경우에만, 리뷰어는 다른 것보다 리뷰 속도와 (정말로 긴급 사태를 해결하는지) 코드의 정확함에 신경 써야 합니다. 또, 이런 리뷰는 다른 모든 코드 리뷰보다 우선순위를 높게 가져야 합니다.

하지만, 긴급 사태가 해결되고 나면, 긴급 CL들을 다시 살펴보고 더 철저한 리뷰를 해야 합니다.

긴급 사태가 아닌 것은 뭔가요?

분명히 말해 다음과 같은 경우는 긴급 사태가 아닙니다:

빡센 마감은 뭔가요?

못지키면 뭔가 엄청난 참사가 일어날 수 있는 것을 빡센 마감이라고 합니다. 예를 들면:

일주일 정도 배포를 연기하는 일은 끔찍한 일이 아닙니다. 중요한 미팅을 놓치는 것은 참사일 순 있는데, 보통은 아닙니다.

대부분의 마감은 빡세지 않고 유연합니다. 보통은 특정 시간까지 기능이 완료되길 원하는 바람을 나타냅니다. 물론 이것도 중요하지만, 건강한 코드를 희생할 만큼은 아닙니다.

만약 배포 일정이 여러 주에 걸칠 정도로 아주 길다면, 다음 일정이 되기 전에 코드 리뷰 품질을 희생하면서 기능을 넣고 싶은 유혹에 빠질 수 있습니다. 하지만, 이런 일이 반복된다면, 프로젝트가 대응하기 힘든 기술적 빚에 시달리게 되는 것은 흔한 일입니다. 개발자가 피상적인 리뷰만 받고 “반드시 포함되어야 한다”고 일정이 거의 끝나갈 때 CL을 올리는 일이 일상이 되었다면, 팀 전체의 절차를 수정해서 큰 기능은 일정 초반에 반영해서 좋은 리뷰를 충분히 할 수 있도록 해야 합니다.