구글 엔지니어는 이렇게 일한다: 시니어 엔지니어링 리더십
in BOOK on 구글 엔지니어는 이렇게 일한다, Engineering-leadership, 테크리더, 번아웃, 팀관리, 위임, 시간관리, 의사결정, 성장마인드셋, Servant-leadership, 조직문화
엔지니어링 리더로서 한 팀을 성공적으로 이끌면 이제 여러 팀을 총괄하는 더 큰 역할을 맡게 된다.
이제는 기술의 깊이보다는 넓이를 봐야하고, 직접 코드를 작성하며 얻던 성취감 대신 방향을 제시하고 사람을 성장시키는 데서 보람을 찾아야 한다.
하나의 팀을 넘어 여러 팀을 이끄는 엔지니어링 리더가 된다는 것은 단순히 관리 범위가 넓어지는 것 이상의 의미를 가진다.
기술적 깊이에 대한 갈증과 실무에서 멀어지는 듯한 아쉬움이 들 수 있지만, 이 단계의 리더에게는 다른 종류의 역량이 요구된다. 바로 엔지니어들을 올바른 방향으로 이끄는 능력이다.
여기서는 여러 팀을 성공적으로 이끌기 위해 시니어 엔지니어링 리더가 갖춰야 할 3가지 핵심 원칙에 대해 알아본다.
- 1. 늘 결정하라(Always Be Deciding): 트레이드오프의 안개 걷어내기
- 2. 늘 떠나라(Always Be Leaving): 리더 없이도 성장하는 팀 만들기
- 3. 늘 확장하라(Always Be Scaling): 당신의 가장 소중한 자원을 지키는 기술
- 정리하며..
- 참고 사이트 & 함께 보면 좋은 사이트
1. 늘 결정하라(Always Be Deciding): 트레이드오프의 안개 걷어내기
특정 엔지니어링 문제 해결보다는 거시적인 전략을 짜고, 여러 전략 사이의 트레이드오프를 정확히 찾아내는 것이 리더의 새로운 역할이 된다.
여러 팀을 이끌다보면 불확실하고 정보가 부족한 상황에서 끊임없이 결정을 내려야 한다. 이 때 리더의 망설임은 조직 전체의 발목을 잡는 병목 현상으로 이어질 수 있다. 훌륭한 리더는 나무들 사이에서 숲 전체를 보며, 팀을 목표까지 안내하는 길을 찾아낸다.
‘늘 결정하라’는 불확실성을 감수하고 조직이 앞으로 나아갈 수 있도록 지속적으로 의사결정을 내리는 리더의 핵심적인 책무를 의미한다.
이 과정은 숨겨진 ‘눈가리개’를 찾고, ‘트레이드오프’를 파악한 후, ‘결정하고 반복’하는 사이클로 이루어진다.
1.1. 비행기 일화: 예상치 못한 결과
결정에는 늘 트레이드오프가 따른다. 때로는 그 결과가 명확하지만, 때로는 전혀 예상치 못한 결과를 낳기도 한다. 한 비행기에서 벌어진 일화가 이를 잘 보여준다.
연료가 너무 많이 주입되어 이륙이 지연되자, 한 성급한 비즈니스맨이 1인당 40달러, 총 800달러를 지불하며 20명의 승객을 내리게 했습니다.
그는 ‘시간’을 돈으로 산 셈이죠.
하지만 잠시 후, 비행기 컴퓨터 시스템 고장으로 이륙은 다시 지연되었습니다.
설상가상으로 그가 타려던 다음 비행편은, 방금 전 40달러를 받고 행복하게 내렸던 20명의 승객이 마지막 좌석을 모두 차지해버렸습니다.
이 이야기는 리더의 결정이 얼마나 복잡한 결과를 낳을 수 있는지 보여준다. 리더는 항상 이런 트레이드오프와 예상치 못한 결과를 염두에 두고 사람들을 이끌어야 한다.
눈가리개 찾기
한 문제에 너무 오래 몰두한 팀은 “우린 항상 이렇게 해왔어요” 라는 ‘눈가리개’에 갇히기 쉽다. 현상 유지를 위해 비판적 사고를 잃고, 억지스러운 합리화를 만들어내기도 한다.
이 때 문제에 익숙하지 않은 리더의 ‘깨끗한 눈’이 강력한 무기가 된다. 리더는 당연하게 여겨졌던 것들에 질문을 던져 눈가리개를 찾아내고, 새로운 전략을 모색할 수 있다.
핵심 트레이드오프 파악하기
옳은 답은 없다. 특정 상황에서의 최선의 답이 있을 뿐이며, 이는 거의 항상 절충을 포함한다.
리더의 역할은 모든 트레이드오프를 수면 위로 끌어올려 모두에게 설명하고, 어떻게 균형을 맞출지 결정하도록 돕는 것이다.
결정하고 반복하기
트레이드오프를 이해했다면 이제는 결정할 시간이다. 완벽한 해답을 찾으려다 ‘분석 마비’에 빠지는 함정을 경계해야 한다. 리더는 반복에 대한 팀의 두려움을 낮춰주어야 한다.
“이 결정대로 한번 시도해보죠. 어떻게 되는지 지켜봅시다. 상황을 봐서 다음 달에 이 결정을 되돌리고 다른 선택을 할 수도 있습니다.”
이렇게 말함으로써 위험 부담을 줄여주면 팀은 유연하게 사고하며 스스로의 선택으로부터 배워나가는 조직이 될 수 있다.
이것이 바로 ‘늘 결정하는’ 반복적인 프로세스의 핵심이다.
사례 연구: 웹 서버 ‘지연시간’ 해결기
구글 웹 검색의 사례는 ‘늘 결정하라’ 원칙이 실제로 어떻게 적용되는지 명확하게 보여준다.
수년간 엔지니어들은 검색 ‘품질’을 높이는 데 집중했다. 하지만 그 부작용으로 검색 결과가 뜨는 ‘속도’가 서서히 느려졌다. 이 ‘지연시간’ 증가는 오랜 기간 모두가 조금씩 병을 키운 결과였다.
과거의 해법(눈가리개)
2~3년에 한 번씩 ‘코드 옐로’를 선언해 모든 엔지니어가 속도 개선 작업에 매달렸다. 하지만 이는 임시방편일 뿐, 지연시간은 금세 원래대로 돌아왔다. 이것이 바로 조직 전체를 가리고 있던 ‘눈가리개’였다.
숨겨진 트레이드오프 발견
어느 시점, 리더들은 한 걸음 물러서서 문제를 다시 보았다. 그리고 중요한 사실을 깨달았다. 트레이드오프는 ‘품질’과 ‘비용(서빙 용량)’의 2개가 아니라, ‘지연시간’까지 포함된 3개였던 것이다.
“좋게(품질), 빠르게(지연시간), 저렴하게(비용)”
이 3가지 요소는 서로 맞물려 있었다.
품질을 높이면(좋게) 지연시간과 비용이 희생된다.
의도적으로 서버 부하를 줄여 속도를 높이면(빠르게) 서빙 용량이 줄어 비효율적(비싸게) 된다.
새로운 전략(늘 결정하고 반복하기)
숨겨진 트레이드오프를 발견하자, 지연시간은 더 이상 피할 수 없는 부작용이 아닌 ‘관리 가능한 목표’가 되었다.
데이터 과학자들은 지연시간이 사용자 참여에 미치는 영향을 정확히 측정하는 지표를 만들었다.
이를 통해 특정 기능 추가가 ‘품질’을 얼마나 높이고, 그 대가로 ‘지연시간’과 ‘비용’을 얼마나 발생시키는지 데이터에 기반해 결정할 수 있게 되었다.
구글은 매월 이 3가지 요소의 균형을 다시 평가하며 ‘늘 결정하고’ 있다.
이처럼 리더는 팀이 보지 못하는 눈가리개를 찾아내고, 숨겨진 트레이드오프를 명확히 정의하며, 팀이 분석 마비에 빠지지 않도록 반복적인 의사결정 프로세스를 만들어나가야 한다.
이것이 바로 여러 팀을 성공으로 이끄는 리더의 첫 번째 핵심 역량이다.
2. 늘 떠나라(Always Be Leaving): 리더 없이도 성장하는 팀 만들기
훌륭한 리더는 뛰어난 문제 해결사이지만, 위대한 리더는 자신 없이도 문제가 해결되는 조직을 만든다.
‘늘 떠나라’는 리더가 조직의 단일 장애점(SPOF, Single Point of Failure)이 되는 것을 경계하고, 팀이 자생력을 갖추도록 의도적으로 시스템과 문화를 설계하는 리더십 철학이다.
스스로에게 한번 질문해보자.
“내가 일주일 간 휴가를 떠나 모든 연락을 끊는다면, 우리 팀은 순항할 수 있을까?”
만약 이 질문에 망설여진다면 당신은 이미 팀의 성장을 가로막는 단일 장애점이 되어가고 있다는 신호이다.
‘늘 떠나라’는 리더가 의식적으로 위임하고 팀의 자율성을 키워, 리더의 개입을 최소화하면서도 조직이 스스로 문제를 해결하고 성장하게 만드는 과정이다.
이는 리더가 더 중요한 문제에 집중하고, 동시에 새로운 리더를 양성하는 가장 효과적인 방법이다.
2.1. 미션: 자율주행 팀을 만들어라
리더의 목표는 어려운 문제를 스스로 해결하는 ‘자율주행 팀’을 만드는 것이다.
이를 위해서는 강력한 리더, 건실한 엔지니어링 프로세스, 그리고 긍정적인 문화가 필요하며, 아래 3가지 핵심 활동을 통해 이룰 수 있다.
- 문제 공간 분할하기
- 하위 문제를 다른 리더에게 위임하기
- 조율하고 반복하기
2.1.1. 문제 공간 분할하기 (그리고 팀 정체성 설정의 함정)
복잡한 문제는 여러 하위 문제로 나누는 것에서부터 해결이 시작된다.
구글의 ‘지연시간 문제’ 해결 과정이 좋은 예시이다.
사례: 구글의 ‘지연시간 문제’ 분할하기
구글은 지연시간 문제를 단순히 ‘속도 개선’이라는 하나의 덩어리로 보지 않았다.
속도 최적화팀이 노력해도, 수천 명의 다른 엔지니어들이 ‘품질’ 개선을 위해 기능을 추가하면서 지연시간은 다시 늘어났기 때문이다.
그래서 구글은 문제 공간을 2개로 분할했다.
1)징후 대응팀: 이미 발생한 지연의 ‘징후’를 찾아내고 측정하는 팀
2)원인 대응팀: 지연을 유발하는 근본적인 ‘원인’이 애초에 생겨나지 않도록 방지하는 팀(예: 개발자 교육, 분석 도구 개선)
이렇게 문제 공간을 나누어 각기 다른 팀이 동시에 접근하자, 구글은 마침내 지연시간을 장기적이고 체계적으로 통제할 수 있게 되었다.
이처럼 문제를 제대로 분할하는 것이 중요하다. 그리고 분할된 문제를 팀에 맡길 때, 팀의 정체성을 설정하는 방식이 팀의 미래를 좌우할 수 있다.
2.1.2. 팀 정체성 설정의 함정 (제품 vs 문제)
팀에 역할을 부여할 때, 특정 ‘제품’이 아닌 영속적인 ‘문제’를 할당해야 한다.
- 나쁜 예: “우리는 Git을 관리하는 팀이에요.”
- 좋은 예: “우리는 회사의 버전 관리를 제공하는 팀이에요.”
만약 미래에 더 나은 버전 관리 시스템이 등장한다면, ‘깃 관리팀’은 변화에 저항하며 조직의 발전을 가로막을 수 있다.
하지만 ‘버전 관리 제공팀’은 새로운 해결책을 기꺼이 탐색하고 도입할 것이다.
2.1.3. 하위 문제를 다른 리더에게 위임하기
자율적인 조직을 만드는 가장 효과적인 방법은 위임이다.
당신이 직접 하면 20분 만에 끝낼 수 있는 일이 있더라도, 스스로에게 질문하자.
“이 문제를 처리할 수 있는 사람이 정말 나뿐일까?”
직접 처리하는 것이 가장 효율적으로 보일 수 있지만, 그것은 다른 리더를 훈련시킬 기회를 없애는 일이다.
정말 시급한 일이 아니라면 과감히 위임하고, 필요할 때 코치 역할을 해주면 된다. 과제를 던져준 후, 실패하고 다시 시도하고 또 도전하도록 놔두어야 한다.
‘빠르게 실패하고 반복하라’ 를 기억하자.
매일 아침 “우리 팀원 중 아무도 할 수 없는, 나만이 할 수 있는 일은 무엇일까?” 라고 질문해보자.
그 답은 코딩이나 실무가 아니라, 조직 정치로부터 팀을 보호하고, 겸손/존중/신뢰의 문화를 가꾸는 일일 것이다.
2.1.4. 조율하고 반복하기
고장 난 기계를 아무도 고치지 못하자 은퇴한 마스터가 불려 왔습니다.
그는 기계를 잠시 살피더니 분필로 ‘X’ 표시 하나를 남기고 떠났습니다.
기술자가 그 부분을 수리하자 기계는 완벽하게 작동했습니다.
마스터는 천만 원짜리 청구서를 보냈고, CEO가 항의하자 새로운 청구서를 보냈습니다.
분필로 표시한 비용: 1,000원
어디에 표시할지 알려준 비용: 9,999,000원
이것이 바로 리더의 ‘지혜’이다. 리더십은 마이크로매니징이 아니다.
95%는 세심하게 관찰하고 경청하는 데 쓰고, 나머지 5%의 시간 동안 결정적인 지점에 ‘X’ 표시를 해주는 것과 같다.
작지만 중요한 ‘터치’로 팀의 경로를 미세하게 조정하는 것이다.
사려 깊고 최소한의 개입.
이것이 팀의 자율성을 해치지 않으면서 성과를 내는 좋은 관리이다.
자생력을 갖춘 조직을 만들면 당신은 더 이상 단일 장애점이 아니다.
이제 새로운 문제에 도전하거나, 당신이 키워 낸 리더들에게 자리를 내어주고 더 큰 조직으로 떠날 수 있다.
이것이 ‘늘 떠나라’의 진정한 의미이다.
3. 늘 확장하라(Always Be Scaling): 당신의 가장 소중한 자원을 지키는 기술
‘확장’이라고 하면 보통 팀의 규모와 영향력을 키우는 것을 떠올린다. 하지만 여기서 말하는 확장은 리더의 가장 값진 자원, 즉 ‘제한된 시간, 집중력, 에너지’를 보호하기 위한 방어적인 기술이다. 내면을 보호할 방법을 모른 채 책임만 키우는 것은 파멸로 가는 지름길일 뿐이다.
‘늘 확장하라’는 성공의 보상으로 더 큰 책임이 주어지는 현실을 인지하고, 이에 압도당하지 않도록 자신의 시간, 집중력, 에너지를 의식적으로 관리하고 확장하는 기술이다.
3.1. 성공 사이클과 압축의 단계
팀이 난제를 해결하는 과정은 보통 다음과 같다.
- 분석
- 문제의 눈가리개와 트레이드오프를 찾아낸다.
- 분투
- 실패를 반복하며 해결책을 향해 나아간다.
- 견인
- 팀이 스스로 문제를 해결하기 시작하며 진전을 이룬다.
- 보상(압축)
- 성공의 보상으로 ‘새로운 문제’가 주어진다. 이제 당신은 2개의 문제를 동시에 관리해야 한다. 기존의 모든 작업을 절반으로 ‘압축’해야 하는 순간이다.
이 사이클은 피할 수 없다. 성공적인 리더는 계속해서 새로운 문제를 받고, 기존의 것들을 압축하며 조직과 함께 성장한다.
이를 위해서는 팀의 효율을 극대화하는 동시에, 리더 자신의 자원을 확장하는 방법을 반드시 배워야 한다.
3.1.1. 중요한 일 vs 급한 일
“저에게는 두 가지 종류의 문제가 있습니다. 급한 문제와 중요한 문제. 급한 문제들은 중요하지 않고, 중요한 문제들은 절대 급하지 않습니다.” - 드와이트 D. 아이젠하워
리더가 되면 수많은 메일, 채팅, 회의가 당신의 시간을 노린다. 자칫하다가는 하루의 100%를 ‘급한’ 일에만 반응하며 허비하게 된다. 하지만 리더는 ‘나만이 할 수 있는 중요한 일’(예: 팀 전략 수립, 인재 육성)에 집중해야 한다.
- 위임하라
- 급한 일의 상당수는 다른 리더를 훈련시키는 좋은 기회이다.
- 시간을 확보하라
- 매주 2시간 이상, 누구에게도 방해받지 않는 시간을 확보하여 ‘중요하지만 급하지 않은’ 일에 집중하라
- 예를 들면 팀 전략 수립, 부하 리더들의 경력 관리 등
- 추적 시스템을 만들어라
- 포스트잇보다는 효과적인 자신만의 할 일 관리 시스템을 구축하라
3.1.2. 의도적으로 ‘공 떨어뜨리기’
리더에게 날아오는 모든 공(일거리, 이슈)를 다 받을 수는 없다. 어차피 몇 개는 떨어뜨릴 수밖에 없다면, 실수가 아닌 의도적으로 떨어뜨리는 편이 낫다.
1)할 일 목록을 ‘아주 중요(상위 20%)’, ‘조금 중요(중간 60%)’, ‘무시 가능(하위 20%)’로 나눈다.
2)오직 상위 20%에만 집중하고, 나머지 80%는 버릴 권한을 스스로에게 부여한다.
3)놀랍게도, 중간 60%의 일 중 일부는 다른 리더들이 자발적으로 가져가 처리하고, 정말 중요했던 일은 어떤 식으로든 다시 당신에게 돌아와 상위 20%로 튀어오를 것이다.
그러니 여러분은 그저 ‘상위 20%에 들지 못한 일들은 알아서 잘 처리되거나 다시 위로 올라올 거야.’ 라고 믿기만 하면 된다. 그러면 정말 중요한 일에만 집중하게 되어 시간과 집중력을 확장할 수 있고, 이렇게 해야 커져가는 책임을 감당할 수 있다.
3.1.3. 에너지 관리하기 (시간 관리보다 중요함)
에너지가 고갈된 리더는 조직에 재앙이다. 당신의 어두운 기운은 팀 전체를 가라앉히고 끔찍한 결정을 낳을 수 있다.
- 진짜 휴가 떠나기
- 주말이 아닌, 최소 3일 이상 일과 완전히 단절되는 시간을 가져야 한다. 휴가 중에는 이메일과 채팅을 확인하지 않는 훈련이 필요하다.
- 진짜 주말 보내기
- 주말에는 오롯이 자신이 좋아하는 일을 하며 재충전해야 한다.
- 매일 휴식하기
- 뇌는 90분 주기로 움직인다. 90분마다 10분씩 산책하며 작은 휴식을 갖자. 작은 휴식이지만 스트레스를 크게 낮춰줘서 그 다음 2시간은 완전히 다른 기분으로 일할 수 있다.
- ‘정신 건강의 날’ 허락하기
- 이유 없이 컨디션이 안 좋고 부정적인 기운을 내뿜는 날임을 자각했다면, 그냥 연차를 내고 귀가한다.
- 능동적으로 피해를 주는 것보다 아무것도 하지 않는 게 훨씬 낫다.
정리하며..
훌륭한 리더가 되기 위해 모든 것을 스스로 처리하고, 두 배로 열심히 일하며, 완벽한 결정을 내리려 할 필요는 없다.
그런 방식으로는 결국 커져가는 책임에 압사당할 뿐이다.
대신, 늘 결정하고, 늘 떠나고, 늘 확장하기 위해 노력해야 한다.
- 늘 결정하라! 모호한 문제에 완벽한 정답은 없다. 상황에 맞는 최적의 트레이드오프를 찾고, 배우고, 다시 반복하자.
- 늘 떠나라! 리더의 진짜 임무는 리더 없이도 스스로 문제를 해결해나가는 자율적인 조직을 만드는 것이다.
- 늘 확장하라! 성공은 더 큰 책임으로 이어진다. 일이 당신을 압도하기 전에, 미리 당신의 시간, 집중력, 에너지라는 한정된 자원을 보호하고 관리하는 법을 익혀야 한다.
이 세 가지 원칙을 내재화할 때, 당신은 비로소 한계를 넘어 팀과 함께 성장하는 진정한 리더가 될 수 있다.
참고 사이트 & 함께 보면 좋은 사이트
본 포스트는 구글 엔지니어는 이렇게 일한다 를 읽으며 정리한 내용들입니다.