본문으로 건너뛰기

3장 지식 공유

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

  • 조직 전체에 전문성을 공유하기란 쉬운 일은 아니라서 배움의 문화가 견고하게 뒷받침하지 못한다면 여러 가지 문제에 부딪히게 된다.
  • 심리적 안전 부족
    • 불이익이 두려워서 스스로 위험을 감수하거나 실수를 드러내기 꺼리는 환경
    • 두려움이 팽배한 문화 혹은 꼬꼭 숨기려는 경향으로 나타남
  • 정보 섬
    • 조직의 각 부서가 서로 소통하거나 자원을 공유하지 않아서 지식이 파편화된다.
    • 이런 환경에서는 일하는 방식을 각각의 부서가 제각기 만들어 나감.
    • 정보 파편화, 중복, 왜곡 등
  • 단일 장애점
    • 중요한 정보를 한 사람이 독점하면 병목이 생긴다. (2장의 버스지수와 유관한 이야기)
    • 장기 확장성을 희생한다.
  • 전부 아니면 전무 전문성
    • 조직 구성원이 ‘모든 것을 아는’ 사람과 ‘아무것도 모르는’ 초심자로 나뉜다.
    • 한번 이렇게 되면 전문가들은 항상 모든 일을 자신들이 처리하게 된다.
    • 새로운 전문가를 키우기 위한 멘토링이나 문서화에 신경 쓸 여력이 줄어들어 문제가 눈덩이처럼 커진다.
    • 지식과 책임은 계속 이미 전문가가 된 사람들에게 집중되고, 새로운 팀원이나 초심자들은 그들만의 울타리에 갇혀 느리게 성장하게 됨.
  • 앵무새처럼 흉내내기
    • 이해하지 못한채로 흉내만 내는 것
  • 유령의 묘지
    • 무언가 잘못될 게 두려워서 아무도 손대지 않는 영역(주로 코드)를 말함.

2. 철학

  • 소프트웨어 엔지니어링을 ‘여러 버전의 프로그램을 여러 사람이 참여해 개발하는 일’이라고도 정의할 수 있다.
    • 코드는 중요한 산출물이지만 제품 개발 전체를 보면 작은 부분에 지나지 않는다.
    • 가장 중요한 요소는 사람이다.
    • 조직의 성패는 인력에 얼마나 투자해서 얼마나 잘 키워내느냐에 달려 있다.
  • 사람 사이에 일대일로 이루어지는 조언은 어떤 측면에서는 효과적이지만, 확장성이 부족하여 팀이 커지면 그리 유용하지 못하게 된다.
    • 반면 문서화된 지식은 팀을 넘어 조직 전체로 퍼뜨릴 수 있지만, 더 일반적인 상황을 다루게 되므로 개별 학습자가 처한 특수한 상황에서는 일대일 조언이 더 적합할 수 있음.
  • 기록된 지식은 확장성이 좋지만, 사람이 해주는 맞춤형 도움도 장점이 크다.
    • 전문가에게는 다양한 지식을 종합할 수 있는 능력이 있다.
    • 현장 지식과 문서화된 지식은 서로를 보완해준다.

3. 판 깔아주기: 심리적 안전

  • 심리적 안전은 학습 환경을 조성하는 데 매우 중요하다.
  • 먼저 자신이 이해하지 못한 게 있음을 인정해야 무언가를 배울 수 있다.
    • 우리 모두 타인의 무지를 탓하지 말고 그 솔직함을 반겨야 한다.
  • 배움에는 ‘무언가를 시도하다가 실패해도 안전하다’는 인식이 엄청나게 중요하다.
    • 건강한 환경에서라면 사람들은 질문을 던지고, 틀리고, 새로운 지식을 얻는 걸 편안하게 생각한다.

4. 내 지식 키우기

4-1 질문하기

  • 초심자가 저지르는 가장 큰 실수는 무언가 막혔을 때 질문하지 않는 것이다.
  • 혼자서 극복해내고 싶다거나 ‘너무 기초적인’ 질문이란 소리를 듣는 게 두려워서일 수 있다.
    • 여러분의 동료가 가장 훌륭한 정보 소스일 경우가 많으니 이 자원을 충분히 활용하라.
  • 갑자기 모든 상황에 대한 완벽한 대처법을 깨닫게 되는 마법 같은 날은 결코 오지 않는다.
  • 팀의 리더든 새로운 멤버든 항상 무언가 배울 게 있는 환경에서 살아야 한다. 그렇지 않으면 성장하지 못한다.
    • 리더들이 솔선수범해서 이런 문화를 만들어야 한다.
  • 한편, 끈기를 가지고 상냥하게 답변해야 사람들이 안심하고 도움을 청하는 환경이 조성된다.

