구글 엔지니어는 이렇게 일한다

03. 지식 공유

주요 내용

  • 심리적 안전은 지식 공유 환경을 조성하기 위한 토대
  • 전문가, 문서화된 자료로 부터 도움을 쉽게 얻을 수 있어야 함
  • 자신의 전문 지식을 가르치고 전파하는 사람들에게 보상하는 체계적 제도 필요

조직은 자신의 문제 대부분에 스스로 답할 수 있어야 합니다. 이번 장에서는 조직 내 질문의 답을 아는 전문가들과 지식을 전파할 메커니즘의 중요성을 이야기합니다. 메커니즘을 정착시키기 위해서는 조직에 배움의 문화와 모르는 것을 인정할 수 있도록 돕는 심리적 안정이 있어야 합니다.

1. 배움을 가로막는 장애물

심리적 안전 부족 (lack of psychological safety)
불이익이 두려워서 스스로 위험을 감수하거나 실수를 드러내기 꺼리는 환경을 뜻합니다.

정보 섬 (information of island)
조직의 각 부서가 자원을 공유하지 않거나 소통의 부재로 지식이 파편화 되는 것을 뜻합니다. 각 부서가 일하는 방식을 제각기 만들어 내며, 다음과 같은 현상이 나타납니다.

  • 정보 파편화
  • 정보 중복
  • 정보 왜곡

단일 장애점 (single point of failure, SPOF)
중요한 정보를 한 사람이 독점하는 것입니다.

전부 아니면 전무 전문성 (all-or-nothing expertise)
조직 구성원이 '모든 것을 아는' 사람과 '아무것도 모르는' 초심자로 나뉘는 현상입니다.

앵무새처럼 흉내내기 (parroting)
이해하지 못한 상태로 흉내만 내는 것을 말합니다.

유령의 묘지 (haunted graveyard)
무언가 잘못될 게 두려워서 아무도 손대지 않는 영역을 말합니다. (ex. 레거시 코드)

2. 철학

소프트웨어 엔지니어링에서 가장 중요한 요소는 사람이며, 사람 사이에 1:1로 이루어지는 조언은 어떤 측면에서는 매우 효과적입니다. 하지만 확장성이 부족하여 팀이 커지면 비효율적입니다.
한편, 문서화된 자료는 조직 전체로 퍼뜨릴 수 있습니다. 하지만 개별 학습자가 처한 특수 상황에는 부적합할 수 있습니다. 또한 가능한 최신 정보를 반영해야 하므로 유지보수 비용이 듭니다.
그러므로 전문가와 문서화된 자료는 둘 다 꼭 필요하며, 상호 보완적으로 사용해야 합니다.

3. 심리적 안전

배움에는 '무언가를 시도하다가 실패해도 안전하다'라는 인식이 중요합니다. 또한 항상 무언가 배울 게 있음을 인식하는 게 중요합니다.

멘토제도
Noogler(구글에 새로 입사한 직원)에게 심리적 안전을 심어주기 위해 멘토 제도를 시행합니다. 멘토는 궁금한 점에 대답해주고 누글러의 성장을 돕습니다. 누글러가 속한 팀의 팀원이나 관리자, 테크리드는 멘토에서 제외됩니다.

협조적 문화
안전하고 편안한 근무 환경을 조성하기 위해서는 적대적이지 않고 협조적으로 일하는 문화가 필요합니다.

4. 지식 확장하기

항상 배우고 항상 질문하라!

내 지식 키우기
항상 무언가 배울게 있음을 인식하는 것이 중요합니다. 편안하게 질문할 수 있는 분위기와 끈기를 갖고 상냥하게 답변해주는 환경이 필요합니다. 또한 상급자라면 모든 것을 알아야 한다는 인식은 나쁩니다.

