자! 이제 항해를 떠나보자!
우리 자신이 되는 것, 우리가 할 수 있는 일을 하는 것, 이것이 삶의 유일한 목표다.
- 스피노자
이제는 진부하게 들리는 이 말을 처음 한 이는 고대 로마의 철학자 세네카라고 알려져 있다. 인생을 항해에 빗댄다면, 개발자의 삶 역시 쉽지 않은 항해다. 안타까운 점은 많은 개발자들이 그 항해를 오래 지속하지 못한다는 것이다. 버그와 이슈에 시달리고, 잔업과 철야에 지쳐가지만 지금 눈 앞에 닥친 코딩을 하는 것 외에는 별다른 대안이 없어 보인다. 버그와 씨름하고 이슈에 시달리다 보면 어느새 중년의 개발자가 되어간다. 빌게이츠 정도는 쉽게 될 수 있을 것만 같았던 패기는 사라지고, 생계형 개발자가 되어 오로지 가족들을 위해 살기도 한다. 그러다 보면 부지불식간에 개발자로서의 항해는 강제종료되기 마련이다. 파도에 떠밀리어 도달한 황량한 섬에 먹을 것 하나 구하기 쉽지 않은 결말이 부지기수다.
항해가 잘못되는 가장 큰 원인은 부정확한 경로 때문이다. 경로에 대한 확신이 없기 때문이다. 확신이 없으면, 파도에 몸을 맡길 수밖에 없다. 확신을 가지려면 지혜가 필요하다. 우리에게 필요한 지혜는 두 가지다. 자신을 아는 것, 그리고 자신 이외의 사람을 아는 것이다. 기술이 부족해서 개발자생활에 문제가 생긴다는 것은 잘못된 생각이다. 기술은 부차적이고 사소한 부분이다. 개발자의 삶이라는 항해의 방향키가 흔들리는 원인은 근본적으
로 자기 자신과 조직에 대한 무지로부터 비롯된다.
다니엘 디포의 소설 <로빈슨 크루소>의 주인공 로빈슨 크루소는 가상의 인물이지만, 타산지석으로 삼을만한 스토리를 가지고 있다. 그가 단 한번의 항해와 사고로 인해 무인도에 표류하게 된 것은 아니다. 그는 수십 년간 무인도에 남겨지기 전에도 이미 몇 차례 사고와 고난을 겪었다. 하지만 바다를 향한 동경이 가득했던 젊은 크루소는 혈기를 참지 못하고 다시 배를 타게 된다. 로빈슨 크루소는 가출한 다음 합류한 첫 번째 항해에서 죽을 고비를 넘기고 돌아온다. 배의 선장은 이번 항해가 혹독한 교훈이 되었을 거라면서 크루소에게 부모님이 기다리는 집으로 돌아가라고 말한다. 이에 크루소가 선장에게 물었다.
“선장님, 솔직히 대답해 주세요. 혹시 선장님은 이 직업을 후회한 적이 있으신가요?”
선장이 대답했다
“아니”
선장은 똑똑히 말했다.
결국 로빈슨 크루소는 젊은 날에 겪었던 일련의 시련을 모두 불식시키는 고난의 클라이막스인 27년 동안의 무인도 생활을 시작하게 된다. 선장에게 바다는 일이자 인생이었기에, 항해는 지혜와 경험을 축적하고 더 나은
항해를 가능하게 하는 여정이 될 수 있었다. 로빈슨 크루소에게 바다는 동경의 대상이었지만, 선장의 말마따나 그저 시련일 뿐이었다. 길고 혹독한 경험을 통해 바다라는 인생을 깨달은 크루소는 말년에 이르러 집에 돌아가는 해피엔딩을 맞이하지만, 그것은 소설이기에 가능한 결말일 뿐이다.
생각해보자. 개발자가 된 것을 후회한 적이 있는가? 아니면 지난 개발자의 삶을 돌이켜 후회되는 부분이 있는가? 지금은 어떠한가? 후회는 결핍의 증거다. 문제로부터 아무런 생각과 행동을 이끌어내지 못하는 것은 더 큰 결핍이다. 아무 생각이 없이 관성에 몸을 맡긴 채 코딩에만 열중하는 개발자들 역시 로빈슨 크루소와 별반 다를 게 없다. 로빈슨 크루소처럼 무인도에 홀로 남겨질 일은 없겠지만, 훗날 원치 않은 결말을 맞이하게 되면 일터에서 열심히 일했던 시간들은 그저 시련으로 남을 뿐이다. 시간이 흘러 자신이 타고 있는 배가 어디로 가는지를 여기저기 수소문해보지만, 그때는 이미 배의 방향을 돌리기 어려울 수 있다.
정확한 경로를 찾는 데는 여러 가지 방법이 있다. 북극성과 같은 별자리를 활용하는 법부터, 나침반과 같은 도구를 사용하는 방법이 있다. 또는 경험 많은 선배 항해사의 도움을 받을 수 있다. 어떤 경우든지 경로를 결정하는 것은 배의 방향키를 잡고 있는 본인의 몫이다. 중요한 것은 어떤 방향이든지 배의 키는 놓지 말아야 한다는 것이다. 방향을 모른다고 배의 키를 놓은 순간, 항해의 주도권은 자신에게서 멀어진다.
자신이 어떤 개발자인지, 그리고 어떤 개발업무를 하고 있는지부터 정리해보자. 최대한 객관적으로 현재의 자신과 상황을 파악하는 것이다. 자신이 누구인지도 모르는 상태에서는 어디도 갈 수 없다. 그 다음은 자신이 가고자 하는 목적지를 정해야 한다. 다시 얘기하지만, 자신이 누구인지 모르는 상태로 어디를 가고 싶은지 정하는 것은 아무 의미가 없다. 자신이 가고자 하는 그곳이 정말 본연의 내가 원하는 그곳인지 깊게 생각해봐야 한다. 일을 하는 방법보다는 일을 하는 이유가 더 중요하다. 현재의 배를 끝까지 타고 갈 수 있는 확신이 없다면, 다음 항구에서 배를 갈아타면 된다.
개발자라는 배를 타고, 원하는 그곳에 가고자 하는 열망이 있다면 그 다음 해야 할 일은 타고 있는 배와 동료들을 이해하는 일이다. 혼자 방향키 잡고 파수도 보면서, 노까지 저을 수는 없는 노릇이다. 혼자 개발을 하는 프리랜서라도 협업은 절대적으로 필요하다. 진정으로 원하는 곳으로 항해를 시작하게 되면 기술은 유용한 도구가 되며 자발적으로 습득하고 싶은 대상이 된다. 끝없이 펼쳐진 바다는 두려움의 대상이 아니라 흥미진진한 모험의 장이 된다. 수평선에 펼쳐지는 일몰과 장엄한 일출이 눈에 들어오게 된다. 바다는 더 이상 시련이 아니다. 개발업무를 하면서 마주치는 모든 것들이 고난이라는 이름 대신 의미 있는 과정과 그에 따른 지혜로 전환될 것이다.
모든 질문에 앞서 먼저 자신이 어떤 사람인지 깨달아야 한다. 본연의 자아가 진정 원하는 것이 무엇인지 아는 것이 모든 사고와 행동의 출발점이다. 이 근본적인 질문에 답할 수 있어야 진정한 개발자는 어떠해야 하는지와 개발 조직이 어떤 비전과 문화를 가져야 하는지 질문할 수 있다. 그 다음이 기술과 개발 노하우다. 이 일련의 과정에서 인문학으로부터 많은 도움을 받을 수 있다. 개발업무를 하면서 마주치게 되는 모든 일들을 자신이 어떻게 해나가고 있는지 직시해야 한다. 그것들은 결국 개발자의 모습뿐만이 아닌 본연의 나의 모습과 연결된다. 본연의 자아를 기반으로 단련된 삶의 촉수는 본질을 꿰뚫는 지혜와 통찰을 가져다 줄 것이다. 중용은 ‘하늘이 만물에게 부여해준 것은 본성이며 본성을 따라 행동하는 것이 도이며 도를 닦는 것은 가르침이다(天命之謂性, 率性之謂道, 修道之謂敎)’이라고 시작한다.
진정 원하는 개발자의 삶을 위해 이제 닻을 올릴 때다.
졸저 <개발자 오디세이아> 가 책으로 나왔습니다. 개발자들의 애환과 희망을 담으려 최선을 다했습니다. 많은 사랑 부탁드립니다^^