4-2 맥락 이해하기

  • 새로운 것을 이해하는 일뿐 아니라 기존 설계와 구현을 뒷받침하는 결정 사항들을 더 깊이 이해하는 일도 배움에 포함된다.
  • 무언가를 옮기거나 바꾸려면 그게 왜 그 자리에 있는지부터 이해하자.
    • 엔지니어들은 너무 성급하게 ‘이건 잘못됐어!’라고 결론 짓는 경향이 있다.
    • 정상이 아니라고 보이는 결정에 대해서도 먼저 맥락을 찾아 이해해야 한다.
    • 우선 코드의 목적과 맥락을 이해하고, 그런 다음 변경하려는 방향이 여전히 더 나은지 고민해야 한다.

5. 질문 확장하기

  • 일대일 도움은 밀도가 높지만 확장하는 데 필연적으로 한계가 있다.
    • 배우는 쪽에서도 상세 내용을 모두 다 기억하기란 쉽지 않으므로 무언가를 일대일로 배울 때는 기록하는 습관을 기르자.
  • 더 큰 커뮤니티에 도움을 청할 수도 있다.
    • 구글에서는 그룹 채팅, 메일링 리스트, YAQS (구글 사내 스톡오버플로우)에서 질문할 수 있다.

6. 지식 확장하기: 누구나 가르칠 게 있다.

  • 가르친다는 건 전문가의 전유물이 아니며, 전문성이라는 게 ‘초심자 아니면 전문가’처럼 이분법적으로 나뉘지도 않는다.
  • 오피스 아워
    • 오피스 아워는 누군가가 특정 주제에 관한 질문에 답해줄 목적으로 시간을 비워 둔 정기적인 이벤트이다.
  • 기술 강연과 수업
  • 문서자료

7. 조직의 지식 확장하기

  • 조직이 커질수록 전문 지식을 조직 전반에 제대로 공유하기가 어려워진다.
  • 문화처럼 조직 성장의 매 단계에서 똑같이 중요한 것도 있지만, 가령 표준 정보 소스 같은 것들은 조직이 커질수록 혜택도 커진다.

7-1 지식 공유 문화 일구기

  • 구글은 코드 같은 산출물보다 문화와 환경을 첫 번째로 두고 생각해야 더 나은 결과를 얻는다고 믿는다.
  • 존중
    • 몇몇 개인의 나쁜 행동 때문에 팀 혹은 커뮤니티 전체가 초심자에게 버티기 가혹한 환경으로 변하기도 한다.
    • 지식을 공유할 땐 상냥함과 존중을 담아야 한다.
    • 기술 업계에서는 ‘뛰어난 괴짜’를 용인하는 경향이 있지만, 해로운 현상이다.
    • 괴짜는 좋은 리더가 아니다. 리더는 주변 사람들을 성장시키고, 팀의 심리적 안전을 개선하고, 팀워크와 협업 문화를 조성하고, 팀 내 긴장을 해소하고, 구글 문화의 가치를 설정하며, 구글을 더 활기차고 신나는 일터로 가꿔야 한다.
  • 보상과 인정
    • 좋은 문화는 적극적으로 육성해야 하며 지식 공유 문화를 장려하면서 인정과 보상 제도가 뒷받침되어야 한다.
    • 사람들은 진부한 칭찬보다 확실한 보상에서 동기를 얻는다.
    • 동료의 업적을 인정해주는 공식적으로 손쉬운 제도는 직원들에게 계속해서 이타적이고 멋진 일들을 하도록 강한 동기를 부여한다.

7-2 표준 정보 소스 구축하기

  • 표준 정보 소스는 회사 차원의 중앙집중적 정보 원천으로, 전문가의 지식을 표준화하고 전파하는 수단이다.
    • 개발자 가이드 등
  • 조직 내 모든 엔지니어에게 공통으로 필요한 정보를 담아두는 최선의 도구이기도 하다.
  • 표준 소스가 없다면 이곳저곳에서 정보 섬들이 우후죽순으로 생겨날 것이다.
  • 표준 정보 소스를 구축하려면 팀 내 문서처럼 지엽적인 정보를 관리할 때보다는 노력이 들지만 혜택을 더 널리 전파할 수 있다.

8 생략

9. 마치며

  • 지식은 비록 형태는 없을지라도 많은 측면에서 소프트웨어 엔지니어링 조직의 가장 중요한 자산이다.
  • 지식 공유야말로 조직에 탄력을 불어넣어 변화에 직면해서도 생존할 수 있도록 하는 데 결정적인 역할을 한다.
  • 개방적이고 정직한 지식 공유를 장려하는 문화는 지식을 조직 전반에 효율적으로 전파하여 날이 갈수록 조직이 더 확장되도록 해준다.
  • 대부분 지식을 쉽게 공유하는 데 투자한 노력은 회사의 생애 동안 그 몇 배로 돌려받는다.