울타리 원칙 (Chesterson's fence)
무언가를 옮기거나 바꾸려면 그게 왜 그자리에 있는지부터 이해하자

커뮤니티에 묻기
1:1 도움은 밀도가 높지만 확장하는 데는 한계가 있습니다. 그래서 다음과 같은 커뮤니티를 통해 질문을 확장해야 합니다. 각각 장단점이 있으므로 적절히 섞어서 사용해야합니다.

  • 그룹 채팅
    동시에 여러 사람한테 질문할 수 있고 빠르게 답변을 받을 수 있습니다. 간단한 질문에 적합합니다.
  • 메일링 리스트
    맥락 정보가 많이 필요한 복잡한 질문에 적합한 반면, 그룹 채팅처럼 빠르게 주고 받는 대화에는 취약합니다.
  • 질의응답 플랫폼
    YAQS(Yet Another Question System)는 구글 내부에서 사용하는 stack overflow와 유사한 플랫폼입니다.

누구나 가르칠 게 있다

  • office hours
    누군가가 특정 주제에 관한 질문에 답해줄 목적으로 시간을 비워 둔 정기적인 이벤트입니다. 직접 대화를 해야지만 쉽게 풀리는 문제에 좋은 해결책입니다.
  • tech talk & class
    • 자주 오해를 일으킬 정도로 복잡한 주제를 다뤄야 합니다.
    • 주제가 비교적 안정적이어야 합니다. 수업 교재를 자주 고치는 것은 큰 일이기 때문입니다.
    • 질문에 답해주고 1:1로 도와줄 수 있는 교사가 있어야 효과가 큰 주제여야 합니다. 자습할 수 있는 내용은 문서나 동영상이 더 효과적입니다.
    • 수업을 정기적으로 개설해도 될 만큼 수요가 많아야 합니다.
  • 문서자료
    • 문서자료 갱신하기
      처음 배울 때가 기존 문서자료에서 개선점을 찾기 가장 좋을 때입니다. 따라서 문서자료는 소유자 외에도 누구에게나 갱신 권한을 줘야합니다.
    • 새로운 문서자료 작성하기
    • 문서화 촉진하기
      기여자와 수혜자가 달라서 적절한 보상 없이는 문서화를 장려하기 어렵습니다. 꼭 보상과 인정을 체계화 해줘야 합니다.
  • 코드
    코드도 지식이라는 사실을 인지해야 합니다.

5. 조직의 지식 확장하기

높은 수준의 기술 리더십을 요구하지만, 모든 리더십이 기술 문제와 관련된 것은 아닙니다. 리더는 주변 사람들을 성장시키고, 팀의 심리적 안전을 개선하고, 팀워크와 협업 문화를 조성하고, 팀 내 긴장을 해소하고, 구글 문화의 가치를 설정하며, 구글을 더 활기차고 신나는 일터로 가꿔야 합니다. 괴짜는 좋은 리더가 아닙니다.
-구글의 SW 엔지니어링 직무사다리에서 리더십 항목 중-

지식 공유와 문화 일구기

  • 존중
    지식을 공유할 때는 상냥함과 존중을 담아야합니다.
  • 보상과 인정
    좋은 문화는 적극적으로 육성해야하며 인정과 보상 제도가 뒷받침되어야 합니다.

표준 정보 소스 구축하기
표준 정보 소스는 회사 차원의 중앙집중적 정보 원천으로, 전문가의 지식을 표준화하고 전파하는 수단입니다. 표준 정보의 내용은 해당 분야 전문가들이 적극적으로 관리하고 감독해야 합니다. 또한 복잡한 주제일수록 소유자를 명확히 정해둬야합니다.

  • 개발자 가이드
  • go/ 링크
    구글 내에서 쓰는 URL 단축 서비스입니다. 구글 내부의 참조 대부분의 하나 이상의 내부 go/ 링크를 갖고 있습니다. 덕분에 정보에 쉽게 접근할 수 있습니다.
  • codelab
    구글 코드랩은 동작하는 예시 코드, 설명, 코딩 연습문제 등을 활용해 엔지니어에게 새로운 개념이나 프로세스를 가르치는 실습형 튜토리얼입니다.
  • 정적 분석
  • 뉴스레터
  • 커뮤니티

가독성 제도: 코드 리뷰를 통한 표준 멘토 제도
가독성 제도는 단순한 코드 가독성을 넘어 프로그래밍 언어 모범 사례를 전파하기 위한 구글 전사 차원의 '표준 멘토링 프로세스'를 의미합니다. 언어 idiom, 코드 구조, API 설계, 공통 라이브러리의 올바른 사용법, 문서화, 테스트 커버리지 등 광범위하게 다룹니다.

profile
software engineer

0개의 댓글