프로그래밍은 밀 수확 보단 시 쓰는 일에 가깝다, 맨먼스는 허구다

공공 IT 프로젝트에서 예산 규모는 투입되는 사람, 특히 개발자들이 몇 명인지에 따라 정해진다. 하지만 소프트웨어 개발 예산을 단순히 투입되는 프로그래머들 숫자로 정하는 것은 프로그래밍이라는 업의 본질과는 거리가 있다는 지적이 적지 않다. 소프트웨어 개발이라는 게 사람 많이 투입한다고 잘되는 성격의 일이 아니라는 것이다.

테크 저널리스트 클라이브 톰슨의 책 <은밀한설계자들>에서도 프로그래밍은 일반적인 노동과는 다르다. 저자는 프레더릭 브룩스가 쓴 <맨먼스미신>을 인용해  여러 기술 회사들이 프로그래밍 투입 인력 늘려 개발 속도를 증가시킬 수 있는 일처럼 생각하지만, 실제로는 그렇지 않다고 강조한다.

만약에 밀을 2배 빨리 수확해야 한다고 생각해보자. 방법은? 간단하다. 밀 수확 인력을 2배로 늘리면 된다. 그러나 프로그래밍은 통찰력이 필요한 일로 밀 수확 보다는 시를 쓰는 일에 가깝다. 다시 말해 프로그래밍 과제의 해결책은 많은 사람들의 땀방울에서 나오기 보다 통찰력과 영감을 갖춘 한 사람의 순간적인 깨달음에서 나오기 쉽다.

결론적으로 프로그래밍은 일반 노동과는 정반대다. 어려운 프로그래밍 과제를 해결하기 위해 좀 더 많은 프로그래머를 투입하는 일은 회의와 의사 소통 부담을 증가시켜 과제 해결을 더욱 어렵게 만든다. 브룩스는 이런 현상을 다음과 같이 간결하게 정리했다. "지연되고 있는 소프트웨어 과제는 인력을 투입하면 투입할 수록 더욱 늦어진다."

결국 소프트웨어 개발에서 소수의 뛰어난 프로그래머들에 달렸다는 것이다.  저자의 표현을 빌리면 10X 프로그래머다. 책을 보면 보편 타당한 법칙이라고 볼수 있을지는 모르겠지만 실리콘밸리에선 10X 프로그래머에 대한 광범위한 공감대가 형성돼 있다.

이를 위해 저자는 거물급 프로그래머들의 발언을 인용하는데, 우선 넷스케이프 공동 창업자이자 실리콘밸리 유력 벤처 캐피털인 안드레센 호로위츠를 이끌고 있는 마크 안드레센의 말이다.

"오히려 나는 10X가 아니고 1000X라고 말하고 싶습니다. "지난 50년간 제작된 뛰어난 소프트웨어 목록을 만들고 살펴보세요. 거의 대부분 한두 명이 만들었다는 사실을 확인할 수 있을 겁니다. 300명씩 모여서 만든 소프트웨어는 하나도 없죠. 혼자서 하거나 혹은 기껏해야 두 사람이 팀을 이루어 개발했어요."

다음은 빌 게이츠가 했던 말이란다.

"뛰어난 프로그래머가 평범한 프로그래머보다 몇 배의 연봉을 받기는 하지만 뛰어난 프로그래머가 작성한 프로그램은 평범한 프로그래머가 작성한 프로그램보다 1만 배쯤 가치가 있다."

실리콘밸리 대표 스타트업 액셀러레이터 중 하나인 와이콤비네이터 대표 샘 올트먼의 얘기도 등장한다.

"다른 분야에서는 10X 같은 개념에 별로 이의를 달지 않아요. 10X급 물리학자가 있다고 생각해보세요. 아마 노벨상을 받았을 거에요. 좋은 일이고 사람들은 당연하게 생각하겠죠. 10X급의 작가가 있다고 가정해볼까요? 뉴욕타임스에서 선정하는 베스트셀러 작가가 될 거예요. "

이와 관련해 저자는 다음과 같이 부연 설명한다.

정말 그랬다. 혁신적인 한두 사람의 프로그래머가 개발한 소프트웨어가 많았다. 포토샵은 2명의 형제가 개발했다. 마이크로소프트의 시작을 알린 베이직은 빌 게이츠가 고교 선배인 폴 앨런, 하버드 대학교 1학년 몬테 데이빗도프와 함께 초기 베이직을 새롭게 고쳐 만든 것이다. 초창기 블로그 소프트웨어인 라이브저널은 브래드 피츠패트릭이 만들었다.

구글의 모태가 된 혁신적인 검색 알고리즘은 학생이었던 래리 페이지와 세르게이 브린이 만들었다. 유튜브와 스냅챗은 3명이 개발했다. 비트토렌트는 전적으로 브램 코헨의 작품이었고 비트코인은 소문에 의하면 익명의 프로그래머 사토시 나카모토가 만들었다. 존 카멕은 FPS 비디오 게임이라는 수십억 달러 시장의 탄생에 기여한 3D 그래픽스 엔진을 만들었다.

소수 프로그래머가 소프트웨어 개발에서 결정적 순간을 만드는 것엔 나름 이유가 있다. 저자는 마크 안드레센의 의견을 인용한다.

안드레센에 따르며 이렇게 적은 수의 사람들이 엄청난 결과를 만들 수 있었던 이유는 새로운 앱 등을 개발할 때 정신적 공동체가 한 두 사람의 머릿속에서 훨씬 효과적으로 세워지기 때문이다. 10X의 생산성은 그 정신 공동체 속에 들어가 머물려 복잡한 문제나 목표를 구체화하는 능력에서 나온다. 만약 그들이 잠들지 않고 깨어 있을 수 있다면 정말로 성공할 수 있어요." 안드레센이 말했다.

"문제는 깨어 있는 시간이에요. 머릿속에 모든 문제를 집어넣는데 2시간이 걸리고 그 상태에서 10시간, 12시간, 혹은 14시간 일할 수 있죠." 그가 알고 있는 10X 프로그래머들은 시스템 수준에서 생각하며 시스템을 구성하는 기술 스택의 모든 부분에 대해 늘 궁금해 하는 경향이 있다. 예를 들어 컴퓨터 마이크로 프로세서에서 전류가 어떻게 흐르는지부터 터치스크린 반응 시간에 이르기까지 모든 것을 궁금해한다. 10X 프로그래머들의 이런 행동은 지적 호기심, 충동, 필요 등이 결합된 결과입니다. 그들은 관심 있는 시스템이 자신들이 모르는 게 있다는 사실을 받아들이지 못하죠."

10X 프로그래머들은 자신이 할 수 잇는 것을 것을 뽐내며 일할 수 잇는 스타트업들을 좋아한다. 스타트업과 달리 이미 어느 정도 자리 잡은 대기업은 일의 속도가 느리다. 대기업은 수년 내지 수십 년간 만들어온 기존 시스템과 그 시스템을 사용하는 고객이 많다. 그러므로 대기업에서는 빠르고 창의적으로 일하기 보다 현재 작동하고 있는 시스템의 문제점을 끈기 있고 점잖게 해결하는 일이 더 중요하다.

테크잇 뉴스레터를 전해드립니다!

오피니언 기반 테크 블로그 'TechIt'
테크 비즈니스를 보는 다양한 통찰들을 이메일로 간편하게 받아 볼 수 있습니다.

About the author

endgame
endgame

테크 블로거 / 공유할만한 글로벌 테크 소식들 틈틈히 전달하겠습니다

No more pages to load


TechIT

테크 비즈니스를 보는 다양한 통찰 '테크잇'

독자 여러분들께서 좋은 의견이나 문의 사항이 있으시면 아래 양식에 따라 문의 주시기 바랍니다.

Contact