최근에 리누스 토르발스의 TED 강연을 보면서 정말 많은 생각이 들었다. 우리가 흔히 생각하는 '성공한 개발자'의 모습과는 완전히 다른 그의 이야기가 너무 인상적이었거든.
고집스러운 아이에서 세상을 바꾼 개발자까지
토르발스는 자신의 어린 시절을 회상하며 흥미로운 이야기를 들려줬다. 그는 자신이 "까다로운 너드"였다고 솔직하게 인정했다. 사람들과 어울리는 것보다는 루빅스 큐브에 더 관심이 많았던 아이였다고.
가족 모임 사진을 보여주면서 그가 한 말이 특히 기억에 남는다. 그의 여동생이 말하길, 그의 가장 특별한 점은 "절대 포기하지 않는 것"이었다고 한다. 이건 단순히 똑똑해서가 아니라 완고함, 즉 고집스러움 때문이었다는 거다.
이 고집스러움은 그의 인생 전반에 걸쳐 나타났다. 실리콘밸리에서 7년 동안 같은 회사에서 일했다는 것만 봐도 알 수 있다. 실리콘밸리에서는 사람들이 계속 회사를 옮겨다니는 게 일반적인데, 그는 그런 사람이 아니었던 거다.
오픈소스 개발에서 배운 협업의 진실
리눅스 개발 과정에서 토르발스는 많은 갈등을 겪었다. 그는 자신이 "사람을 다루는 사람(people person)"이 아니라고 솔직하게 말했다. 때로는 다른 사람의 감정을 고려하지 못해서 상처를 주는 말을 하기도 했다고 인정했다.
하지만 여기서 중요한 깨달음이 나온다. 오픈소스의 아름다운 점은 서로 좋아하지 않아도, 심지어 격렬하게 논쟁을 해도 함께 일할 수 있다는 것이다. 각자 다른 관심사와 목표를 가지고 있어도 말이다.
처음에는 상업적인 사람들이 자신의 작업을 악용할까 봐 걱정했지만, 실제로는 그들이 정말 좋은 사람들이었고, 자신이 전혀 관심 없어하는 일들을 해줬다는 거다. 그들은 완전히 다른 목표를 가지고 오픈소스를 활용했지만, 그것이 오히려 아름답게 조화를 이뤘다.
좋은 코드에 대한 '취향'이란 무엇인가
토르발스가 보여준 코드 예시는 정말 인상적이었다. 같은 기능을 하는 두 개의 코드가 있는데, 하나는 "좋지 않은 취향"의 코드고, 다른 하나는 "좋은 취향"의 코드였다.
첫 번째 코드는 연결 리스트에서 항목을 제거할 때 첫 번째 항목인지 중간 항목인지에 따라 다르게 처리하는 특별한 경우(special case)가 있었다. 반면 두 번째 코드는 그런 특별한 경우가 없이 모든 상황을 동일하게 처리할 수 있게 작성되어 있었다.
이게 바로 '좋은 취향'이다. 문제를 다른 방식으로 바라보고, 특별한 경우를 일반적인 경우로 만들어버리는 것. 물론 이 예시는 단순한 CS101 수준이지만, 진짜 좋은 취향은 훨씬 큰 패턴을 보고 본능적으로 올바른 방법을 아는 것이라고 했다.
비전가가 아닌 엔지니어로서의 자부심
TED에서 가장 인상 깊었던 부분은 토르발스가 자신을 "비전가가 아니다"라고 명확히 선을 그은 것이었다. TED에서 이틀 동안 많은 비전에 대한 이야기를 들으면서 약간 불편했다고 솔직하게 말했다.
그는 5년 계획 같은 건 없다고 했다. 자신은 엔지니어이고, 구름을 바라보며 별을 보면서 "저기 가고 싶다"고 말하는 사람들과는 다르다는 거다. 대신 그는 땅을 보면서 바로 앞에 있는 구멍을 빠지기 전에 고치고 싶어하는 사람이라고 했다.
테슬라 vs 에디슨: 어떤 타입의 사람인가
기술 분야에서 자주 비교되는 테슬라와 에디슨 이야기도 흥미로웠다. 테슬라는 비전을 가진 과학자이자 미친 아이디어맨으로 여겨지고, 사람들이 테슬라를 사랑한다. 심지어 회사 이름으로도 쓸 정도로 말이다.
반면 에디슨은 평범하다고 여겨지며 종종 비난받는다. 그의 유명한 말은 "천재는 1%의 영감과 99%의 노력"이다. 사람들이 에디슨을 항상 좋아하지는 않지만, 실제로 세상을 바꾼 사람은 누구인가?
토르발스는 자신이 테슬라보다는 에디슨에 가깝다고 생각한다고 했다. 에디슨이 좋은 사람은 아니었을지도 모르고, 지적이거나 비전이 있지는 않았을지도 모르지만, 실제로 세상을 바꾼 사람은 에디슨이었다는 거다.
돈보다 중요한 가치
구글 같은 회사들이 그의 소프트웨어로 수십억 달러를 벌어들이는 것에 대해 어떻게 생각하냐는 질문에 대한 답변도 인상적이었다. 그는 여러 이유로 그것이 자신을 괴롭히지 않는다고 했다.
첫째, 그 자신도 충분히 잘 살고 있다. 둘째, 오픈소스로 만들고 진정으로 놓아주지 않았다면 리눅스는 지금의 리눅스가 될 수 없었을 것이라는 점이다.
코드의 흑백논리가 주는 명확함
마지막으로 토르발스가 언급한 코드의 특성도 흥미로웠다. 코드는 대체로 흑백논리적이라는 것이다. 올바르게 작성되었는지 그렇지 않은지를 판단하는 상당히 좋은 방법이 있고, 코드는 작동하거나 작동하지 않거나 둘 중 하나다.
이는 논쟁의 여지를 줄여준다. 물론 그럼에도 불구하고 여전히 논쟁은 있지만, 다른 많은 영역보다는 명확하다는 거다.
---
토르발스의 이야기를 들으면서 느낀 건, 성공이라는 게 꼭 거대한 비전이나 화려한 아이디어에서 나오는 게 아니라는 점이다. 때로는 고집스럽게 한 가지에 매달리고, 눈앞의 문제를 차근차근 해결해나가는 것이 더 큰 변화를 만들어낼 수 있다는 걸 보여준다.
그리고 무엇보다 자신이 어떤 사람인지 정확히 알고, 그것을 부끄러워하지 않으면서도 다른 사람들과 협력할 수 있는 방법을 찾는 것이 중요하다는 생각이 들었다. 모든 사람이 비전가일 필요는 없고, 모든 사람이 사교적일 필요도 없다. 각자의 강점을 살려서 함께 일할 수 있는 환경을 만드는 것, 그것이 진짜 혁신의 시작이 아닐까 싶다.