티스토리 뷰

장난치기

미국에서 소프트웨어 개발자로 일하기

알 수 없는 사용자 2008. 8. 4. 16:28

Source : http://devnote.net/14

저는 한국에서 개발자 생활 7년 이상 미국에서 3년 이상 해오고 있습니다. 따라서 한국과 미국 생활의 다른점 들을 생각나는대로 적어 보도록 하겠습니다. 물론 소프트웨어 개발자의 관점입니다.

미국은 다민족 다인종 국가이며 거대한 면적의 국토를 소유한  세계 최강대국 중의 하나이며 컴퓨터관련 기술이 가장 발달된 나라이기도 합니다. 미국은 그 넓은 땅 덩어리 만큼이나 다양한 사람들이 있으며 물론 소프트웨어 회사나 개발자들을 보면 그 실력에 있어서나 하는 일에 있어서도 매우 다양함을 알 수 있습니다.

우리나라는 작은 국토에 같은 민족으로 구성된 사람들이 비숫한 교육을 받고 자랍니다. 따라서 사고방식도 비숫하고 개개인의 개성이나 성격 그리고 업무를 하는데 있어 실력차이도 그다지 큰 편차를 보이지 않습니다. 하지만, 모두 짐작하듯이 미국은 여러 민족이 모여 있으니 당연히 개개인이 매우 다른 점들이 많습니다. 따라서 미국인들은 개개인의 차이점을 존중하면서도 자신의 영역과 문화를 지키려고 노력합니다. 미국을 말할 때, 일단 이러한 한국과는 매우 다른 기본적인 문화적 차이를 이해해야  하겠습니다.

미국은 세계적으로 유명한 소프트웨어 회사나 개발자들의 대부분을 소유하고 있기도 합니다. 그러니까 컴퓨터 기술에 있어서는 종주국이라고 할 수 있겠죠. 그러나, 그렇다고 모든 사람이 첨단기술에 익숙한 것은 아닙니다. 첨단 기술에 종사하거나 하이테크 기술에 대해 잘 아는 미국인은 소수에 불과 합니다. 미국은 언제부터인가 국가적으로 IT산업을 발전시키려고 노력해왔으며 해외의 우수인력도 많이 받아들여 미국의 차세대 성장 동력으로 만들려고 한 것 같습니다.

미국에서는 한국과 같이 어주 어릴 때 부터 공부를 심하게 시키지 않습니다. 공부는 대학에서 가장 열심히 하게 되는데 그 때 자신이 원하는 분야에 흥미와 소질을 가진 학생들은 그 분야를 깊이 파고들 수 있는 기회가 주어지는 것 입니다. 한국에서는 대학에 가기 위해 엄청난 노력을 기울이고 일단 대학에 가면 그다지 열심히 하지 않는 것과는 반대입니다. 제가 느끼는 단점은 미국에서는 대학 이전까지 교육이 별로 대단치않고 한국에서는 자신 스스로 결정하고 노력하여 무엇을 하겠다고 하여 대학에 가는 사람이 적다는 것입니다.

회사에서 사람을 뽑는 것을 예로 들면 미국은 회사에서 필요한 어떠한 일을 수행할 능력이 있는가에 가장 큰 초점을 두고 사람을 뽑습니다. 한국도 요즘에는 비슷하지만 아직도 일단 괜찮은 사람을 뽑아 놓고 보자는 식이 많습니다. 물론 어느 편이 좋다 나쁘다고 단정할 수는 없습니다. 한국에서 하는 식의 동양적인 사고방식이 좋은 점도 많다고 생각합니다. 미국에서도 구글과 같은 회사는 좋은 사람이면 먼저 뽑아 놓고 일을 찾는 경우도 많습니다.

회사생활에 있어서도 한국은 인간 관계를 업무수행과 함께 매우 중요시되며 업무 중에 사적인 이야기나 잡담을 하는 경우도 많습니다. 미국은 회사에서 사적인 이야기나 잡담하는 일은 그리 많지 않습니다. 사실 그럴 시간적 여유가 많지 않습니다. 그리고 회식과 같은 회사 직원들끼리 정기적인 어울림도 매우 드문 편입니다. 공과사의 구별이 비교적 명확하여 회사에서는 최대한 바쁘게 일하여 빨리 업무를 처리하고 집으로 돌아가 자기 사생활을 즐기려는 경향이 강합니다.

미국에서 해고는 매우 자유롭습니다. 물론 퇴사도 자유롭습니다. 회사가 어렵거나 능력이 안되는 사람이 있다고 판단되면 가차없이 해고합니다. 또, 사원도 돈 더 준다는 회사가 있으면 별 눈치 보지 않고 옮겨가는 경우도 종종 있습니다. 한마디로 어느 정도 투명한 인력시장이 형성되어 있는 것입니다. 여기에 좀 비인간적인 면도 있지만, 효율적인 면도 있습니다.

미국에서 소프트웨어 개발자로 일하는 것은 한국에서와 완전히 다르지는 않습니다. 오히려 코딩을 하는 과정은 매우 비슷합니다. 좀 다른 점이라면 일이 매우 세분화 되어 있고, 앞서 얘기한 바와 같이 사람을 뽑을 때도 해당 업무를 할 수 있는 능력이 있는 사람을 찾아 뽑으려는 경향이 강합니다. 그리고 개개인에게 주어진 업무 영역에 집중하게 만들어 주려고 합니다. 한국에서는 개발 스케줄 자체도 매우 빡빡하고 개발자가 자신이 맡은 부분 외의 여러가지 부수적인 업무가 생겨나는 경우가 많습니다. 그리고 일단 결과를 보여주기 위해 빠른 속도의 코딩을 요구하며 프로그램 내부의 데이터 구조나 알고리즘을 최적화할 시간은 별로 주어지지 않는 편이고 무시되는 경우가 많습니다. 아마도 이점에서 미국이 좀 더 체계적인 개발 프로세스를 가지고 있다고 보여지는군요.

미국에서는 석박사 학위를 갖고도 40대 50대까지 그냥 프로그래머로 일하는 사람이 꽤 많습니다. 우리 나라는 나이와 직위라는 것이 매우 중요해서 일단 나이가 많거나 학위가 높으면 직위도 높아야하고 년봉도 많아야만 합니다. 실력이 좋든 안좋든 말이지요. 미국에서는 수직적 직위보다는 역할에 따른 타이틀이 붙습니다. 즉 xxx engineer, xxx associate, xxx manager, xxx specialist 등등입니다. 물론 group manager, vice president, ceo 이러한 타이틀은 직위가 높고 년봉도 많이 받겠지만 한국처럼 대리, 과장, 차장, 부장 등등 으로 마치 계급처럼 따라 붙지는 않습니다.

엔지니어의 경우는 사람관리, 프로젝트 관리와 같은 매니지먼트 역할을 하기 싫어하고 자신에게 주어진 개발에만 몰두하려는 사람들이 있는데 이러한 사람들은 은퇴할 때 까지도 그냥 엔지니어로 남습니다. 아무리 자신의 매니저라고 자신을 부리는 상사로 생각되진 않습니다. 보다 합리적인 시스템이라고 할 수 있죠. 우리나라에서와 같이 "시키면 한다"식은 좀 덜한 편입니다.  또, 한국회사의 경우 프로젝트를 관리하는 프로젝트 매니저와 그 보다 윗단계인 사람을 관리하는 매니저의 구분이 명확치 않습니다만, 제가 본 미국 소프트웨어 회사는 이런 구분이 보다 명확합니다. 프로젝트 매니저는 프로젝트의 일정이나 작업을 분류하고 개인에게 할당하는 임무를 맡습니다.  사람을 관리하는 매니저는 년봉과 같은 대우 문제, 동료나 다른 직원들간의 트러블을 상담해주는 사람입니다.

일이 마음에 들지 않거나 뭔가 잘못되었다고 생각되면 누구든 함께 토론하여 합리적인 결론을 이끌어 내려고 하는 토론 문화가 보다 발달되어 있다고 생각되는군요.

개발자들이 자존심이 센 것은 한국이나 미국이나 마찬가지 입니다. 실력이 좋을수록 자존심이 세지고 남에게 지기 싫어하는 것은 미국 개발자들이 더 심하다고 할 수 있습니다. 특히 그들은 학창시절 동안 이른바 사회성이 부족한 Geek이나 Nerd라 고 불리우며 때로는 놀림을 당하며 컴퓨터에만 매달린 사람들이 많습니다. 자신의 실력은 곧 년봉으로 연결되므로 다른 개발자보다 잘나기 위해 부단히 노력해야만 합니다.  해고가 자유로운 미국에서는 잘리지 않기 위해서라도 부단한 자기개발은 필수입니다.

그런데, 소프트웨어가 복잡해지고 일도 세분화 되면서 모든 면에서 최고인 천재 개발자는 사실 거의 불가능해졌습니다. 결국은 어떤 한 분야에서 뛰어나고 오랜 경험을 가진 사람들이 인정받고 년봉도 많이 받게 되는 것 같습니다.

마이크로소프트와 IBM과 같은 거대 기업을 살펴 봅시다. 이곳에는 세계적으로 내노라 하는 개발자들이 많이 모여 있습니다. 하지만, 각자의 맡은바 임무는 매우 세분화 조직화되어 자신의 영역이 아닌 부분을 자세히 알기도 힘듭니다. 큰 회사들에서 소프트웨어 개발은 점점 자동차나 비행기와 같은 복잡한 기계를 조립 생산하는 것과 같은 프로세스로 일반화 되어 가고, 개발자는 그 조그만 파트의 일부분을 담당하게 되어 가고 있습니다. 이것은 소프트웨어 분야가 이제 초창기 발전 단계를 벋어나고 있다는 것을 말합니다. 새로운 것을 모두 처음부터 끝까지 해볼 수 있는 즐거움은 점점 찾기 어려워지고 있기도 하지요.

미국의 IT회사들은 아직도 비교적 높은 이직률로 인하여 회사 내부의 많은 정보가 결국 사람을 따라 여러 회사를 돌고 있습니다. 다른 직종도 마찬가지지만, IT에서는 사람이 가장 중요하다고 하겠습니다. 미국 개발자들의 능력과 지능은 한국 개발자와 큰 차이는 없습니다. 오히려 일반인을 기준으로하면 대다수가 대학 교육을 받는 한국인들이 평균지능이 우수할 것입니다. 하지만, 누구나 자신의 능력을 최대한 발휘할 수 있으려면 주어진 인프라 혹은 환경이라고 할까요 이러한 것이 매우 중요합니다. 미국을 보면 IT기업들이 많이 있는 몇몇 도시는 그 도시 분위기 자체도 엔지니어 냄새가 납니다. 그리고 개발자에 대한 대우도 경험과 능력에 따라 다양하게 주어지고 비교적 나쁘지 않습니다. 이러한 환경은 자신의 업무에 보다 더 집중할 수 있도록 만들어 주는 것 같습니다.