들어는 보았나 몹 프로그래밍!

컬리는 이렇게 일합니다

Mob Programming 이란 무엇일까요?

몹 프로그래밍은 한 명의 드라이버와 여러 명의 프로그래머가 하나의 PC로 코딩 또는 문서화 작업을 진행하는 개발 방식으로 1:1방식인 페어 프로그래밍을 1:n으로 확장시킨 형태이다. 여기서 n은 에자일 개발팀 전체 인원수로 팀 전원이 참여한다는 것이 특징이다. (출처)

저희는 2019년 8월부터 신규 쿠폰 프로젝트에서 몹 프로그래밍을 실천해 보기로 했습니다.

개발자 넷이 합체하여 몹 프로그래밍

몹 프로그래밍하는 모습

  • 몹 프로그래밍 사이클
    1. 한 사람이 25분간 코딩
    2. 5분간 휴식
    3. 다음 사람으로 키보드를 넘긴다

초기에는 한사람이 25분 코딩 5분 휴식을 하며 4명이 한 사이클을 돌았습니다. 혼자 개발 할 때 보다 높은 집중력과 많은 대화가 오가므로 에너지 소비가 많았습니다. 그래서 오후 4시에는 30분가량의 휴식 시간을 갖고 야외 산책을 하며 서로의 생각을 다시 한번 정리하는 시간을 가졌습니다.

타임타이머

시간 체크를 도와주는 타임타이머

2주 정도 적응 기간을 두고는 이제 40분 코딩 10분 휴식의 사이클로 변경하여 집중력을 높였습니다.

개발자들의 키보드들

당시 동료 황건구 님의 제안으로 저희 팀 개발자 네 명은 TV가 있는 회의실에서 외부에 방해받지 않고 몹프로그래밍을 시작했습니다.

각자의 키보드를 가져와 작업을 했고 한 대의 맥북에 많은 키보드를 연결 하다보니 전원이 모자라 경고가 뜨는 것도 알게 되었습니다.

16인치 맥북으로 일하고 싶다

한사람이 코드를 작성하고 조우현 님이 더 나은 디자인 패턴을 제안했고 키보드를 두드리며 문제의 코드를 변경하고

그리고 어언 2시간 후…

매우 깨끗한 코드로 변모한 것을 볼 수 있었습니다.

일에 몰두할 수 있어 즐거운 시간이었습니다.

느낀 점과 장단점

처음엔 누가 나의 작업을 실시간으로 본다는 것이 큰 부담이었습니다.

그러나 코드 디자인이 깔끔하게 변모하고, 테스트가 추가되면서 더 견고한 코드가 되어 만족스러웠습니다.

혼자였으면 이 시간 동안 이렇게 할 수 있었을까 하는 생각이 들었습니다.

과거에 일했던 어떤 회사에서도 경험하지 못했던 신기한 경험이기도 했습니다.

특히 몹 프로그래밍으로 작성한 코드가 이후 라이브 환경에서 (오늘까지!) 3 개월 간 별다른 이슈 없이 잘 돌아가고 있어 만족스럽습니다.

한편으로는 모두가 의견을 낼 수 있어 평소보다 더 많이 성장하는 느낌을 받았고 공부도 많이 되었습니다.

몹 프로그래밍은 체력적으로 에너지를 많이 소모하는 활동입니다. 그래서 몹시 피곤하다는 단점이 있습니다.

덴마 아비가일의 몹시 피곤해 짤방

덴마 아비가일의 몹시 피곤해 짤방

(네이버 웹툰 덴마)

그리고 초기에는 셋이 한 문제를 풀고 있기 때문에 불필요하게 일정과 리소스를 낭비한다는 착각을 했습니다.

그러나 그럼에도 불구하고 버그와 수정이 최소화되어 결과적으론 일정이 더 걸리는 것도 아니었습니다.

그래서 몹프로그래밍은 매우 효율적인 방법이었습니다.

여러분도 각자 회사에서 시도해보시면 어떨까요?

컬리는 여러분을 기다리고 있습니다

저희 팀에 오시면 이러한 몹 프로그래밍을 경험하실 수 있습니다.

다양한 배경을 가진 여러 개발자들과 함께 의견을 나누며 코딩하는 것은 분명 훌륭한 경험이 될 것이라 생각합니다.

원티드 채용 페이지 링크

최선혁의 추천을 받아 컬리에 입사하세요!