#TV속 #천재프로그래머 #남들보다 #능력치10배 #스타프로그래머 #능력주의
#과연? #똑똑한얼간이 #기술부채 #리눅스 #오픈소스코드 #자유의지론자
첨단 산업의 리더 계층에 속한 사람들은 프로그래밍에서 실력이 무엇보다 중요하다고 생각한다. 벤처투자자 혹은 창업자들에게 10X 프로그래머가 정말로 있는지 물으면, 대부분 “그럼요” 혹은 “당연하죠”라고 대답한다. 레브친에게 깊은 인상을 심어주었던 넷스케이프 공동 창업자 마크 안드레센은 한술 더 떠서, “오히려 나는 10X가 아니고 1000X라고 말하고 싶습니다”라고 했다. “지난 50년간 제작된 뛰어난 소프트웨어 목록을 만들고 살펴보세요. 거의 대부분 한두 명이 만들었다는 사실을 확인할 수 있을 겁니다. 300명씩 모여서 만든 소프트웨어는 하나도 없죠. 혼자서 하거나 혹은 기껏해야 두 사람이 팀을 이루어 개발했어요.”
정말 그랬다. 혁신적인 한두 사람의 프로그래머가 개발한 소프트웨어가 많았다. ‘포토샵 Photoshop’은 2명의 형제가 개발했다. 마이크로소프트의 시작을 알린 ‘베이직’은 빌 게이츠가 고교 선배인 폴 앨런Paul Allen, 하버드 대학교 1학년 몬테 데이빗도프Monte Davidoff와 함께 초기 베이직을 새롭게 고쳐 만든 것이다.15 초창기 블로그 소프트웨어인 라이브저널은 브래드 피츠패트릭이 만들었다. 구글의 모태가 된 ‘혁신적인 검색 알고리즘’은 학생이었던 래리 페이지Larry Page와 세르게이 브린Sergey Brin이 만들었다. ‘유튜브’와 ‘스냅챗’은 3명이 개발했다. ‘비트토렌트’는 전적으로 브램 코헨의 작품이었고, ‘비트코인’은 소문에 의하면 익명의 프로그래머 사토시 나카모토Satoshi Nakamoto가 만들었다. 존 카멕John Carmack은 FPS First-person shooter(1인칭 슈팅게임) 비디오 게임이라는 수십억 달러 시장의 탄생에 기여한 ‘3D 그래픽스 엔진3D graphics engines’을 만들었다.
안드레센에 따르면 이렇게 적은 수의 사람들이 엄청난 결과를 만들 수 있었던 이유는, 새로운 앱 등을 개발할 때 정신적 공동체가 한두 사람의 고립된 머릿속에서 훨씬 효과적으로 세워지기 때문이다. ‘10X’의 생산성은 그 정신 공동체 속에 들어가 머물며 복잡한 문제나 목표를 구체화하는 뛰어난 능력에서 나온다. “만약 그들이 잠들지 않고 깨어 있을 수 있다면, 정말로 성공할 수 있어요.” 안드레센이 말했다. “문제는 깨어 있는 시간이에요. 머릿속에 모든 문제를 집어넣는데 2시간이 걸리고 그 상태에서 10시간, 12시간, 혹은 14시간 일할 수 있죠.” 그가 알고 있는 10X 프로그래머들은 시스템 수준에서 생각하며, 시스템을 구성하는 기술 스택Stack(컴퓨터에서 사용되는 기본 데이터 구조 중 하나—옮긴이)의 모든 부분에 대해 늘 궁금해하는 경향이 있다. 예를 들어 컴퓨터 마이크로프로세서에서 전류가 어떻게 흐르는지부터 터치스크린 반응 시간에 이르기까지 모든 것을 궁금해한다.
“10X 프로그래머들의 이런 행동은 지적 호기심, 충동, 필요 등이 결합된 결과입니다. 그들은 관심 있는 시스템에 자신들이 모르는 게 있다는 사실을 받아들이지 못하죠.”이런 이유로 10X 프로그래머들은 자신이 할 수 있는 모든 것을 뽐내며 일할 수 있는 스타트업을 좋아한다. 스타트업과 달리 이미 어느 정도 자리 잡은 대기업은 일의 속도가 느리다. 대기업은 수년 내지 수십 년간 만들어온 기존 시스템과 그 시스템을 사용하는 고객이 있다. 그러므로 대기업에서는 빠르고 창의적으로 일하기보다 현재 작동하고 있는 시스템의 문제점을 끈기 있고 점잖게 해결하는 일이 더 중요하다. 안드레센은 1990년대 초에 IBM에서 인턴으로 일했던 기억을 떠올렸다. “하루에 프로그램 10줄만 작성하면 되었어요. 10줄을 작성한 후 잘 작동하는지 확인하고 문제가 있으면 수정했죠. 마지막으로 문서를 작성하면 하루 업무가 끝났어요. 그 이상 또는 그 이하는 문제가 되었죠. 하루에 프로그램 10줄을 채우지 못하면 게으름뱅이 취급을 받았어요. 반대로 10줄 이상 작성하면 신중하지 못한 사람 취급을 받았죠.”
프로그래밍 분야에서 오랫동안 일한 베테랑 프로그래머들은 10X 프로그래머는 존재할 뿐만 아니라, 생산성 향상의 핵심 요소라고 입을 모아 말한다. 포그 크릭 소프트웨어Fog Creek Software 공동 창업자인 조엘 스폴스키Joel Spolsky는 블로그에 주노Juno라는 회사에서 함께 일했던 버그 검사원 질 맥팔레인Jill McFarlane에 관해 다음과 같이 썼다. “그녀는 4명의 검사원과 함께 일했는데, 4명이 버그를 발견한 횟수를 합친 것보다 3배나 많은 버그를 혼자 발견했어요. 결코 과장해 말하는 것이 아니라 실제로 측정한 결과입니다. 그녀는 일반 버그 검사원보다 무려 12배나 많은 일을 해냈어요. 그녀가 회사를 그만뒀을 때, 저는 회사 CEO에게 ‘버그 검사원 4명을 모두 데려가도 좋으니 그녀가 1주일에 월요일과 화요일 이틀만이라도 일하게 해주세요’라는 메일을 썼습니다.”
샘 올트먼Sam Altman은 대표적인 스타트업 엑셀러레이터인 와이콤비네이터의 대표다. 사실 통찰력이 필요한 분야에는 뛰어난 인물이 존재하지만, 올트먼은 프로그래밍 분야에서 10X 같은 뛰어난 천재를 놀라운 일로 받아들여서는 안 된다고 말한다. “다른 분야에서는 10X 같은 개념에 별로 이의를 달지 않아요.” 그는 내게 말했다. “10X급의 물리학자가 있다고 생각해보세요. 아마 노벨상을 받을 거예요. 좋은 일이고 사람들은 당연하게 생각하겠죠. 10X급의 작가가 있다고 가정해볼까요? 〈뉴욕타임스〉에서 선정하는 베스트셀러 작가가 될 거예요.” 프로그래밍을 가르치는 몇몇 선생님들은 프로그래밍을 처음 배우는 학생들에게서조차 10X급의 재능을 발견할 수 있다고 생각한다. 컴퓨터 과학과 교수인 클레이톤 루이스Clayton Lewis의 연구결과에 따르면, 컴퓨터 과학과 교수의 77%는 ‘누구라도 열심히 하면 컴퓨터 과학 분야에서 성공할 수 있다’는 말에 찬성하지 않는다. ‘열심히 하느냐 하지 않느냐’ 못지않게, 아니 그보다는 ‘재능을 가지고 있느냐 없느냐’가 성공에 중요하다고 생각한다.
2017년 어느 날, 나는 드롭박스Dropbox를 방문해 창업자인 드루 휴스턴Drew Houston과 이야기를 나누었다. 그는 사람들에게 10X라고 불릴 만한 프로그래머로 어려서부터 프로그래밍을 시작했으며, MIT에 진학했다. 또한 여유 시간을 이용해 꽤 훌륭한 온라인 포커 게임 봇을 개발하기도 했다. MIT 졸업 후, 그는 늘 USB 드라이브를 잊어버리고 짜증을 내던 자신의 모습을 떠올렸다. 그래서 개인 컴퓨터에 저장된 파일들을 자동으로 서버에 저장해주는 시스템을 개발하기로 결심했고, 이 결심은 드롭박스 시제품 개발로 이어졌다. 그는 자신뿐만 아니라 다른 사람도 비슷할 것이라 생각했다. 와이콤비네이터에 따르면 휴스턴은 2018년 하반기 기준 약 100억 달러로 평가 받는 회사를 만들었다.
휴스턴은 드롭박스 음악 스튜디오의 보라색 소파에 앉은 채, 자신이 성공할 수 있었던 주요 이유 중 하나는 10X 프로그래머를 찾아내 채용한 것이라고 말해주었다(드롭박스에는 직원들이 쉬면서 즐길 수 있도록 드럼, 기타, 앰프 등이 잘 갖춰진 음악 스튜디오가 있었다). 그는 10X 프로그래머들의 소질 혹은 재능이 완전히 선천적인 것만은 아니라고 생각했다. 이들은 프로그래밍에 1만 시간 이상의 노력을 쏟아 넣었고, 온갖 에러를 경험했으며, 뒤죽박죽 꼬인 문제를 해결하기 위해 밤늦도록 프로그램 기술을 갈고닦았다. “연습을 통해 그런 능력을 키울 수 있어요.” 휴스턴은 타고난 재능을 뛰어넘는 실력을 갖추는 것이 가능하다고 주장했다. 물론 그도 열정, 집중력, 기술에 대한 애정 등 성격적으로 타고나야 하는 부분이 있다는 것을 인정했다. “그런 것들은 주어진 문제를 해결하려 할 때 큰 힘이 됩니다.” 휴스턴이 말했다.
휴스턴은 내게 드롭박스 소속 프로그래머 중 가장 뛰어난 프로그래머 한 명을 소개시켜 주었다. 바로 벤 뉴하우스Ben Newhouse로 28세의 젊은 프로그래머이자 드롭박스 기술팀 리더였다(훗날 그는 자신의 사업을 하기 위해 회사를 떠난다). 뉴하우스 또한 휴스턴과 마찬가지로 학생 때부터 여러 괜찮은 소프트웨어를 개발했다. 스탠퍼드 대학교에 다니던 21살에는, 최초의 아이폰용 증강현실 앱 가운데 하나를 개발했다. 당시 그는 미국 최대 리뷰 사이트인 옐프Yelp에서 인턴으로 일했는데, 아이폰에 내장된 나침반과 GPS 센서를 이용해 아이폰 화면이 주변 상황에 반응하도록 할 수 있다는 사실을 알게 되었다. 그는 각성 음료인 레드불을 마셔가며 밤낮없이 프로그래밍에 몰두한 끝에, 아이폰을 들면 주변 상점들의 옐프 리뷰를 볼 수 있는 기능을 만들었다.
뉴하우스는 드롭박스의 큰 골칫거리로 떠오른 문제를 해결하는데 골몰하고 있었다. 드롭박스 사용자들 가운데 상당수는 드롭박스를 하드디스크 백업용으로 사용한다. 그 결과 몇 년 사용하고 나면 드롭박스 개인 계정에는 300~400GB의 사진과 동영상들이 쌓여 있곤 했다. 이런 사용자가 자신의 오래된 개인 컴퓨터를 새 컴퓨터, 예를 들어 맥북에어로 업그레이드했다고 가정하자. 그러나 새 노트북에 달린 최신 저장장치의 크기는 128GB 정도로 그리 크지 않다. 덕분에 한 가지 문제가 생긴다. 사용자가 드롭박스 클라우드 계정에 저장된 300~400GB 데이터를 새 노트북에 저장하고 양쪽을 동기화할 수가 없다. 지금까지 잘 작동했던 드롭박스 사용방식에 갑자기 문제가 생긴 것이다. 아마도 사용자는 ‘음, 새 노트북에 모든 파일을 저장할 수는 없군. 그렇다면 어떤 파일들만 내가 직접 노트북으로 옮겨 저장해야 할까?’라고 고민하게 된다. 드롭박스의 핵심 장점인 자동 백업, 즉 한 번 설정하고 잊어버림의 편리함이 사라진 것이다. 드롭박스 프로그래머들은 이 문제를 해결하기 위해 오랜 시간 고민해왔다. 그러나 그들의 결론은 ‘제기랄, 도저히 풀 수가 없군’으로 항상 같았다.
뉴하우스도 이 문제를 고민했으며, 드롭박스 사업을 계속 이어나가려면 반드시 해결해야 한다고 생각했다. 몇 달 후 기회가 생겼다. 드롭박스 내부 정기 해커톤 대회가 열린 덕택에 1주일간 드롭박스 서비스를 중단하고 새로운 아이디어를 시험해볼 수 있게 되었다. 이때 뉴하우스는 한 가지 아이디어를 떠올렸다. 백신 소프트웨어는 사용자가 파일을 사용할 때 재빨리 바이러스 검사를 한다. 뉴하우스는 이 아이디어를 빌려와 드롭박스 서비스에 적용하려 했다. 아이디어를 구현할 수 있다면, 사용자의 새 노트북인 맥북에어에 드롭박스 계정에 있는 모든 파일들이 저장된 듯 보이게 만들 수 있었다. 또한 사용자가 파일 하나를 사용하려는 순간 클라우드에서 그 파일을 가져와 사용하게 한 뒤 클라우드에 다시 저장되도록 만들 수도 있었다.
모든 과정이 매우 빠르게 일어나면 사용자는 아무런 불편함도 느끼지 않을 것이다. 아이디어는 훌륭했지만, 결코 쉬운 일이 아니었다. 컴퓨터 운영체제 소프트웨어의 핵심인 커널 내부를 수정해야 했는데, 이는 신경외과 수술과 비슷했다. 잘못된 방법으로 드롭박스를 수정하면 저장된 일부 데이터를 훼손시키며 수백만 명의 드롭박스 사용자에게 피해를 줄 수 있었다. “운영체제 커널에는 중요한 기능들이 많이 몰려 있어서 작업하려면 정말 위험했죠.” 뉴하우스는 말했다. “자칫 잘못하면 모든 것이 날아갈 수 있죠.” 이런 위험 때문에 여러 프로그래머들은 이 문제에 손대지 않는 것이 최선이라고 생각했다. “대다수 프로그래머들은 운영체제 커널을 수정해 문제를 해결하는 일은 불가능하다고 생각했어요.” 드롭박스의 다른 프로그래머인 제이미 터너Jamie Turner가 내게 말했다.뉴하우스는 자신의 노트북에 고개를 처박은 채 미친 듯이 일했고, 주말쯤 자신의 생각을 데모버전으로 보여주었다.
데모를 본 휴스턴은 크게 만족했고 뉴하우스에게 6명의 프로그래머를 붙여주며 데모를 실제로 구현하도록 지시했다. 성공적으로 개발을 마친 뉴하우스는 새로운 기능을 회사 내부에 먼저 적용했다. 당시에 새로운 기능이 적용되고 있는 것을 몰랐던 뉴하우스의 동료 터너는 새로 구입한 부인의 맥북을 셋업하며, ‘모든 파일을 동기화하려면 이틀쯤 걸리겠군’이라고 생각했다. 그러나 놀랍게도 동기화는 불과 몇 분 만에 끝났다. ‘도대체 무슨 일이 일어난 거야? 무슨 문제가 있나?’라고 생각하며 이것저것 살피던 터너는 ‘스마트 동기화 켜짐’이라는 메시지를 발견하고는, “와우, 이게 뭐지?”라고 외쳤다. ‘스마트 동기화’는 일반 사용자들에게도 공개되었고, 이 기능은 지난 수년간 있었던 가장 중요한 업그레이드 중 하나가 되었다.
이런 결과야말로 휴스턴이 ‘돈값을 할 만한 사람들을 뽑기 위해 노력하는 이유’였다. 그런 사람은 1명만 뽑아도 평범한 10명이 해내지 못할 일들을 거뜬히 해낸다.“과장이 심하다고 생각할 수도 있겠지만, 내가 방안에 앉아서 교향곡을 작곡한다고 가정해보죠. 아무리 오랜 시간 동안 앉아 있어도 교향곡은 고사하고 동요 하나 만들지 못할 거예요.” 휴스턴은 말을 이어갔다. “회사에서 10명 아니 100명의 디자이너를 채용할 수도 있습니다. 그러나 조너선 아이브 Jonathan Ive(다양한 애플 제품을 디자인한 애플의 최고디자인책임자—옮긴이) 1명을 당해낼 수가 없을 거예요.”
‘프로그래밍은 정신력, 타고난 재주, 능력이 중요한 분야’라는 생각을 프로그래머들이 좋아하는 이유는 어렵지 않게 이해할 수 있다. 프로그래밍 작업을 하다 보면 쉽게 경험할 수 있기 때문이다. 프로그래머는 컴퓨터에게 헛소리를 할 수도 없고, 실패한 코드가 맞다고 우길 수도 없다. “컴퓨터가 이상하다고 투덜거리지 마라. 틀림없이 프로그램에 문제가 있을 테니 말이다.” 프로그래머인 메러디스 패터슨Meredith L. Patterson이 말했다.그는 2014년에 다음과 같은 글을 남겼다. “프로그램은 사람을 가리지 않는다. 위대한 프로그래머가 되는 길은 위대한 프로그램을 만드는 것뿐이다. 다른 길은 없다.” 진정한 프로그래머는 코드 외에 다른 어떤 것도 고려하거나 인정하지 않는다.
★세상을 변화시키는 새로운 종족 <은밀한 설계자들> 자세히 보러가기 ↓ ★
이전 글 : [절대수익 20%] 오르는 주식을 찾아내는 주식투자의 맛
다음 글 : 활동량이 부족할 때, 뻐근한 몸을 풀어주는 스트레칭
최신 콘텐츠