본문 바로가기

제안&정리

[Git Strategy] 팀의 속도를 올리는 방법 - Ship Show Ask

사이드 프로젝트를 하면서 Git 전략과 관련해서 가장 어려웠던 부분은 PR 리뷰가 적절한 시점이 이루어지지 않는 것이었습니다.

 

회사는 개발자들이 매일 출근하기 때문에 비교적 빠르게 리뷰가 이루어집니다.

하지만 사이드 프로젝트는 매일 작업하는게 아니다보니 PR을 올려도 동료의 상황에 따라 1, 2주 또는 한달이 걸리기도 합니다.

그러다보니 코드 합칠 때 충돌(Conflict)도 자주 발생합니다.

 

그렇다고 좋은 도구인 PR 리뷰를 없앨 수는 없었는데요.

이런 고민을 하던 중 Ship, Show, Ask 전략을 보게 되었고 팀에 적용해서 팀의 속도를 효과적으로 올릴 수 있었습니다.

 

Ship / Show / Ask

Ship/Show/Ask is a branching strategy that helps teams wait less and ship more, without losing out on feedback.

martinfowler.com

 

Ship Show Ask 전략은 기본적으로 아래 3가지 타입으로 PR을 구분하여 운영합니다.

  • Ship: PR 생성 후 바로 머지하며 별도 리뷰가 필요하지 않습니다.
  • Show:
    • PR 생성 후 바로 머지하지만 리뷰가 필요합니다.
    • 리뷰는 추후 별도 PR로 반영됩니다.
  • ASK
    • PR 생성 후 리뷰 후 머지

 

기존 PR 리뷰 프로세스와 다르게 동료의 동의 없이 머지할 수 있는 방법이 생기게 되고

이를 통해 개발부터 운영 반영까지 속도가 빨라지게 됩니다.

사이드 프로젝트에 적용하고 나서 10배는 빨라진 것 같습니다. (코드 머지까지 2-3주 -> 1일)

 

하지만 당연히 놓치는 부분도 생기게 되는데요.

그렇기 때문에 잘 운영하기 위해서는 아래 2가지 정도가 중요하다고 보았고 팀원들에게 공유했습니다.

수준 높은 테스트 코드와 CI

Ship Show Ask는 기본적으로 코드에 대한 책임의 무게중심을 팀에서 개인으로 이동 시킵니다.

개발자의 자유도와 책임이 높아지게 되는데요. 그렇기 때문에 수준 높은 테스트 코드와 CI가 필요해 집니다.

 

사이드 프로젝트에서 아직 테스트 코드와 CI가 충분히 갖추어 지지 않았지만

서비스 초기이기 때문에 안정성 보다는 속도가 조금 더 중요한 가치라고 판단했습니다.

그래서 팀원들에게 도입을 하지만 더 중요해진 테스트 코드와 CI를 좀 더 적극적으로 고도화 해 가기를 부탁드렸습니다.

PR 외 다른 커뮤니케이션 수단(e.g. 대화, 미팅) 적극 활용

Ship Show Ask 전략 소개 글 설명 중에 가장 인상 깊었던 부분인데요.

PR이 좋은 도구이기는 하지만 대화, 미팅과 같은 다른 커뮤니케이션 수단도 중요하다는 것입니다.

 

실제로 업무를 하다보면 PR을 기계적으로 계속 해 가지만 대화, 미팅을 적극적으로 활용하지는 않았던 것 같습니다.

대화와 미팅을 통해서 공동의 규칙과 공감대를 만들어 가는게 형식적인 PR 리뷰보다 더 낫다라는 생각이 들었습니다.

 

그래서 팀원분들께도 Ship Show Ask를 적용하면서 PR 리뷰는 적어 지겠지만

PR 외에 더 많은 커뮤니케이션을 가질 수 있도록 요청 드렸습니다.

 

---

Ship Show Ask 전략을 사이드 프로젝트에 적용해서 큰 효과를 보았지만

회사에서도 팀의 효율성을 높이는 좋은 도구가 될 것이기 때문에 소속된 팀 또는 프로젝트에 소개해보는 것을 강추 드립니다:)