한 줄 정의
조직이 자기 문제의 답을 스스로 찾으려면 전문가와 그 지식을 전파할 메커니즘이 필요하며, 그 모든 것의 토대는 모름을 인정해도 불이익이 없는 심리적 안전(psychological safety) 입니다.
쉽게 말하면
여러분이 풀어야 할 문제에 관해서는 아무 데서나 무작위로 뽑은 사람보다 여러분이 속한 조직이 더 깊이 이해하고 있습니다. 즉 조직은 자기 문제 대부분에 스스로 답할 수 있어야 합니다.
그러려면 두 가지가 필요합니다. 답을 아는 전문가, 그리고 그 지식을 조직 전체로 전파할 메커니즘 입니다. 메커니즘은 “질문 받습니다”, “알고 있는 걸 적어주세요” 같은 단순한 방법부터 튜토리얼, 수업처럼 정돈된 방법까지 다양합니다.
하지만 어떤 메커니즘을 깔아도 그 위에 배움의 문화 가 자리 잡혀 있지 않으면 작동하지 않습니다. 사람들이 “모른다”를 입 밖에 낼 수 있어야 질문이 나오고, 질문이 나와야 지식이 흐르기 때문입니다. 그 환경을 만드는 것이 심리적 안전입니다.
왜 중요한가?
지식은 형태가 없지만 소프트웨어 엔지니어링 조직의 가장 중요한 자산 입니다. 코드는 중요한 산출물이지만 제품 개발 전체로 보면 작은 부분에 지나지 않고, 결정적으로 코드도 전문 지식도 무에서 자연 발생하지 않습니다. 그 어떤 전문가도 한때는 초심자였습니다. 그래서 조직의 성패는 인력에 얼마나 투자해서 얼마나 잘 키워내느냐 에 달려 있습니다.
여기서 핵심 긴장이 하나 등장합니다. 전문가가 일대일로 해주는 조언은 가치가 크지만 확장되지 않습니다. 전문가 한 명이 휴가를 가거나 이직하면 팀 전체가 휘청입니다. 반대로 문서화된 지식은 팀을 넘어 조직 전체로 퍼지지만, 일반적인 상황만 다루므로 개별 상황에 덜 들어맞고 유지보수 비용이 듭니다.
백엔드/DevOps 관점에서 이 장은 결국 “지식을 SPOF(단일 장애점)에서 빼내 시스템처럼 흐르게 만드는 법” 을 말합니다. 온콜 런북, 설계 문서, 코드 리뷰, 포스트모템이 “있으면 좋은 문화”가 아니라 조직의 가용성과 확장성을 떠받치는 엔지니어링 장치인 이유입니다.
핵심 내용
배움을 가로막는 여섯 가지 장애물
조직 전체에 전문성을 공유하기란 결코 쉽지 않아서, 배움의 문화가 견고하게 뒷받침하지 못하면 여러 문제에 부딪힙니다. 구글이 규모가 커지면서 겪은 문제들은 다음과 같습니다. 이 여섯 가지는 서로 맞물려 악순환을 이룹니다.
| 장애물 | 증상 | 본질 |
|---|---|---|
| 심리적 안전 부족 | 두려움이 팽배하거나 모두가 꼭꼭 숨으려 함 | 불이익이 두려워 위험 감수·실수 노출을 꺼림 |
| 정보 섬(information islands) | 부서마다 다른 그림, 그마저도 불완전 | 부서 간 소통·공유 부재로 지식이 파편화 |
| 단일 장애점(SPOF) | 한 사람이 막히면 전체가 멈춤 | 중요 정보를 한 사람이 독점 |
| 전부 아니면 전무 전문성 | 모든 걸 아는 사람 vs 아무것도 모르는 초심자 | 중간층이 사라져 지식이 양극화 |
| 앵무새처럼 흉내내기(parroting) | “잘은 모르겠지만 이게 맞겠거니” | 이해 없이 기존 패턴·코드를 무의식적으로 답습 |
| 유령의 묘지(haunted graveyard) | 아무도 손대지 않는 코드 영역 | 두려움과 비합리적 의심으로 수정을 기피 |
특히 주목할 연결 고리가 있습니다. SPOF는 종종 좋은 의도에서 시작됩니다. “여러분을 위해 내가 다 처리할게”라는 마음이 단기 효율(“내가 하는 게 빠르지”)을 높여주는 대신 장기 확장성을 희생합니다. 그 팀은 팀으로서 필요한 일을 어떻게 해내야 할지 전혀 배우지 못하고, 이 마음가짐이 그대로 전부 아니면 전무 전문성 으로 이어집니다. 지식과 책임이 계속 기존 전문가에게만 집중되고, 새 팀원은 그들만의 울타리에 갇혀 느리게 성장합니다.
여기서 앵무새처럼 흉내내기와 유령의 묘지의 차이 가 미묘합니다. 둘 다 이해 없이 코드를 대하지만, 앵무새는 “목적을 몰라 일단 따라 하는 것”이고 유령의 묘지는 “두려움 때문에 아예 손대지 않는 것”입니다. 전자는 적극적 답습, 후자는 회피입니다.
철학 — 일대일, 문서화, 그리고 그 사이의 현장 지식
지식 공유 방법은 두 극단과 그 사이로 정리됩니다.
graph LR A["일대일 조언<br/>(개인 지식)"] -->|"맥락 풍부<br/>확장성 낮음"| B["현장 지식<br/>(contextual knowledge)"] B -->|"기록하면<br/>전파 가능"| C["문서화된 지식<br/>(위키·가이드)"] C -->|"확장성 높음<br/>맞춤성 낮음"| A
- 일대일 조언: 개개인의 전문 영역이 다르므로 팀원 한 명 한 명이 특정 분야의 최고 조언자가 될 수 있습니다. 효과는 크지만 확장성이 부족해 팀이 커지면 유용하지 못합니다.
- 문서화된 지식: 팀 위키처럼 많은 사람이 전문성을 더 큰 그룹과 공유하게 해줍니다. 확장성이 좋지만 더 일반적인 상황을 다루므로 개별 학습자의 특수 상황엔 덜 맞고, 최신 정보를 반영하느라 유지보수 비용이 듭니다.
- 현장 지식(contextual knowledge): 개인 지식과 문서화 정보의 중간에 존재합니다. 전문가는 기록되지 않은 지식이 무엇인지 압니다. 이 지식까지 문서로 정리하면 직접 도움을 청할 수 있는 사람뿐 아니라 문서를 찾아 읽는 사람 모두에게 전파됩니다.
여기서 중요한 통찰은, 모든 게 완벽히 문서화된 세상이라도 전문가의 맞춤형 컨설팅은 여전히 필요하다 는 점입니다. 전문가는 다양한 지식을 종합해, 특정 개인에게 딱 맞는 정보가 무엇인지 가늠하고 문서 내용이 여전히 적절한지·어디서 찾을지를 알려줍니다. 그래서 현장 지식과 문서화 지식은 경쟁 관계가 아니라 상호 보완 관계입니다. 어떻게 조합하는 게 최선인지는 조직마다 다르고, 조직 규모가 커짐에 따라 달라집니다.
심리적 안전 — 모든 것의 토대
배움의 첫걸음은 자신이 이해하지 못한 게 있음을 인정 하는 것입니다. 그래서 타인의 무지를 탓하지 말고 솔직함을 반겨야 합니다.
xkcd의 ‘1만 명’ 만화(그림 3-1)가 이를 잘 보여줍니다. 미국 성인이라면 누구나 아는 상식을 “생전 처음 듣는 사람”이 매일 평균 1만 명씩 생깁니다. 누군가 기초적인 걸 모른다고 놀리면, 그는 다음부터 모르는 게 있어도 말하지 않게 됩니다. 그러면 가르치는 쪽도 “재미난 경험”(누군가에게 처음으로 알려주는 즐거움)을 놓칩니다.
배움에는 ‘무언가를 시도하다 실패해도 안전하다’ 는 인식이 엄청나게 중요합니다. 건강한 환경이라면 사람들은 질문을 던지고, 틀리고, 새로운 지식을 얻는 걸 편안하게 생각합니다. 구글의 연구에서도 심리적 안전이 효과적인 팀을 이루는 가장 중요한 요인 이었습니다. (나머지 요인은 신뢰성, 구조와 명확성, 일의 의미, 일의 영향력입니다.)
멘토 제도 — 안전망 한 명
신규 입사자(누글러, Noogler)가 합류하자마자 심리적 안전을 심어주는 효과적 방법이 멘토 입니다. 멘토의 공식 역할은 궁금한 점에 답해주고 누글러의 성장을 돕는 것입니다.
설계에서 핵심은 멘토를 누글러의 팀 밖에서 정한다 는 점입니다. 같은 팀의 팀원, 관리자, 테크 리드는 멘토에서 제외됩니다. 평가에 영향을 줄 수 있는 사람에게는 “이 기초적인 걸 물어봐도 될까” 망설이게 되기 때문입니다. 이해관계가 없는 멘토여야 누글러가 시간을 너무 뺏는 건 아닐까 걱정하지 않고 마음 편히 물어볼 수 있습니다. 멘토는 1년 이상 근무해 인프라부터 문화까지 무엇이든 조언해줄 수 있는 사람이며, 누구에게 조언을 구해야 할지 모를 때 찾아갈 수 있는 안전망 역할을 합니다.
큰 그룹에서의 심리적 안전
대부분은 낯선 큰 그룹을 찾기보다 바로 옆 동료에게 도움을 청하는 게 더 편합니다. 하지만 일대일은 확장하기 어렵고, 그룹 방식은 확장성이 좋은 대신 두려움이 더 크게 느껴집니다. 큰 그룹에 질문을 올리면 그 질문이 향후 몇 년간 보존된다 는 생각에 초심자는 겁을 먹습니다. 그래서 큰 그룹일수록 심리적 안전이 더 중요하고, 모든 구성원이 안전한 환경을 함께 유지해야 합니다.
그룹 내 소통에는 권장 패턴과 안티패턴이 있습니다(표 3-1).
| 권장 패턴 (협조적) | 안티패턴 (적대적) |
|---|---|
| 기초적인 질문·실수를 올바른 방향으로 안내 | 기초 질문·실수를 가려내 질문자를 꾸짖음 |
| 질문자가 배우게끔 도와줄 목적으로 설명 | 자신의 지식을 뽐낼 목적으로 설명 |
| 상냥하게 인내심을 갖고 도움 되게 대응 | 잘난 체하고 비난하며 건설적이지 못하게 대응 |
| 해법을 찾기 위한 공개 토론 형식 | ’승자’와 ‘패자’를 가리는 논쟁 형식 |
안티패턴은 의도치 않게 표출되기도 합니다. 도와주려던 게 어쩌다 거들먹거림으로 비치기 쉽습니다. 프로그래밍 교육 기관 Recurse Center의 사회적 규칙 은 이를 구체적 금지 항목으로 못 박아 둘 만합니다.
- 거짓된 놀람 금지: “뭐라고?! 스택이 뭔지 모른다니 믿을 수가 없네!” — 거짓 놀람은 구성원이 모름을 인정하기를 두려워하게 만듭니다.
- “음, 실제로는…” 금지: 지나칠 정도로 세세하게 고쳐주는 행위는 정밀성보다 자기 과시 욕구에서 나오는 경향이 있습니다.
- 뒷좌석 운전 금지: 토론 중에 적절한 발언권 없이 끼어들어 의견을 제시하지 않습니다.
- 미묘한 ‘-주의’ 금지: “이건 우리 할머니도 할 수 있겠네!” 같은, 인종주의·연령주의·혐오가 깃든 표현은 다른 이에게 불편함과 불안을 느끼게 합니다.
내 지식 키우기 — 질문하기와 맥락 이해하기
지식 공유는 결국 자기 자신으로부터 시작됩니다. 항상 무언가 배울 게 있음을 인식하는 두 가지 자세가 있습니다.
질문하기
이 장에서 잊지 말아야 할 단 한 문장은 ‘항상 배우고 항상 질문하라’ 입니다. 구글은 누글러가 한 단계 성장하는 데 약 6개월이 걸린다고 보는데, 이는 배움이 지속적이고 반복적인 과정이라는 생각을 심어주는 기간이기도 합니다.
초심자가 저지르는 가장 큰 실수는 막혔을 때 질문하지 않는 것 입니다. 혼자 극복하고 싶거나, ‘너무 기초적인’ 질문이라는 소리가 두렵거나, ‘도움을 청하기 전에 최대한 노력해봐야 해’라고 생각하기 때문입니다. 이 함정에 빠지지 마세요. 여러분의 동료가 가장 훌륭한 정보 소스 인 경우가 많습니다.
특히 리더가 솔선수범해야 하며, ‘상급자라면 모든 걸 알아야 한다’ 는 인식이 생기지 않도록 주의해야 합니다. 사실은 정반대입니다. 그림 3-2(‘안다고 생각하는 것 vs 실제로 아는 정도’)처럼, 학사→석사→박사로 많이 알수록 모르는 것이 더 많음을 깨닫게 됩니다. 리더가 공개적으로 묻고 모르면 모른다고 인정하면 다른 사람들도 점점 그렇게 변해갑니다.
가면 증후군(impostor syndrome)
자신의 능력보다 과대평가받고 있다고 느껴 언젠가 사기꾼임이 들통날까 두려워하는 심리입니다. 높은 성취를 이룬 사람도 많이 겪으며, 이들은 실패를 두려워해 새로운 도전을 피하는 경향이 커집니다. 모르는 건 바로바로 물어봐야 더 빨리 성장합니다.
맥락 이해하기 — 체스터슨의 울타리
새로운 것을 이해하는 일뿐 아니라, 기존 설계와 구현을 뒷받침하는 결정을 깊이 이해하는 일 도 배움에 포함됩니다. 원작성자가 떠나 이해하기 어렵게 짜인 레거시 코드를 떠맡았다고 해보죠. 공부하느니 처음부터 다시 짜고 싶어집니다. 하지만 ‘이해할 수 없어’라고 성급히 결론짓지 말고 한 걸음 더 들어가야 합니다.
이때 떠올릴 원칙이 체스터슨의 울타리(Chesterton’s fence) 입니다.
Quote
무언가를 좋은 방향으로 변경하려면 한 가지 분명하고 단순한 원칙이 있습니다. 도로를 가로지르는 울타리가 있다고 해보죠. 생각 없는 개혁가는 “무슨 용도인지 모르겠으니 깔끔히 밀어버립시다”라고 말합니다. 반면 현명한 개혁가는 “용도를 모르겠다면 그냥 밀어버리게 둘 순 없죠. 가서 더 생각해봅시다. 용도를 알아내면 그때 철거할지 결정합시다”라고 말할 것입니다.
기존 코드가 명확하지 않거나 잘못된 패턴이 적용됐을 수 없다는 게 아닙니다. 다만 엔지니어는 생소한 코드·언어·패러다임을 접했을 때 너무 성급하게 ‘이건 잘못됐어’라고 결론짓는 경향이 있습니다. 우선 코드의 목적과 맥락을 이해하고, 그다음 변경하려는 방향이 여전히 더 나은지 고민해야 합니다. 더 낫다면 고치고, 그렇지 않다면 미래에 다시 살펴볼 후임들을 위해 판단 근거를 적어두세요.
구글의 스타일 가이드가 단순히 규칙을 나열하는 대신 지침의 근거 를 함께 기재하는 이유가 여기 있습니다. 근거를 이해해야 어떤 상황에서 그 지침을 적용하면 안 되는지, 혹은 지침을 갱신해야 하는지를 판단할 수 있습니다.
질문 확장하기 — 커뮤니티에 묻기
일대일 도움은 밀도가 높지만 확장에 한계가 있습니다. 그래서 미래의 자신을 위해서라도 무언가를 일대일로 배울 때는 ‘기록하는 습관’ 을 길러야 합니다. 여러분보다 나중에 들어오는 동료들도 똑같은 질문을 할 가능성이 큽니다. 커뮤니티 형태는 그룹 채팅, 메일링 리스트, 질의응답 시스템으로 나뉘며 서로를 보완합니다.
| 형태 | 적합한 상황 | 강점 | 약점 |
|---|---|---|---|
| 그룹 채팅 | 간단한 질문, 빠른 대화 | 실시간성, 자동 보관, 동시 다발 질문 | 구조가 없어 비참여 대화에서 정보 추출 어려움 |
| 메일링 리스트 | 맥락이 많이 필요한 복잡한 질문 | 검색 가능한 아카이브, 구조화 | 빠른 대화에 취약, 아카이브 수정 불가 |
| YAQS(질의응답) | 코드 링크가 필요한 기술 질문 | 답변 부각·수정 기능, 기밀 논의 가능 | — |
- 그룹 채팅: 주제별 채팅은 누구나 참여할 수 있고 전문가가 많아 답변이 빠릅니다. 팀별 채팅은 작고 참여자가 제한되지만 그만큼 새로 합류한 사람이 더 안전하게 느낄 수 있습니다. 다만 체계화된 구조가 없어서, 본인이 참여하지 않은 대화에서 의미 있는 정보를 뽑아내기 어렵습니다. 나중에 참조할 일이 있으면 따로 문서에 적어두거나 메일링 리스트를 쓰는 게 낫습니다.
- 메일링 리스트:
topic-users@혹은topic-discuss@형태로 운영되며, 검색 가능한 아카이브로 보관됩니다. 단, 아카이브는 수정할 수 없어 오래전 스레드의 해답이 오늘날에도 유효한지 알기 어렵습니다. xkcd 979(‘옛 선인의 지혜’, 그림 3-3)가 이 고통을 압축합니다 — 에러를 검색하니 똑같은 질문 스레드가 딱 하나 나오는데, 아무도 답해주지 않았고 마지막 포스트는 2003년입니다. 그러니 다른 경로로 답을 얻었더라도 곧바로 떠나지 말고 해당 리스트에 정답을 공유하세요. 미래의 누군가에게도 똑같은 정보가 필요할 테니까요. - YAQS(Yet Another Question System): 구글 내부의 스택오버플로 같은 플랫폼입니다. 기존·작업 중 코드를 쉽게 링크하고 기밀 정보도 논의할 수 있습니다. 도움이 됐다고 표시된 답변을 부각하고, 시간이 지나도 유효하도록 ‘답변 수정’ 기능을 제공합니다.
구글의 이메일 문화
구글은 이메일을 정말 많이 활용하는 이메일 중심 문화로 악명이 높습니다. 엔지니어는 매일 수백 통 이상을 받고, 메일 필터 설정에 며칠을 허비하기도 합니다. 모든 논의에 거대한 메일링 리스트가 기본 참조되도록 설정해, 필요한 정보 대비 불필요한 정보 비율이 높아 문제가 되기도 합니다. 이메일이 더 나은 매체라서가 아니라 그저 익숙하기 때문 에 선호된다는 점을 염두에 두고, 어떤 소통 방식을 장려할지 고민할 가치가 있습니다.
지식 확장하기 — 누구나 가르칠 게 있다
가르친다는 건 전문가의 전유물이 아닙니다. 전문성은 다차원 벡터 라서, 누구나 영역별로 다양한 수준의 전문성을 갖추고 있습니다. 조직이 다양성을 반드시 갖춰야 하는 이유가 여기 있습니다. 가르치는 방식도 오피스 아워, 기술 강연·수업, 문서 작성, 코드 리뷰 등 다양합니다.
오피스 아워
특정 주제 질문에 답할 목적으로 시간을 비워 둔 정기 이벤트입니다. 다만 지식 공유의 최우선 수단으로 쓰기는 어렵습니다. 당장 급한데 다음 오피스 아워까지 기다리는 건 고문이고, 주최 측도 정기적으로 홍보해야 하기 때문입니다. 그럼에도 전문가와 직접 대면하는 기회를 제공하므로, 문제가 여전히 불명확해 어떻게 질문해야 할지 모를 때나 문서화되지 않은 특수한 문제에 특히 유용합니다.
기술 강연과 수업
기술 강연(tech talk) 은 연사가 청중에게 직접 강의하는 형태이고, 수업(class) 은 실습을 포함해 참석자가 더 적극적으로 참여해야 합니다. 그만큼 수업은 개설·관리 비용이 커서 가장 중요하거나 어려운 주제에 배정되지만, 한 번 개설하면 교재를 재활용해 비교적 쉽게 규모를 늘릴 수 있습니다. 풀뿌리 수준에서는 누구나 수업을 개설·참석할 수 있는 g2g(Googler2Googler) 프로그램이 운영됩니다.
수업의 효과를 극대화하는 조건은 다음과 같습니다.
- 자주 오해를 일으킬 정도로 복잡한 주제 여야 합니다.
- 주제가 안정적 이어야 합니다. 내용이 자주 바뀌면 교재 수정 비용이 커집니다.
- 질문에 답하고 일대일로 도와줄 교사가 있어야 효과가 큰 주제여야 합니다. 직접 도움 없이 혼자 익힐 수 있다면 문서·동영상이 더 효율적입니다.
- 정기적으로 개설해도 될 만큼 수요가 많아야 합니다.
문서자료
독자가 무언가를 배우도록 돕는 것을 최우선 목표로 하는 기록된 지식입니다. 메일링 리스트 스레드에서도 해법을 찾을 수는 있지만, 그건 부차적 목표일 뿐입니다. 문서자료를 다루는 세 가지 활동이 있습니다.
문서자료 갱신하기. 무언가를 막 배운 순간이 기존 문서에서 개선점을 찾기에 가장 좋은 때입니다. 익숙해지고 나면 어떤 내용이 어려웠는지, ‘시작하기’ 문서에서 누락된 사소한 단계가 무엇이었는지 잊어버리기 때문입니다. 캠핑장을 떠날 때는 처음 왔을 때보다 깨끗해야 하듯(보이스카우트 규칙), 발견 즉시 스스로 고치세요. 구글은 문서 소유자가 누구든 모든 엔지니어에게 갱신 권한이 있다 고 여깁니다. g3doc 도입 이후 문서 품질이 좋아졌고, 변경 이력도 코드 이력과 똑같이 추적할 수 있게 됐습니다.
새로운 문서자료 작성하기. 발견할 수 없고 검색되지 않는 문서자료는 존재하지 않는 것과 같습니다. g3doc은 소스 코드 바로 옆에 문서를 보여줘 이 문제를 크게 개선합니다.
피드백 받기. 내용이 낡거나 틀렸을 때 알릴 방법이 없으면 독자는 아무에게도 말하지 않고, 다음 독자도 똑같은 문제를 겪습니다. 그래서 구글은 문서 버그 리포트를 문서 자체에서 제출하게 하고, g3doc 페이지 댓글이 자동으로 소유자에게 전해지도록 했습니다.
가장 어려운 건 문서화를 촉진하는 일 입니다. 문서화는 시간이 들고 효과가 바로 안 나타나며 그마저도 대부분 남에게 돌아갑니다. 즉 기여자와 수혜자가 달라서 적절한 보상 없이는 움직이게 하기 어렵습니다. 그래도 작성자 본인이 직접 혜택을 보기도 합니다. 같은 문제로 팀원이 매번 찾아온다면, 한 번 문서로 정리해두면 다음부터는 문서를 건네 스스로 해결하게 할 수 있습니다.
코드
메타 세계에서 보면 코드도 지식에 해당하므로 코딩은 지식을 옮겨 적는 행위 로 볼 수 있습니다. 코드를 작성하는 의도가 지식 공유는 아니지만, ‘코드도 지식’이라는 사실을 인지하느냐가 코드 가독성과 명확성에 간접적으로 영향을 줍니다. 코드 주석도 자기 자신을 포함한 미래의 독자에게 지식을 전달하지만, 적극적으로 관리하지 않으면 금세 낡아 실제 코드와 모순되는 정보로 혼란을 일으킵니다. 코드 리뷰는 작성자와 리뷰어 모두에게 배움의 기회를 주며, 구글은 이를 가독성 제도 로 표준화했습니다.
조직의 지식 확장하기
조직이 커질수록 전문 지식을 조직 전반에 제대로 공유하기가 어려워집니다. 특히 표준 정보 소스 같은 것은 조직이 커질수록 혜택도 커집니다.
지식 공유 문화 일구기
많은 회사가 조직 문화를 ‘사람 사이의 문제’로 치부하지만, 구글은 코드 같은 산출물보다 문화와 환경을 첫 번째로 두고 생각해야 더 나은 결과를 얻는다고 믿습니다.
여기서 존중 이 강조됩니다. 몇몇 개인의 나쁜 행동만으로 팀·커뮤니티 전체가 초심자에게 버티기 가혹한 환경으로 변하기도 합니다. 그러면 초심자는 답을 외부에서 찾으려 하고, 성장해야 할 사람들은 노력을 멈춰버립니다. 기술 업계에는 ‘뛰어난 괴짜’를 용인하는(심지어 숭배하는) 경향이 있지만, 상냥한 전문가도 얼마든지 가능하므로 이는 해로운 현상입니다. 구글의 직무 사다리(job ladder) 리더십 항목은 이를 명확히 밝힙니다.
Quote
높은 수준의 기술 리더십을 요구하지만, 모든 리더십이 기술 문제와 관련된 것은 아닙니다. 리더는 주변 사람들을 성장시키고, 팀의 심리적 안전을 개선하고, 팀워크와 협업 문화를 조성하고, 팀 내 긴장을 해소하고, 구글 문화의 가치를 설정하며, 구글을 더 활기차고 신나는 일터로 가꿔야 합니다. 괴짜는 좋은 리더가 아닙니다.
보상과 인정. 좋은 문화는 적극적으로 육성해야 하며 인정·보상 제도가 뒷받침해야 합니다. 사람들은 진부한 칭찬보다 확실한 보상에서 동기를 얻습니다. 직무 사다리는 위로 올라갈수록 멘토가 되어 후배를 미래의 리더로 키우고, 코딩·설계 리뷰·교육 등으로 다른 직원을 전문적으로 이끌 것을 요구합니다. 흥미로운 점은 문화가 하향식뿐 아니라 상향식으로도 전파된다는 것입니다. 대표적 예가 직원이 주도하는 동료 상여(peer bonus) 와 쿠도스(kudos, 공개 칭찬) 입니다. “메일링 리스트의 최고 기여자”라는 명목으로 동료 상여를 보내는 것은, 그 사람의 지식 공유가 팀 너머까지 전해졌음을 공개적으로 인정하는 일입니다. (동료 상여는 gThanks라는 사내 도구에 영구 기록됩니다.) 상여금보다 동료에게 인정받는다는 점 이 더 강한 동기를 부여합니다.
표준 정보 소스 구축하기
표준 정보 소스는 회사 차원의 중앙집중적 정보 원천으로, 전문가의 지식을 표준화하고 전파하는 수단입니다. 표준 소스가 없으면 정보 섬이 우후죽순 생겨납니다. 누구를 위한 정보인지(여러분? 팀? 모든 엔지니어?)에 따라 투자 규모를 정해야 합니다. 대표적 형태는 다음과 같습니다.
- 개발자 가이드: 코딩 스타일 가이드, 공식 모범 사례, 코드 리뷰·테스트 가이드, 금주의 팁(ToTW) 등. 정보량이 방대해 전부 읽긴 불가능하므로, 가이드에 익숙한 전문가가 후임에게 적시에 알맞은 링크 를 보내주는 식으로 지식이 확장됩니다.
- go/ 링크: 구글 내부에서 쓰는 URL 단축 서비스입니다(
go/spanner,go/python). 아주 짧아 대화 중에도 공유하기 쉽고(“go/frobber를 확인해봐”), 실제 URL이 바뀌어도 go/ 링크는 그대로 라 소유자가 문서를 옮겨도 대상만 바꾸면 됩니다. 정보가 어디 저장됐는지 신경 쓸 필요 없는 직관적 접근 수단이라 구글 문화에 깊이 뿌리내려 선순환합니다. - 코드랩(codelab): 동작하는 예시 코드, 설명, 연습문제로 새 개념을 가르치는 실습형 튜토리얼입니다. 공개하려면 여러 차례 공식 리뷰·테스트를 거쳐야 합니다. 강사 주도 수업(적극적 참여)과 고정 문서(필요할 때 찾아봄)의 장점을 동시에 지니지만 관리 비용이 큽니다.
- 정적 분석(static analysis): 검사 로직을 자동화해 모범 사례를 공유하는 강력한 수단입니다. 코딩 가이드·모범 사례에 맞춰 개선할 코드를 찾아 작성자·리뷰어에게 알려줍니다. 설정은 까다롭지만 한 번 해두면, 검사 항목을 하나 추가하는 것만으로 그 도구를 쓰는 모든 엔지니어가 즉시 혜택을 봅니다.
소외되지 않기
전달하려는 지식의 중요도에 따라 정보 공유 매체가 ‘얼마나 공식적이어야 하는가’에 대한 기대가 다릅니다. 공식 문서는 항상 최신이길 기대하지만 뉴스레터에는 그런 기대를 하지 않아 더 편하게 관리할 수 있습니다.
- 뉴스레터: EngNews, Ownd(개인정보/보안), Google’s Greatest Hits(분기 중 가장 흥미로운 서비스 장애 소식) 등. 업무에 꼭 필요하진 않지만 관심을 가질 만한 정보를 유통합니다. 제공 빈도보다 내용의 유용함·흥미가 중요하며, 그렇지 않으면 스팸 처리됩니다. 화장실 벽에 붙이는 한 쪽짜리 뉴스레터인 TotT(Testing on the Toilet, 테스트 팁)와 Learning on the Loo(생산성 팁)가 독특한 예입니다.
- 커뮤니티: 구글 그룹스에 수천 개 그룹이 활동합니다. 일부는 문제 해결에, 코드 건실성(Code Health) 그룹처럼 일부는 토론과 지침 개발에 집중합니다. 열린 채널 덕분에 소속 팀이나 가까운 동료 외의 수많은 전문가로부터 배우기 쉽고, 정보 섬과 중복 문제를 피할 수 있습니다.
가독성 제도 — 코드 리뷰로 만든 표준 멘토 제도
구글의 가독성(readability) 제도 는 단순한 코드 가독성 이상을 의미합니다. 프로그래밍 모범 사례를 전파하기 위한 전사 차원의 ‘표준 멘토링 프로세스’ 로, 언어 이디엄·코드 구조·API 설계·라이브러리 사용법·문서화·테스트 커버리지 등을 광범위하게 다룹니다.
이 제도는 한 사람의 노력에서 출발했습니다. 구글 초창기에 크레이그 실버스테인(직원 ID 3번)이 신규 직원의 첫 주요 커밋마다 옆에 앉아 한 줄 한 줄 ‘가독성 리뷰’를 한 것입니다. 그 덕에 코드베이스가 일관된 모습을 갖췄지만, 채용 규모가 크레이그 혼자 감당할 수 없을 만큼 커지자 가치에 공감한 수많은 엔지니어가 자발적으로 합류했습니다. 오늘날에는 엔지니어의 약 20%가 리뷰어 혹은 작성자로 가독성 인증 프로세스에 참여합니다.
인증 프로세스의 작동 방식
모든 변경 목록(CL, changelist)은 가독성 승인 을 얻어야 합니다. 가독성 승인이란 해당 언어의 가독성 자격증 이 있는 누군가가 그 CL을 승인했다는 표시입니다. 자격증 있는 작성자의 CL은 암묵적으로 승인되지만, 그렇지 않으면 한 명 이상의 가독성 리뷰어가 명시적으로 승인해야 합니다.
자격증을 얻으려는 엔지니어는 인증 프로세스를 통해 CL을 제출하고, 중앙 가독성 리뷰어 그룹이 모범 사례·지침에 안 맞는 부분을 피드백합니다. 지침을 체득할수록 피드백 양이 줄어들다가, 무사히 졸업하면 자격증을 받습니다. 자격증엔 책임이 따릅니다 — 배운 지식을 자기 코드에 항상 반영하고, 스스로 리뷰어가 되어 동료 코드를 살펴봐야 합니다.
핵심은 리뷰어가 게이트키핑이나 공격용 무기가 아니라 가장 우선적이고 중요한 멘토링·협업 수단 으로 행동한다는 점입니다. 리뷰어는 자신의 제안을 뒷받침하는 인용을 제공해 작성자가 이론적 근거를 배우게 합니다(체스터슨의 울타리!). 가독성 제도는 표준화와 개인화가 융합된 방식이며, 링크로 관련 정보를 찾을 수 있는 문서의 장점과 어떤 지침을 참고할지 잘 아는 전문가 리뷰어의 장점을 모두 제공합니다.
왜 이 프로세스를 두는가 — 비용과 이익
코드는 작성되는 횟수보다 훨씬 많이 읽히며, 구글이 거대한 모노리포(monorepo) 를 쓴다는 점을 감안하면 일관성의 가치가 훨씬 커집니다. 같은 언어로 작성된 코드가 수천 명이 수십 년 작업해도 비슷한 모습을 유지하면, 코드를 읽는 엔지니어는 ‘이 코드는 왜 이 부분만 다르지?‘라는 의문에 방해받지 않고 코드가 하는 일에 집중할 수 있습니다.
그러나 가독성은 코드 작성 과정 전반에서 반드시 지켜져야 하므로 문서나 수업보다 무거운 프로세스 입니다. 비용은 명백합니다.
- 가독성 자격증을 받은 엔지니어가 한 명도 없는 팀에는 부담입니다. 승인할 리뷰어를 팀 밖에서 찾아야 하기 때문입니다.
- 작성자는 코드 리뷰를 한 차례 더 받아야 할 수 있습니다.
- 사람이 주도하는 프로세스라 조직 성장에 맞춰 선형으로만 확장됩니다.
문제는 ‘들이는 비용에 비해 얻는 이익이 더 많은가’ 입니다. 가독성 제도는 ‘코드 리뷰가 길어지는 단기 비용’과 ‘코드 품질·일관성·전문성 향상에서 절약하는 장기 비용’을 의식적으로 맞바꾸는 제도입니다. 그래서 코드의 기대 수명이 길수록 이득 입니다. 수명이 짧은 코드(experimental/ 디렉터리, 실험 인큐베이터인 Area 120 등)에는 가독성 승인을 요구하지 않는 이유입니다.
비용을 줄이는 지렛대는 정적 분석 입니다. 공백으로 끝나는 줄처럼 자동 검출 가능한 문제는 도구에 맡기고, 리뷰어는 외부 엔지니어가 특정 코드 블록을 이해할 수 있을지 같은 고차원 문제에 집중하게 합니다.
실제 효과는 어떨까요. 엔지니어링 생산성 연구(EPR)팀이 면밀히 연구한 결과, 가독성 제도가 엔지니어링 속도에 긍정적인 영향 을 준다는 결론을 얻었습니다. 가독성 자격증을 받은 엔지니어의 CL은 그렇지 않은 엔지니어의 CL보다 검토 시간이 평균적으로 훨씬 짧았고, 자기 코드 품질에 대한 만족도도 높았으며, 이수자 대다수가 가치 있다고 응답했습니다. 이수자들은 리뷰어로부터 많이 배웠고, 가독성 문제를 피하기 위해 자신의 태도와 행동을 고쳤다고 이야기했습니다.
비교 / 트레이드오프
지식 공유 메커니즘의 확장성 vs 맞춤성
이 장 전체를 관통하는 축은 확장성과 맞춤성의 트레이드오프 입니다. 일대일에서 조직 차원 표준 소스로 갈수록 더 많은 사람에게 닿지만(확장성↑), 개별 상황에 대한 맞춤성은 떨어집니다.
| 메커니즘 | 확장성 | 맞춤성 | 적합한 지점 |
|---|---|---|---|
| 일대일 조언·멘토·오피스 아워 | 낮음 | 높음 | 불명확·특수·문서화 안 된 문제 |
| 그룹 채팅·메일링·YAQS | 중간 | 중간 | 답이 보존·검색되어야 하는 질문 |
| 수업·코드랩 | 중간~높음 | 중간 | 복잡하고 안정적인 핵심 주제 |
| 문서자료·개발자 가이드·go/ 링크 | 높음 | 낮음 | 조직 전반 공통 정보 |
| 정적 분석·가독성 제도 | 높음(설정 후) | 자동/표준 | 코드 일관성 강제 |
어느 하나가 정답이 아니라 상황에 맞게 조합 해야 하며, 그 최적 조합은 조직 규모가 커지면서 달라집니다. 가독성 제도가 흥미로운 이유는, 문서(확장성)와 전문가 리뷰(맞춤성)를 코드 리뷰라는 한 흐름에 녹여 두 장점을 동시에 노린다는 데 있습니다.
내 생각
-
버스 지수와 SPOF는 같은 동전의 양면 입니다. 2장의 버스 지수가 “사람이 사라지면 무너지는 정도”를 측정한다면, 이 장의 지식 공유 메커니즘은 전부 그 지수를 끌어올리는 장치입니다. 런북·온콜 인수인계·페어 온보딩이 곧 “지식의 복제본 수”를 늘리는 일입니다.
-
유령의 묘지는 운영에서 가장 비싼 부채 입니다. 아무도 손대지 않는 레거시 결제 모듈, 건드리면 터질 것 같은 배포 스크립트가 그 예입니다. 체스터슨의 울타리는 이걸 다룰 유일하게 안전한 태도입니다 — 먼저 왜 거기 있는지 이해하고, 그다음에 철거를 결정합니다.
-
문서화는 ‘기여자≠수혜자’ 구조라 시장 실패가 기본값 입니다. 자발성에 맡기면 영원히 안 써집니다. g3doc처럼 코드 옆에 두고 변경 이력을 추적하고, 동료 상여로 보상하는 것은 이 인센티브 비대칭을 제도로 교정하는 작업입니다.
-
가독성 제도의 본질은 ‘코드 리뷰에 멘토링을 의무로 끼워 넣은 것’ 입니다. 우리 팀에 적용한다면 풀 리뷰 코멘트에 항상 “왜”(근거 링크)를 달도록 합의하는 것만으로도 절반은 따라갈 수 있습니다. 게이트키핑으로 변질되는 순간 심리적 안전이 무너지고 제도 전체가 실패합니다.
-
심리적 안전은 측정하기 어렵지만 부재는 즉시 드러납니다. 리뷰가 형식적이거나, 회고에서 아무도 진짜 원인을 말하지 않거나, 기초 질문이 사라지면 이미 무너진 것입니다. “모른다”가 자유롭게 나오는지가 가장 빠른 리트머스 시험지입니다.