brunch

You can make anything
by writing

C.S.Lewis

by 정주홍 Apr 28. 2019

뛰어난 사람이 떠난 자리는 아름답다

이번 주말에는 오랜만에 가족들이 모두 모였다. 오랜만에 만나 이런저런 이야기를 하던 중 어쩌다 보니 실력 있는 사람에 대한 이야기를 하게 됐다. 개발자 하면 또 실력에 목숨 걸만 한 직업 아닌가. 흥미가 일어 이런저런 이야기를 많이 나눴는데 본질적으로 비슷하다 느끼는 부분들이 있었다.


내 친형은 요즘 들어 외과 수술을 많이 하고 있다고 했다. 점심에 예약했던 식당에 출발하기 전 갑자기 응급실 콜이 들어와서 식당의 예약 시간을 미루고 수술장에 갔다 오는 것을 보고 이제 정말 외과의구나 싶었다. 그 삶이 얼마나 고달픈지에 대해서는 이따 다루기로 하고, 먼저 실력이라는 것에 대해 이야기해보자.

다들 알다시피 의사의 세계에는 명의라는 사람들이 있다. 정말 너무 뛰어난 의술을 갖고 있는 분들이라서 전국에서 그 명의만을 바라보고 찾아오는 사람들이 있을 정도인 분들이다. 내 친형도 명의라 불리는 분들과 접하게 되는 경우가 있는데, 예를 들면 명의가 수술한 뒤의 환자를 돌보게 되는 경우이다. 명의가 수술을 잘하면 잘했지 뭔가 또 다를 게 있을까? 흥미롭게도 수술이 끝난 뒤에도 많은 것이 다르다고 한다. 단적인 예로, 수술이 끝난 뒤 부작용이 생기는 것을 본 적이 거의 없다고 했다. 다른 의사들도 그 명의가 수술한 환자를 보면 감탄한다. 몇 달이 지난 뒤에 봐도 또 감탄한다. 반면, 그렇지 않은 일반적인 의사가 수술한 환자는 나중에도 계속 뭔가 문제가 생긴다고 한다. 뭔가 익숙한 이야기이지 않은가?

나는 개발자의 생태도 크게 다르지 않다고 생각한다. 훌륭한 엔지니어가 지나간 자리는 아름답다. 그 사람이 만들어놓고 간 컴포넌트는 정말 문제를 잘 일으키지 않는다. 가능한 많은 예외들이 이미 잘 처리되어 있다. 확장성도 이미 고려되어 있고, Auto scaling도 잘 되어 있다. 마치 SaaS를 쓰는 것처럼 문제없이 잘 돌아간다. 문제가 생길 때가 아주 가끔 있다. 그럴 때면 문제가 뭔지 쉽게 인지되고 쉽게 해결된다. 이 얼마나 훌륭한 소프트웨어인가.

정말 뜬금없는 요구 사항이 추가되지 않는 이상 그렇게 그 컴포넌트는 꾸준히 잘 작동한다. 즉, 그 컴포넌트를 만들어놓은 개발자는 요구 사항을 잘 이해하고, 또 추가적으로 생길 수 있는 요구 사항 등에 대해 유연하게 대처할 수 있도록 잘 설계해놓았다는 뜻이다. 반면, 실력이 떨어지는 개발자는 당장 요구 사항을 만족하는 것조차도 쉽지 않아 버그를 마구 만들어낸다. 테스트도 형편없다. 테스트가 형편없으니 유지 보수가 쉬울 리가 없다. 그 컴포넌트를 이어받는 사람은 몇 배의 노력을 기울여서 전체적인 개선을 해내지 못하면 끊임없이 고통받게 된다. 


부끄럽지만 예전에 자그마한 자리에서 강연할 일이 있어 이야기했던 것이 있다. 하지만 지금도 다르지 않게 생각한다. 바로 개발자는 직업은 전문직이라는 것이다. 다만 전문직을 자처할 수 있는 개발자는 단순히 코딩을 할 줄 아는 사람들이 아니라, 그중에서도 앞서 언급한 것과 같은 뛰어난 역량을 가진 사람들이다. 그 자리에서 내가 이야기한 것은 어째서 암 수술을 받으려 할 때는 실력 있는 외과의를 찾으면서 좋은 소프트웨어를 만들기 위해 실력 있는 개발자를 찾기를 주저하는가에 대한 주제였다. 

이미 질릴 정도로 널리 퍼진 이야기지만 실력 있는 개발자와 그렇지 않은 사람의 생산성은 적게는 몇 배, 많게는 수십 배 이상 차이 난다. 단순히 몇십 배 차이이면 다행이지, 역량이 없는 사람은 아예 흉내조차 낼 수 없는 기술의 영역이 있다. 제품 분석 도구 중 Amplitude라는 제품이 있다. 이미 기술적으로 훌륭하다는 것이 널리 퍼진 Google 같은 회사를 제외하고 최근 몇 년 간 Amplitude만큼 내게 큰 감명을 준 제품이 없었다. 왜냐하면 다른 제품들의 경우 그나마 어떻게 만들면 되겠다는 아이디어라도 생각났었는데 부끄럽게도 Amplitude의 그 기능들은 쉽사리 생각해내기 어려운 수준이었기 때문이다. 그러한 기능들을 개발했던 Amplitude의 CAO는 Jeffrey Wang라는 사람인데, 기술 블로그를 통해 볼 수 있는 그의 글들을 봐도 적잖은 내공을 가진 사람임을 짐작할 수 있다. 

나는 Jeffrey Wang 같은 사람이 만들어낼 수 있는 것을 그럭저럭 4년을 교육받아 졸업한 학부생 100명을 모아놓아도 해낼 수 없을 것이라고 생각한다. 단순히 쉬운 예를 들자면, 학부생 100명 모아놓고 지금의 gcc를 만들라고 하면 만들 수 있을까? 아마 어려울 것이다. 누구도 쉽게 범접할 수 없는 전문성을 가진 이런 사람이 전문직이라 할 수 있는 사람이 아니라고 할 수 있을까? 


다시 아픈 현실로 돌아가 본다. 명의라 불리는 사람들 중에 생각보다 일반적인 행복한 삶을 누리는 사람은 몇 없다고 했다. 그분들이 그런 역량을 갖추기 위해 얼마나 어려운 길을 걸어왔을까. 얼마나 고통스러웠을지는 짐작하기 어렵지만 쉽지 않았을 것이라는 것은 확실히 알 수 있을 것이다. 일부 자신의 삶을 포기하고서라도 내가 더 잘하고 싶은 것에 그 삶을 걸었을 것이라 추측한다. 수많은 사람들을 살려내면서 환자들에게 아름다운 의사로 남지만 가족들에게는 좋은 아버지, 어머니가 되기 어렵다. 그렇게 환자를 돌보기 위해 내는 시간은 고스란히 가족들에게서 떼어낸 시간이기 때문이다. 

개발자로서 나는 어떻게 해야 할까. 지금의 나는 홀로 살면서 내가 하고 싶은 만큼 소프트웨어라는 것에 시간을 쏟아붓고 있지만 나중에도 내가 그럴 수 있을까? 워크 라이프 밸런스라는 것이 현실적으로 가능한 것인가 의구심이 든다. 전문가로서 살아가기란 쉽지 않음을 다시금 깨달으며, 명의들에 대한 존경심을 다시 한번 느낀다. 나도 소프트웨어의 명장으로서 살고 싶다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari