팀에서 스터디를 하는 이유
새로운 조직에 합류했나요? 혹은 팀에서 동료들과 코드 리뷰가 있지만 형식적으로 이루어지고 있나요?
종종 만나는 지인이나 후배 개발자들의 고민을 들을때가 있었다.
활발한 코드 리뷰를 위해서는 함께 하는 작업자들간의 공통의 콘텍스트를 가지는 게 중요하다고 생각한다.
자주 대화를 하면 가능하겠지만, 재택 근무나 서로 다른 태스크나 다른 프로젝트를 하다 보면 공통의 관심사를 가지는 게 어렵다.
나는 그래서 새로운 팀이나 조직에 가면 항상 함께 스터디 할 스터디원을 모집했었다.
우아한형제들에서도 스터디를 끊임없이 했었고, 카카오나 맘편한세상에서도 계속해서 스터디를 진행했었다.
왜 이렇게 스터디에 진심이냐고? 이유는 다음과 같다.
코드에 대한 부담 없는 토론이 가능해진다.
예를 들어 클린코드를 스터디한다고 했을 때, 그중 주석을 지양하자는 내용에 대해서 호불호가 확실할 텐데, 스터디를 하면서 각자가 어떻게 생각하는지 이야기해 볼 수 있다.
분명 좋아하는 사람도 있을 테고, 어떤 분은 책의 내용처럼 정말 주석을 하나도 작성하지 않는 걸 지향할 수 도 있다.
만약 이걸 실제 Pull Request 상에서 논쟁이 시작되었다고 생각해 보자. 취향의 문제일 수도 있어서 컨벤션이 없다면 쉽게 감정싸움으로 번지거나 눈치 보느라 의견을 나누기가 어려울 수도 있다.
하지만 스터디를 통해서는 이런 내용들을 자유롭게 논의할 수 있다. 왜냐하면 나의 코드도 아니고 동료의 코드도 아닌 제삼자 모르는 사람(저자)이 작성한 코드 이거나 주장하는 내용이기 때문이다.
이런 스터디를 통해 같이 하는 팀원들 간의 콘텍스트가 형성된다면 이제 실무에서 코드 리뷰 때 이용해 볼 수가 있다.
“지난번 스터디 때 이런 내용이 좋았는데 한번 적용해보는건 어떨까요?”
이 피드백을 받는 동료는 스터디때 왜 필요한지에 대한 논의가 충분히 되었기 때문에 더 쉽게 받아들일 수 있다.
팀에서 스터디를 하지 않는다면 지금 당장 스터디를 시작해 보자.
멘토로 생각할 만큼 존경하는 선배 개발자 분이 해준 말이 있다.
스터디 만큼 서로의 생각을 맞춰갈 수 있는 좋은 수단이 없다고, 그 분도 똑같은 스터디를 새로운 사람들과 여러번 진행 하셨다고 했었다.
단, 단순한 기술을 익히는 책 보다 설계에 대한 이야기 구현에 대한 이야기들에 대한 책들을 가지고 스터디하도록 하자.
단순히 스프링기술이나 JPA 기술을 익힌다는 것은 혼자 하거나 외부 사람들과 해도 상관없다.
기회가 된다면 스터디를 운영하는 방법도 작성해 볼 예정이다.