코드 리뷰 대신, 몹 프로그래밍

Engineer Edlin·2022년 10월 15일
0

Tech Talk

목록 보기
5/9
post-thumbnail

Don't do Code Review, try Mob instead 를 번역하고 일부 내용을 추가하였습니다.



0. 들어가기에 앞서

  • 코드 작성 후, 리뷰 진행, 코드에 대한 질문과 답변이 오가는 비동기적인 패턴을 가진 것이 코드리뷰의 단점이다.
  • 코드 리뷰는 "왜?" 하는 것인지, 코드리뷰의 비동기적 패턴이 얼마나 많은 시간을 잡아 먹으며 생산성을 떨어뜨리는지에 대해 생각해 볼 필요가 있다.


1. 코드리뷰의 목적(이점)

  • 지식을 공유
  • 책임을 공유
  • 코드 구조 개선

위와 같은 이점을 가지고 있지만, 코드 리뷰는 단지 하나의 도구에 불과하다는 점을 잊지말아야 한다. 만약 위와 같은 이점을 지니면서도 더 나은 방법이 있다면 도구를 교체해야 한다.



2. Mob Programming

  • Mob Programming 이란 모든 팀 멤버들이 한 스크린 앞에서 같은 시간에 코드를 작성하는 것을 의미한다.
  • 한 세션에 한 사람이 운전수가 되어, 타입하고 클릭하는 역할을 맡는다.
  • 방향자(navigator)는 주의를 기울이며 3 분 정도 코드의 방향성에 대해 지시한다.(목적 정의 및 코드의 방향 제시)
  • 팀의 다른 사람들은 주의를 기울이며 이를 주의깊게 살피고 방향자가 제대로된 방향으로 지시하는지를 함께 살펴본다.
  • 방향자를 3분 마다 로테이션 하며 3-4시간 정도 반복한다.

방향자를 바꾸는 것은 집중을 유지한 채 프로그래밍을 함께 이어나가기 위해서이다.



3. 코드 리뷰의 목적을 만족시키며 시간을 줄이다.

  • 코드 리뷰는 코드를 통해 함께 지식을 공유하고 코드를 개선하여 배움을 이어나가기 위함이다.
  • Mob Programming의 경우 지식을 즉각적으로 공유하기 때문에 시간을 줄이면서도 위 목적을 만족시킬 수 있다.
  • 코드 구조에 대한 이해가 같기 때문에 타인의 코드 구조를 이해하기 위한 시간을 줄일 수 있고 배움도 이어나갈 수 있는 것이다.


4. 시행착오를 충분히 겪기

  • Mob Programming은 분명 시행착오를 필요로 한다.
  • 그러나 첫 몇 주가 지나고 나면 매우 색다른 경험을 할 수 있다.
  • 전문가를 두고 문제가 일어날 때 즉각적으로 고치면서 코드에 대한 이해를 같이 이어나갈 수 있다.


5. Mob의 요구사항

  • 팀의 모두를 위한 프로그래밍 기법이다.
  • Mob은 좋은 대화 스킬을 기를 수 있게한다.
  • 거만함이 없고, 수동적 공격 성향을 가지지 않는다.
  • 즉, 누구보다 낫고 누구보다 덜함이 없이 함께 코드를 작성하며 성장해나가는 것이다.
  • 코드 리뷰 시, 피드백에 걸리는 시간을 줄이고 코드 개선을 해내는 것 이것이 Mob Programming 이다.


📚 챙기면 좋을 영어 단어

  • passive-aggressive : 직접적으로 마주하는 것을 피하면서 다른 사람에게 공격적으로 대하는
  • mob : A large number of people
profile
담대하게 도전하고 기꺼이 실패를 받아들이는 개발자

0개의 댓글