‘구글 엔지니어는 이렇게 일한다’라는 책을 라이너 팀원들과 함께 읽었다.
나는 그 책에서도 리더십 관련된 부분을 맡아서 발제를 하게 되었는데, 발제한 부분을 글로 정리해보고자 한다.
이왕 하는거, ‘구글 엔지니어는 이렇게 일한다’의 내용과, 내가 그동안 쌓아온 다른 소스의 지식들을 합해 ‘라이너 엔지니어링 리더는 이렇게 일한다’를 정의해보고자 한다.
엔지니어링 리더의 역할
엔지니어링 리더에는 두가지 역할이 있다. 관리자(Manager)와 테크리드(Tech Lead)가 그것이다.
엔지니어링 관리자와 테크 리드가 분리될 수도 있지만, 한 사람이 이 역할을 동시에 할 수도 있다. 동시에 수행할 경우 구글에서는 테크 리드 매니저라고 부른다.
엔지니어링 관리자는 테크 리드 대비 대인 관계 측면에서의 기술이 훨씬 많이 요구된다. 구글은 엔지니어링을 아는 사람만 소프트웨어 엔지니어링 관리자 역할을 맡을 수 있게 했다. 엔지니어링 관리자는 테크 리드를 포함해 팀 구성원 모두의 성과, 생산성, 행복을 책임지며 동시에 사업적 요구까지 충족시켜야 한다.
테크 리드는 제품의 기술적인 면을 결정하고 책임지게 된다. 기술적인 면이란 기술과 관련된 결정, 선택, 아키텍쳐, 우선순위, 성능, 프로젝트 관리 등을 의미한다. 테크 리드는 팀 관리자의 직속인 경우가 많으며, IC이기도 하여 직접 나서서 빠르게 일을 처리할 수도 있다.(물론 위임할 수도 있다.)
일반적으로 규모가 크고 잘 조직된 팀이라면 테크 리드와 엔지니어링 매니저를 각각 지정하는 것이 통례라고 하지만, 현재의 라이너 팀과 같은 소규모 팀에서는 엔지니어링 관리자와 테크 리드의 역할을 한 사람이 하게 된다. 인적, 기술적 요구를 혼자서 관장하게 되는 것이다.
현재 라이너에는 프론트, 백, ML 기능 조직의 리더가 플래닛 리더라는 명칭으로 지정되어있다. 플래닛 리더가 현재 엔지니어링 관리자와 테크 리드 역할을 동시에 하고 있다. 다만, 아키텍쳐, 인프라, 퍼포먼스와 관련해서는 별도로 AoR(Areas of Responsibility)을 지정하여 두었다. 이 경우 AoR을 맡은 분들은 테크 리드의 역할을 하고 있는 것이다.
무엇이 가치 있는 엔지니어링인가에 대한 합의
만약 좋은 엔지니어링 리더가 없다면 엔지니어들은 값진 시간을 허비하면서, 필요 없는 코드를 작성하며 언젠가 무슨 일이 벌어지기만을 기다리게 될 것이다. 이는 린 스타트업 정신에 위배된다. 즉, 린 스타트업 정신을 잘 살리기 위해서는 좋은 엔지니어링 리더가 필수다.
린 스타트업 정신이란 무엇인가?
린 스타트업 정신이란 ‘극심한 불확실성 속에서 새로운 제품과 서비스를 만들 때’ 적용되는 정신이며, 내가 들이는 노력 중에서 어떤 부분이 가치를 창출하는 부분이고, 어떤 부분이 낭비일지를 깊게 생각하는 정신이다. 이 과정에서, ‘가치’란 고객에게 주는 혜택 뿐이다. 즉, 고객에게 혜택을 더하는 활동 이외의 것들은 ‘모두 낭비’다. 그것은 엔지니어링에서도 동일하다.
다시 말하면, 아무리 대단한 엔지니어링을 하더라도 그것이 결국 아무도 안쓰는(즉, 가치 없는) 결과물을 만들기 위한 일이라면 있다면 낭비일 뿐이다.
좋은 엔지니어링 리드가 미치는 영향
좋은 엔지니어링 리드는 담당하는 엔지니어링 조직 뿐 아니라, 전체 엔지니어링 조직 뿐 아니라 그 너머에까지 영향을 줄 수 있다.
뛰어난 엔지니어링 실력으로 신뢰를 얻었을 뿐 아니라 회사 전체, 사실은 회사 너머까지 영향을 미친 대표적인 엔지니어는 Jeff Dean이다. Show & Prove를 통해 리더십을 만들어낸 대표적인 엔지니어라고 할 수 있겠다.
Jeff Dean에 대한 사람들의 리스펙은 너무 큰 나머지 아래 리스트 같은 것도 만들어졌다. 이러한 영향력이 역으로 구글에 미친 긍정적인 영향은 엄청났다. 회사도, 구성원도 이런 엔지니어링 리드를 목표로 해야 한다.
누가 최고의 리더가 되는가?
사실, 어쩌다 보니 리더가 되어 있는 상황은 아주 흔한 상황이다.
리더로 가장 잘 성장할 수 있는 IC는 누구인가에 대해서 스티브 잡스가 얘기한 재미있는 인터뷰 영상이 있다. 이 영상에서 스티브 잡스는 아래와 같이 말한다.
“Professional Manager를 채용해보았다. 그들은 대부분 멍청이들이었다. 그리고 깨달았다. 최고의 관리자는 관리 업무를 하고 싶지 않았는데 관리자가 될 수밖에 없었던 최고의 IC들이었다는 것을.”
위에 나온 Jeff Dean의 사례처럼 결국 최고의 IC들이 신뢰를 얻고 이 신뢰가 자산이 되어 최고의 관리자가 되는 것이라고 이해해도 되겠다.
그런데 이 과정에서 문제가 하나 있다. 사람들이 대부분 ‘관리자’라는 단어를 불쾌해한다는 것이다. 하지만 ‘관리’는 나쁜 것이 아니다.
2001년에 구글이 ‘관리자’를 없애는 실험을 해보았다. 지금 구글에 관리자가 있다는 것을 통해 우리는 그들의 실험이 실패했다는 것을 알 수 있다. 관리자를 없애보니 큰 혼란이 일어나서 결국 엔지니어들이 관리자를 필요로 하여 복구하였고, 관리자와 IC가 둘 다 필요하다는 배움을 얻었던 케이스이다.
좋은 관리자는 팀에 활기를 불어넣고 생산성을 높일 수 있는 중요한, 그리고 좋은 사람이다.
최고의 IC들은 신뢰 자산을 많이 쌓은 사람들이기 때문에 최고의 관리자가 될 수 있는 위치에 있다. 자신의 커리어 스펙트럼을 확장하기 위해서도, 사실은 천부적인 관리자일지 모르기 때문에도, ‘관리자’와 ‘관리’에 대한 생각을 긍정적인 방향으로 열어두는 것이 본인에게도, 회사에게도 도움이 될 수 있다.
고성과 팀을 만드는 자세와 핵심 요소
오늘날의 엔지니어링 관리자에게 중요한 3가지 도구는 겸손, 존중, 신뢰이다. 이 3가지 도구를 통해 관리자는 팀원들과 긍정적이고 생산적인 관계를 맺을 수 있게 된다.
가끔 관리자들이 팀원들을 과하게 챙기는 보모(Babysitter) 모드가 되는 경우가 있는데 이는 좋은 상태가 아니다. 보모 모드에서 벗어나 팀원들을 어른으로 대해야 한다. 그러면 팀원들은 어른으로 행동하게 된다.(물론 인재밀도가 높고, 메타인지 수준이 높은 팀원들과 함께할 때이다. 이 전제는 채용과 연결되는 부분이다.)
관리자가 팀원들을 신뢰한다는 분명한 신호를 계속해서 주면 팀원들은 신뢰에 부응해야 한다는 긍정적인 압박을 느끼게 된다. 이것이 건강한 상태이다.
구글에서는 아리스토텔레스 프로젝트를 통해 고성과 팀의 공통분모를 찾은 적이 있는데, 이 결과는 실제로 위 건강한 상태가 고성과 팀으로 발전하는 가장 중요한 요소라는 것을 증명해주었다.(즉, 신뢰를 통한 긍정적 압박 상태는 그냥 도덕적, 도의적으로 좋은 상태가 아니라 고성과를 내기 위한 상태인 것이다.)
고성과 팀의 공통 분모는 아래 이미지의 5가지 요소들인데, 무작위로 나열된 것이 아니라 맨 위가 가장 중요한 요소이다. 즉, 심리적 안정감이 가장 중요한 요소인데 이는 서로를 신뢰하고 있기 때문에, 서로가 서로에게 성공을 위해 해야 할 말과 행동을 걱정 없이 할 수 있는 상태를 의미한다. 관리자는 이러한 상태에 팀원들을 놓기 위해 노력해야 한다.
2~5번도 모두 중요하다. 훌륭한 관리자는 1~5를 잘 챙겨서 고성과 팀을 구성할 줄 알아야 한다.
아리스토텔레스 프로젝트의 또 다른 재미있는 조사 결과는 위에 언급된 5가지의 공통점 중에 우리가 상식적으로 생각하는 요소들이 들어있지 않다는 것이다.
예를 들어, 같이 일한 시간이 길어서 팀워크가 좋아야 한다던지, 팀의 구조가 다른 팀들에 비해서 효율적이어야 한다던지, 다양성이 높아 창의성이 높아야 한다던지 하는 요소가 없다. 심지어는 팀에 일 잘하는 사람이 한 명이라도 있어야 한다는 공통점도 없었다.
실제로 관리는 어떻게 해야하는가
전통적인 관리자는 일을 ‘어떻게(How)’ 처리할지를 고민했었다면 오늘날의 관리자는 ‘무슨(What)’ 일을 처리할지를 주로 고민하게 진화하였다. 이는 Spotify Squad Model을 설명하는 영상에 잘 설명이 되어있다.
위 그림에서 가장 바람직한 Sweet Spot은 우측 상단의 High Alignment x High Autonomy 상태이다. 이 때 관리자는 우리가 무엇을 왜 해야하는지 알려주지만(High Alignment), 그것을 어떻게 이루어낼지에 대해서는 위임(High Autonomy)하게 된다. 이 상태를 Tightly Aligned, Loosely Coupled라고도 부른다.
하지만 우리가 항상 가장 바람직한 상태에 있을 수는 없다. 그래서 간혹 High Alignment x Low Autonomy(2사분면) 상태에 들어가야 할 때가 있다. 1사분면과 2사분면을 시의적절하게 오가는 것이 훌륭한 관리자이다. (물론, 추후 인재밀도가 애플, 구글, 넷플릭스 급으로 올라간다면 2사분면에 올 일은 없을 것이다. 하지만 현실적으로 스타트업이 항상 1사분면에 있기는 불가능하다.)
그러면 언제 2사분면으로 가야하는가? 그것은 Intel의 Andy Grove가 잘 정의해주었다.
같이 일하는 팀원들의 TRM(Task Relevant Maturity)가 높다면 1사분면에 있어도 되지만, 낮다면 2사분면으로 이동해야 한다.
TRM은 무엇인가? TRM은 말 그대로 해당 과업에 대한 성숙도이다. 이는 이 사람을 인간으로서 신뢰하는가 안하는가와는 다른 개념이다. 예를 들어 A라는 사람이 제품 엔지니어링에 있어서는 장인이었을 수 있지만 디자인 시스템 빌딩에 있어서는 익숙하지 않을 수 있다. 이 경우 A라는 사람은 제품 엔지니어링에 있어서는 TRM이 높지만 디자인 시스템 빌딩에 있어서는 TRM이 낮다.
따라서, TRM이 낮은 일에 대해서는 How까지 완벽히 위임하는 것이 아니라 How까지 알려주거나 같이 고민하는 과정이 필요하다. 여기서 잘 생각할 것은 TRM은 고정된 값이 아니라는 것이다. 만약 A와 함께 디자인 시스템 빌딩을 잘 해나가기 시작한다면 시간이 지나며 A의 디자인 시스템 관련 TRM은 상승할 것이다. 그러면 그때 관리자는 다시 1사분면으로 관리 스타일을 옮길 수 있어야 한다. 즉 관리는 TRM x Time x Autonomy 이렇게 3개의 축으로 구성되어있는 것이다.(Highly Aligned는 기본이다.)
아래는 Intel이 TRM에 따라 어떻게 매니징하는지 정리된 표이다.
만약 위 이미지에서 1, 2사분면이 아닌 상태에 놓여있다면 그것은 기본적으로 리더십의 실패이다. 일단 리더십은 실패했지만 아직 리더이므로, 1사분면 혹은 2사분면으로 올라가기 위한 조치를 단행해야 한다. 그 조치는 리더를 위임하는 것일수도, 1사분면과 2사분면으로 올라가는 길을 Blocking하고 있는 상황, 사람적인 요인을 제거하는 것일 수도 있다.
다음 편에서 계속…