개발자의 유토피아 실리콘밸리 맛보기
추천을 받아 <실리콘밸리를 그리다>를 읽게 되었는데, 이것이 정말 존재하는 세상인가 싶었다. 현재 다니고 있는 회사와 속해있는 팀은 개인적인 경험과 주변 소식을 종합해봤을 때 가장 실리콘밸리와 유사하다. 그럼에도 한국 IT 문화와 실리콘밸리의 개발 문화 차이는 그 거리감이 상당하다.
실리콘밸리가 왜 그들만의 문화를 가지게 되었는지도 충분히 납득할 수 있게 되었다. 실리콘 밸리의 개발 문화, 역할 조직 vs 위계 조직, 애자일 프로세스, 보상으로 스톡옵션을 지급하는 이유 등 깨알 같은 내용이 많았다. Yes24 바이백으로 팔아넘기지 않고 무덤까지 가져갈 책이다.
주옥같은 내용 중 인상 깊은 부분만 몇 가지 정리했다.
실리콘밸리의 삶에는 충분히 쉴 수 있는 저녁이 있다. 정부에서 저녁이 있는 삶을 보장해주어서가 아니라, 저녁에는 집에 가는 것이 당연하다고 생각해서 아무도 놀아주지 않기 때문이다. 회사에서도 저녁까지 계속 일하는 것은 이상하고 무리한 일이라고 생각한다. 일이 남았거나 급한 사고가 생겨 수습해야 하는 경우에도 회사에 남아 있기보다는 되도록 집에 가서 회사 네트워크에 접속해 한두 시간 정도 일하여 해결한다. 그 이상 일해야 한다면, 당연히 다음 날 회사에 가서 처리한다.
프로페셔널은 배고프고 힘든 상황에서 불가능한 임무를 해내는 사람이 아니다. 일해야 할 때 컨디션을 최상으로 끌어올려놓고 있는 사람이다.
일하는 시간에 컨디션을 최상으로 유지하는 것은 가치를 최대한 생산하기 위해 직원과 회사 모두가 추구해야 하는 일이며, 직원 행복의 기본 조건이다.
실리콘밸리 회사들은 고객에게 이제껏 경험하지 못한 새롭고 편리한 경험을 제공한다. 아이폰을 만든 애플을 시작으로 구글, 페이스북, 트위터, 테슬라, 에어비앤비, 우버 같은 회사들은 그때까지 불가능했던 새로운 경험을 제공했다. 물론 새로운 기술들이 큰 역할을 했지만, 실리콘밸리 회사들에게 기술은 도구일 뿐 추구의 대상이 아니다.
실리콘 밸리 회사들은 오직 자신의 제품을 발전시키는 데만 관심이 있다.
어떤 신기술이 나오든, 자사 제품을 만들거나 발전시키는 데 도움이 되면 활용하고 아니면 무시한다.
그렇다 보니 실리콘밸리에 있는 대기업 중 관련 기업 일부만 인공지능을 연구하여 발전시킨다. 또한 제품과 직접적인 관련성을 찾기 힘든 블록체인에는 별 관심을 두지 않는다.
애플은 사용자 경험을 더 높이는 기술이 아니면 아이폰에 넣을 생각을 하지 않는다. 갤럭시가 동공 스크롤을 비롯해 수십 가지 기술을 구현한 데 반해 아이폰은 불필요한 기술은 과감히 버린다. 애플의 혁신은 사용자 경험의 혁신이지, 기술의 혁신이 아니기 때문이다.
실리콘밸리가 만드는 것은 이제껏 인류가 경험해보지 못한 새롭고, 신기하고, 삶을 편하게 하는 선물 같은 경험이다. 실리콘밸리 회사에서 기술은 도구일 뿐이다. 그래서 개인 휴대전화와 카메라를 회사에서 마음대로 써도 되고 회사 컴퓨터를 집에 가져가서 일해도 된다. 또한 모든 소스 코드에 모든 엔지니어가 접근할 수 있다. 그런가 하면 최신 기술의 흐름에도 큰 관심을 두지 않는다. 어떻게 하면 사람들에게 더 좋은 경험을 제공하는 제품을 만들 수 있었까, 어떤 기술을 사용하면 더 쉽고 빠르게 사람들에게 다가갈 수 있을까를 고민한다.
소프트웨어 엔지니어와 UX 디자이너, 프로덕트 매니저가 각각 전문가로서 제품 최적화를 꾀하다 보면 제품이 끊임없이 변해 애초의 설계와는 다르게 만들어지기 일쑤다. 그래서 실리콘밸리 기업에는 기획자라는 직업이 아예 없다.
엔지니어 문화에서 출발한 실리콘밸리에서는 맨 처음의 설계를 구현하는 방식으로 제품을 만들지 않는다. 끊임없이 진화하여 어디로 튈지 모르는 제품을 가정하고 시작한다. 위에서 설계하고 아래에서 구현하는 방식으로는 실리콘밸리식 소프트웨어의 발전을 도저히 따라갈 수 없다. 또한 실리콘밸리에서는 소프트웨어를 만들면서 아웃소싱을 하는 경우가 드물다. 아웃소싱 구조에서는 설계를 바꾸기가 너무나 어렵기 때문이다.
우리나라 기업 문화는 기술 집약 제조업에 최적화되어 있다. 반도체 분야에서 세계 1위를 유지하는 이유가 여기에 있다. 반면 제품이 설계의 산물이 아닌, 계속 변해가며 만드는 과정인 애자일 프로세스에 충실한 결과물인 경우, 제조업에 최적화된 기업 문화는 치명적인 약점이 된다.
매니저의 역할이 팀을 잘 돌아가도록 하는 것이고, 개인의 역할은 자신의 지식과 기술을 최대한 발휘하여 프로젝트를 완료하고 회사의 미션에 기여하는 것이라면 주어진 일만 하는 것은 직무 유기다. 이 경우에는 자신의 커리어를 위하여 최고의 기술을 동원하여 최고의 프로덕트를 만들어내고자 할 것이다.
역할 조직이 혁신을 만들어내는 힘이 바로 여기에 있다.
각자가 주어진 일에 갇히지 않고 전문성을 최대한 살려서 목표를 이루고자 노력하기 때문에 혁신이 일상이 된다.
실리콘밸리 회사들은 내가 없어도 잘 돌아간다. 그건 최고경영자를 포함해 직급을 막론하고 누구나 그렇다. 각자의 역할이 잘 정의되어 있어서 다른 사람으로 일시 대체하기 쉬운 데다 결정권이 배분되어 있어 나 대신 누구나 결정을 내릴 수 있기 때문이다. 또 매니저의 역할이 팀원 하나 없어도 업무가 탈 없이 잘 돌아가도록 만드는 것이기도 하고, 위에서 임의로 만든 데드라인이 없어서 전체 일에 문제가 안 된다면 개인의 자율과 책임에 의해 일정 조정이 가능한 것도 한몫한다.
자발적으로 이직하는 엔지니어들과의 퇴사 면접에서 다음과 같은 이유를 반복적으로 들을 수 있었다.
성장: 현재 위치가 편안하지만 정체된 느낌이다.
기여: 내가 회사의 발전에 기여하는 바가 느껴지지 않는다.
기술: 유행하는 기술을 쓰는 곳에서 일하고 싶다.
포부: 열정이 생기는 새로운 분야에서 일하고 싶다.
(이 부분은 추후에 도움이 될 것 같아서 메모해두었다)
문자 메시지나 전화 회의 같은 실시간 소통은 근무 시간 내에 제한된다.
이메일을 근무 시간 이후에 보냈을 경우에 답장은 기대하지 않는다. (이 부분은 책에서 여러 번 언급된다.)
특별한 경우가 아니면 대면 회의보다 전화 회의를 이용한다.
중요한 의사 결정일수록 모든 이해 관계자들의 의견을 충분히 취합한다.
L5(Senior Engineer)
기술력: 난이도가 높은 기술적 문제를 가장 좋은 방법으로 해결할 수 있음
영향력: 다른 사람들이 높은 생산성을 유지할 수 있도록 도우며, 팀의 목표에 비추어 자신이 할 프로젝트를 만들어서 할 수 있음
역할 범위: 하나의 시스템이나 프로젝트 전체를 맡아서 관리할 수 있음
자율성: 혼자서 모든 업무를 할 수 있음
성장에 기여: 다른 팀들과 좋은 관계를 쌓는 가운데 팀 내 리더 역할을 함. 엔지니어들의 멘토로 활동하고, 직원 면접 과정에 깊이 관여하여 새로운 면접 문제나 유형을 만들기도 함
L5 엔지니어는 엔지니어 사이에서 중추적인 역할을 한다. L3, L4 엔지니어는 L5 엔지니어로 성장하기 위하여 노력하라고 명시되어 있지만, L5부터는 L6 엔지니어로 성장하기 위하여 노력하라고 명시되어 있지 않다. L6부터는 특별한 재능과 노력이 필요하며, 엔지니어링보다 팀 관리에 뛰어난 사람은 매니저가 되기도 한다.
개발자로서 직장을 다니다 보면, 문득 내가 잘하고 있는 건가 의문이 들 때가 있다.
내가 하는 일이 회사에 어떤 기여를 하고 있는가
우리 팀의 미션은 무엇인가
나는 성장하고 있는 건가, 정체되어 있는 건가
개발자로 일해온 지 4년이 된 지금, 개발자로서의 나를 돌아보기에 좋은 책이었다.
앞으로 더 성장해서 시니어 엔지니어가 되고 싶다.