짧지만 풍요로웠던 마지막 프로젝트

일상

존 카맥 (John Carmack)

수지잡스 2023. 6. 12. 10:05

 

Doom을 모르는 사람이 있으려나 모르겠다. 아마도 비교적 최근의 세대는 잘 모르지 싶다만 내가 젊을 때 엄청 유명했던 게임이다. 대학원 랩실에서 이것 끝까지 가보겠다고 밤샘했던 적도 있는데 아무도 없는 방에서 소리 크게 해 놓고 게임하다 보면 조금 으스스했었던 기억이 난다. 

이 게임을 만든 천재 소리듣는 사람이 바로 존 카맥이다.

 

 

ID 소프트웨어 라는 유명한 회사를 만든 사람이기도 하고 최근까지는 페이스북에서 근무했었다. 잘 만들던 게임업계를 떠나 느닷없이 로켓을 만들겠다고 하면서 잠시 딴 일을 하더니만 다시 VR 관련 일을 하면서 돌아오기도 했던 어쨌든 내 기준으로 잘 나가는 개발자다.

이 사람은 구글에서 찾아보면 정보를 많이 볼 수 있는데 하도 유명한 사람이라 자세한 설명은 생략한다.

 

내가 굳이 이 사람을 언급하는 이유는 내가 좋아하는 사람이기도 하지만 사고방식이 나와 비슷하기 때문이다. 물론 실력은 이 사람 발끝에도 따라가지 못하지만.. (갑자기 눈물이.. )

 

이 사람 다음과 같은 정확하지는 않지만 아래와 같은 맥락의 말을 한 적이 있다.

 

다른 개발자 필요없다. 내가 다 만들면 된다.

 

 

요즘 내가 하고 있는 프로젝트도 그렇지만 소위 말하는 관리자들은 개발팀의 규모가 어느 정도 이상이 되지 않으면 불안한 감정을 느끼는 것 같다. 개발팀을 구성하는 구성원들의 생각과 자질 그리고 어떻게 하면 가장 좋은 퍼포먼스가 나오게 할 수 있을까에 대한 진지한 고민은 하지 않고 맨먼스만 계산하고 있는 듯 보인다. 어제오늘 일은 아니지만 여전히 규모가 품질을 결정한다는 사고방식에서 벗어나지 못하고 있는 듯한 느낌이 든다. 소프트웨어는 사람이 만든다. 그리고 사람에 따라 생산성 규모가 작게는 2배 많게는 10배가량 차이가 난다는 것이 내 경험상으로도 맞고 대가들의 연구 결과도 그러하다. 

 

어떤 프로그램을 처음부터 끝까지 만들 수 있는 사람이 정해진 기간내에 그 프로그램을 만들 수 없을 때 소위 말하는 팀을 만든다. 일을 나누어서 하기 위해서인데 이 경우에도 핵심 역할을 하는 사람은 꼭 필요하다. 당연한 말이지만 이 사람의 역할은 아주 중요하기 때문에 다른 사람과 차별화되어야 하고 관리라고 하는 행위가 이 사람을 중심으로 이루어져야 한다. 

 

아쉽게도 대부분의 기업에서는 이런 구분을 차별이라 생각하고 핵심 개발자와 비핵심 개발자를 같이 취급한다. 팀워크를 강조하면서 오히려 핵심 개발자에게 알고 있는 노하우를 비핵심 개발자에게 나누어 줘라는 짐까지 짊어지게 하고 인력 관리까지 맡긴다. (나에게도 이런 상황이 곧 닥칠 것 같다) 이때가 핵심 개발자가 떠나야겠다는 생각을 하는 시기인데  소프트웨어 업계에서 빈번하게 일어나는 일이다. 

 

존 카맥은 사실 혼자서 다 만들었다. 물론 몇몇 부분은 다른 사람의 역활이 중요하게 작용했겠지만 엔진을 만든 사람이다. 스스로도 왜 이걸 나누어서 해야 하는지 이해를 못 했을 것 같다.  존 카맥이 한 이야기는 소프트웨어 개발의 본질이다. 개발 스킬은 혼자서 습득해야 하고 길고 지루한 과정을 거쳐야 어느 정도의 수준에 이르게 되고 수준을 확 뛰어넘는 순간은 자신도 모르는 사이에 다가온다. stackoverflow의 도움도 있지만 결국 문제를 해결하는 것은 개발자 본인의 몫이고 소프트웨어는 동작하지 않으면 아무것도 아니므로 흑백 논리가 적용되기 때문에 온갖 편법을 사용하는 경우도 흔하다. 

 

소프트웨어는 혼자서 개발하는 것이 맞다. 혼자서 개발을 완료할 수 없는 소프트웨어는 할 수 있다고 말하면 안된다. 

 

'일상' 카테고리의 다른 글

Kontakion of the departed  (0) 2023.06.12
고수와 하수의 차이  (0) 2023.06.12
어느 노인과 아들  (0) 2023.06.12
길 잃은 고양이  (0) 2023.03.28
시작하며  (0) 2023.03.22