먼저 이 글을 쓰기 전에, 소프트웨어 개발의 본좌는 미국이라는 것을 미리 밝혀둔다. 가장 소프트웨어 개발의 역사가 긴만큼, 그들의 능력, 환경 그리고 소프트웨어에 대한 관점은 너무도 한국 개발자… 심지어 아시아쪽 개발 환경하고는 다르다는것을 ….
요즘 회사 내적으로 많은 변화를 겪고 있는게 사실이다. 그래서 개발자 채용에 대한 문의가 참으로 나에게는곤혹스럽기 그지 없다. 그러니 이 글을 보시는 분들중에 이쪽(야코)으로 오시려 생각하는 분들은 나에게 문의하지 않았으면 좋겠다. 내 개인적인 의견을 필요로 해서 문의를 해오시는 분들에게 거짓말 하고 싶지는 않기 때문이다. 그럼에도 불구하고…. 나 개인적으로는 한국의 개발자로서 하기 힘들 경험을 하고 있다는 것은 사실이다. ^^;
참 아이러니 하지 않나? 회사, 팀 분위기는 그렇게 좋지 않은데, 개인적으로는 좋은 경험을 하고 있다니 말이다. ㅎㅎㅎㅎ
한국의 개발자 경험…. 5년이 지나면 실력이 거기서 거기가 되는 구조… 5년 넘어가면 개발 그만두고 매니저 하라는 윗선의 압박… 뭐 이런식의 경력 변화가 일반적이여서 고수 소프트웨어 개발자가 없다고 난리지만, 나는 나름대로 이건 한국 소프트웨어 여건상 정확한 판단에 기반한 윗선의 강요라고 생각한다.
사실 한국에서 10년이 넘은 소프트웨어 패키지나 플랫폼을 얼마나 찾아볼 수 있나 생각해보면 그 답이 나온다. 사실 10년을 넘어가는 나이를 가진 플랫폼 그리고 지금 시작하지만 10년을 넘게 바라보고 개발하는 플랫폼이 몇이나 있을까?
이게 바로 그 답이 되는 질문이다. 10년이 넘는 플랫폼을 어제 새로 디자인한 것처럼 깔끔하게 유지해온 능력은 어디서 올까? 수많은 개발자들이 거쳐간 플랫폼의 코드가 누더기가 되어야 되는게 우리가 생각하는 통념인데, 이상하지 않나?
내가 한국 개발자로서 하기 힘든 경험을 하고 있다는 이야기는 바로 이 답을 알려준다. 내가 몸담고 있는 프로젝트는 야후!가 인수한 검색업체의 한 플랫폼이였다. 이 역사는, 내가 본사 출장을 갔을때 프로젝트 맴버중에 가장 나이가 많은 할아버지 개발자가 알려준 사실이다. 사실 코드를 보고 있자면, 야후!가 아닌 회사의 코드나 데이터를 많이 볼 수 있어서 이전부터 궁금했던 점이였다.
나는 이 플랫폼에서 아시아 변방의 한 나라 대한민국의 한글처리에 대한 코드를 만들어내는 역할을 맡았다. 구현을 하기 전부터 수많은 리서치와 리뷰… 그리고 코드 구현 그리고 언제 끝날지 모르는 코드 리뷰, 수많은 테스트 방법들…드디어 커밋… 그리고 반복…
이 과정은 내가 상상했던 그 이상의 아주 체계화된 절차였다. 코드리뷰시 if문 하나 추가하는데도 수많은 고민이 필요했고, 이를 OOP 방식으로 상속해서 처리할 수 없을까 하는 고민을 여러사람들이 함께 했다. 개발하는 나조차로 이런 세밀한 과정들이 정말 필요한건지 의심을 수도없이 했다. 플랫폼은 점점 처음부터 한글처리부분이 들어갔던 것처럼 진화해 나갔고, 내가 참여한지 1년이 지난 지금 현재 릴리즈를 앞두고 있다.
10년이 넘게 플랫폼 코드를 이정도로 완성도 있게 만들고 유지한 힘이 바로 미국 소프트웨어 공학의 힘이였던 것이다.
10년이 넘을 정도면 이 플랫폼 코드 및 문서, 역사를 자기 손금 보듯이 볼 줄 아는 개발자들이 필요할 것이다. 그래서 이들 고수 개발자들이 더욱 필요하게 되는 것이다.
플랫폼은 개발자와 함께 성장한다고 생각한다. 개발자가 플랫폼을 만들고, 그 플랫폼이 그를 많은 경력에 상응하는 고수 개발자로 만들어 준다. 서로에게 반드시 필요한 악어와 악어새의 관계처럼 말이다. 처음에 이 개발자는 코드의 말단을 만들었을테고, 점점 코어로 향하다가… 시간이 지나, 어떻게 하면 플랫폼이 패닉에 빠지지 않고 깨끗한 모습으로 성능향상 및 기능추가를 할 수 있을까 하는 고민들을 플랫폼이 던져줬을 것이다. 플랫폼의 나이가 들어가면 갈수록 이전에 던지지 않았던 새로운 소프트웨어 공학적 이슈를 개발자들은 끊임없이 받아왔을 것이다. 그런 서로에 대한 피드백을 기반으로 서로 누구도 밟지 않은 영역으로 성장해 나가는 것이다.
이런 과정이 진짜 고수 개발자가 태어나는 과정이라고 생각한다. 한국에서 기껏해야 5년 정도 유지되는 소프트웨어 플랫폼이 어찌 진짜 10년 만큼의 실력을 지닌 개발자들을 만들 수 있었겠나? 그래서 5년이 넘으면 개발자를 더 이상 안해도 된다고 윗선에서 판단하는게 아닐까 한다. 정말 내가 유추한것이 사실이라면 생각보다 경영자들은 정말 똑똑한 것이다.
그럼 한국은 동쪽 아시아에서는 그나마 잘 하고 있나? 하는 질문이 있을수 있는데… 사실… 한국이 잘 해서가 아니라..모두 못해서 문제다. 대만, 홍콩의 유명한 대학을 나온 사람들과 일해봤지만… 그들도 한국 개발문화와 크게 다르지 않았다. 개발능력은 절대 학벌, 작성한 코드 라인수, 이쪽에서 일한 년수로 계산되지 않고, 개인이 어떤 프로젝트를 해왔느냐 그리고 어떤 개발문화에서 어떤 플랫폼 개발을 어느정도 했느냐로 책정해야 한다고 생각한다. 이 면에서 이쪽 아시아 국가들의 소프트웨어 개발 수준이 거의 비슷하다는 이야기가 나오고 실제 내 경험상 그렇다.
내 글을 보시는 분들이 아마도 개발자들이 많을 거라 생각한다. 개발자라면 한번정도 큰물에서 놀아보고 싶다는 생각을 어렴풋이 해봤을 거라 생각하는데, 그러나 여러분들이 어렴풋이 생각하는 것보다 미국 개발문화에서 배울게 너무 많다는 것을 혹시라고 관심이 있을 개발자 분들에게 말씀 드리고 싶다. 나로서는 고작 1년 넘게 코드를 공유하며 동료로 일했을 뿐임에도 이렇게 느끼는데 계속 일을 한다면 어떤것을 보고 배울지 정말 기대되지 않을까?
그나저나, 개인적으로 이 순간에도 참 많은 고민이 된다. 이미 체계화되고 증명된 개발문화에 대한 맛을 봐버린 나로서는… 쉽게 다른 회사에 적응하기 힘들거라는 생각을 해본다. 그렇다고 내가 문화를 만들 수 있는 배경이나 힘이 있는것도 아니고 말이다. 그래서 지금보다 앞으로 이 프로젝트가 끝나고 난 후가 가장 걱정되는게 사실이다.
플랫폼, 개발자의 나라 미국으로.. by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.