3부 1장 - 제국과 우리, 그 차이점

 

우리와 제국 기업의 차이는 무엇일까?

구글은 세계 최고의 소프트웨어 회사이다. 검색 서비스를 기반으로 하여 인터넷 산업의 모든 서비스를 제공하고 있다. 자타가 공인하는 세계 최고의 소프트웨어 엔지니어들이 모여들고 있는 곳이다. 도대체 구글의 개발자들을 대하는 방식은 무엇이 다를까? 구글의 두 창업자는 컴퓨터 프로그래밍을 전공한 엔지니어였다. 누구보다도 엔지니어들의 속성을 잘 알고 있다. 엔지니어들을 제대로 엔지니어답게 대우해준다는 것이, 현재 구글에서 일하는 개발자들의 공통된 의견이다. 구글은 세계를 선도하는 최고의 테크놀로지 회사이기 때문에, 최고의 인재를 확보하지 않으면, 변화무쌍한 인터넷 산업에서 승리할 수 없다. 인재 확보는 회사의 생존이 달린 문제이다. 그들의 비결을 조금이나마 들여다보자.

  구글의 창업자인 레리 페이지와 세르게이 브린은 스탠포드 대학교 박사 과정 중 구글 검색을 만들었다. 그들 스스로가 프로그래머였기 때문에 프로그래머 중심의 문화는 구글 깊숙이 자리 잡고 있고 회사가 성장한 이후에도 이러한 조직 문화는 잘 보존되고 있다. 이는 실리콘밸리의 소프트웨어 벤처회사들의 공통된 특징이기도 하다. 

 

구글의 창업자인 레리 페이지와 세르게이 브린은 스탠포드 대학교 박사 과정 중 구글 검색을 만들었다. 그들 스스로가 프로그래머였기 때문에 프로그래머 중심의 문화는 구글 깊숙이 자리 잡고 있고 회사가 성장한 이후에도 이러한 조직 문화는 잘 보존되고 있다. 이는 실리콘밸리의 소프트웨어 벤처회사들의 공통된 특징이기도 하다. 

구글은 사람을 잘 뽑는다. 사람을 뽑을 때 대단한 정성을 기울인다. 실력도 보고 잠재력도 본다. 엔지니어로서의 자질을 가장 중시한다. 그러면서도 다른 사람과의 소통 능력과 문제 해결 능력도 철저히 검증한다. 예를 들어서 컴퓨터 경진 대회 우승자라 하더라도 그 사람의 의사소통 능력에 문제가 있다면 채용을 하지 않을 수도 있다는 이야기이다. 사람 뽑는 일이 중요한 만큼 모든 직원이 채용에 참여하고 많은 시간을 쓴다. 잘 뽑은 다음에는 권력을 준다. 직원에게 무슨 ‘권력’이냐? 듣는 사람이 거북한데. 굳이 권력이라고 표현을 한다.

소프트웨어 회사인 만큼 가장 중요한 자산이 ‘소스 코드’이다. 그런데 직원이라면 누구나 이 소스 코드에 접근할 수 있다. 우리나라에서는 상상할 수 없는 일이다. 같은 프로젝트를 하는 직원이라도 다른 소스 코드를 보기 위해서는 최소한 임원 결재를 득해야 하는 한국의 현실과는 너무나도 다르다. 우리나라의 거창한 대기업 빌딩들을 보면 어머 어마한 보안 설비에 놀란다. 국제 공항에서나 볼 수 있는 금속 탐지기에 X-Ray 투시기까지 설치해 놓았다. 이유는? 보안 때문이다. 굳이 무엇을 보호하기 때문인지, 아는 사람은 다 안다. IT 회사들이라면, 특허 기술이나 소스코드의 유출을 막겠다는 의도이다. 회사에서 사용하는 노트북의 반출도 어렵다. 그래서, 일하는 것도 가능하면 회사에서 하라고 한다. 이 모든 조치가 기술이나 소스코드의 보안 때문이다. 

그런데 이 세계 최고의 소프트웨어 회사에서는, 직원이라면 누구나 소스 코드에 접근할 수 있을 뿐만 아니라, 고칠 수도 있다. 자신이 맡은 분야가 아닌 다른 사람의 것도 검토해서 보고, 자신의 생각을 그 사람에게 이야기해 주기도 한단다. 한국이라면 상상도 못 할 일이다. 보안의 문제도 있을 뿐 아니라, 우리 정서상 다른 사람이 짜 놓은 코드에 대해서 평가하는 일은 절대 금기 사항이다. 그런데, 이 회사는 그렇게 훈수를 해주면 너무나 고마워한다는 것이다. ‘자신의 일로도 바쁠 터인데 다른 사람의 소스를 봐주다’니 대단한 관심이라는 것이다. 회사만 다른 것이 아니라, 인간 자체가 다른 것인가? 이 회사의 개발자들과 우리나라 개발자들은 혹시 종족이 다른 것은 아닐까?

진짜 권력은 회사의 핵심 사업에 대해서 영향을 미치는 일이다. 새로운 제품이나 서비스 개발 중이라도, 엔지니어가 언제라도 프로젝트를 좌지우지할 수 있다. 서비스 출시를 늦출 수도 있고, 심지어는 수년간의 투자가 들어간 프로젝트라도 모두 다 갈아엎어 버릴 수도 있다. 그래도 회사는 그것을 인정해 준다. 이래서, 소프트웨어 엔지니어, 즉 개발자들의 권력이라고 까지 이야기하는 모양이다. 중요한 것은, 이러한 권력, 곧 소스코드의 전사적 공유가 어떻게 작동하고 있는가 하는 점이다. 성공한 제품의 소스코드를 누구나 열람할 수 있도록 함으로써, 구글의 모든 팀들은 프로젝트를 시작할 때마다 밑바닥부터 시작할 필요가 없다. 성공한 코드의 DNA가 다음 제품으로, 또 다음 제품으로 이어지는 것이다. 


No documentation

구글이 이렇게 할 수 있는 이유는 철저히 코드를 가지고 커뮤니케이션을 하기 때문이다. 사실,프로그래머들이 끔찍이 싫어하는 일이 문서화이다. 자신이 짜놓은 소스 코드에 설명을 붙여서 다른 사람들도 이해하게 하자는 목적으로, 대부분의 회사는 문서화를 요구한다. 요즘은 자동화되어 있는 도구들이 있기는 하지만 그래도 귀찮은 것은 마찬가지이다. 이 괴로운 문서화를 하지 않아도 된다니, 이런 천국이 있나? 특히 미국의 개발자들은 이 문서화 작업을 아주 철저히 한다고 들었다. 그런데 같은 미국에 있는 회사인데, 이 회사에서는 문서화를 요구하지 않는다니? 이유가 있다.

프로그램 코드도 각자 나름의 스타일이 있다. 능숙한 프로그래머는 코드로 커뮤니케이션 한다. 프로그램을 짤 때부터, 코드만 보면 다른 사람들도 이해할 수 있게 코딩하는 것이 필요하다. 문서로 설명하지 않아도 이해될 수 있게 짠 프로그램이 잘된 프로그램이라는 것이다. 다시 말하자면, 코드가 훌륭하면 문서가 필요 없다는 것이다. 그래야, 다른 사람과도 대화가 되고, 그런 프로그램이라야 회사에도 기여할 수 있다고 모두가 믿고 있다는 것이다. 믿는 것뿐만 아니라, 그렇게 실행하고 있다는 이야기이다.

개발자들은 자신들이 가치 있다고 생각하는 일에는 열심이다. 자신의 스타일로 자신이 하고 싶은 창의적인 일에만 집중하고 싶어 한다. 사실 짜 놓은 코드에 대한 문서화는, 정말 개발자들이 스트레스를 받는 일이었다. 왜냐하면 문서화가 없다면 추후의 유지보수에 문제가 있기 때문이다. 그래서, 모든 개발자들이 스트레스를 받지만 억지로 할 수밖에 없는 일이다. 그런데, 이 문서화를 하지 않아도 되게 만들어 버린 것인데, 그 방법이 참으로 절묘하다. 소스 코드 자체로서 가독성(readability)을 갖게 만든다는 것이다. 이런 방식은 회사의 관리자들도 실제 프로그래밍에 많은 경험을 해 본 회사라야 가능한 방법이다. 모든 일을 개발자의 입장에서 바라보고 개발자의 방식으로 해결한다. 그리고, 이런 식의 개발자 중심의 회사라는 내용을 끊임없이 홍보하고 있다. 그리하여 세계 최고의 인재들을 끌어모으는 것이다. 

코드의 실적용에는 여러 단계를 거친다. 가장 중요한 것이 코드의 리뷰다. 다른 사람들이 그 사람의 코드를 검토한다. 그래야 매니저도 리뷰하고 승인하고, 그 이후 실제 ‘체크인(check in)’이 된다. 동료가 다른 동료가 짠 코드를 리뷰할 수 있고, 자신의 것도 리뷰 받는다는 것이 중요하다. 그러면서 팀으로서의 협력도 되고, 실력 파악도 되는 것이다. 이 모든 과정에서 코드를 따로 보고, 코드를 설명한 문서를 또 본다고 한다면 얼마나 생산성이 떨어질 것인가? 코드 자체가 문서화가 되는 방식이 가져오는 또 다른 이점이다.

더 재미 있는 것은, 이러한 코드 중심의 소통이 무수한 이종결합을 가져온다는 것이다. 코드에 각자의 아이디어가 쓰이고, 코드의 주인은 그 아이디어를 거부감 없이 받아들인다. 이럴 때마다 새로운 개선점이 발견되고, 새로운 아이디어가 반영된다. 하나의 미션을 가진 프로젝트팀을 만들어야만 일이 돌아가기 시작하는 한국의 회사들과는 사뭇 다른 광경이다. 


마이크로소프트의 엔지니어가 25000명이라고요? 구글에게는 백만명이 필요합니다.
— 레리 페이지 구글 창업자, 2003년 에릭슈미트와의 대화

이 장에서 다루는 내용들

  • 한 천재 프로그래머의 이야기
  • 구글의 엔지니어가 일하는 방식
  • 구글이 엔지니어를 다루는 방식
  • 우리와 제국기업의 일하는 방식의 차이