많은 소프트웨어 회사들은 동일 직종 경험자를 선호한다.
취업사이트 개발자 채용공고를 보라. 대부분 동일 직종 경험자를 구하고 있다. 특히 심한 회사들이 금융회사와 게임회사다. 일부 특수 분야는 동일 직종 경험자가 꼭 필요한 경우도 있지만 그런 특수한 분야는 정말로 극소수다. 문제는 우리나라 대부분의 회사들이 동일 직종 경험자를 필요로 하는 개발구조를 가지고 있는것이다.
실리콘밸리 개발자들은 평균근속연수가 2년이 채 안된다고 한다. 게다가 비슷한 회사들을 왔다갔다하는 것이 아니고 천차만별 다른 회사들로 이동하는 경우도 많다고 한다. MS에서 오피스 만들다가 구글에서 웹애플리케이션을 만들고 애플로 이동해서 모바일쪽 개발을 하는 경우도 이상하지 않다. 개발자들은 이렇게 옮겨 다니는 것이 경력에 더 유리하고 경험도 풍부해진다. 연봉이 오르는 경우도 많다고 한다.
물론 아닌 케이스도 있다.
한국에선 이렇게 회사를 옮겨다니기가 쉽지 않다. 개발자들도 새로운 분야에 도전하거나 배우기를 꺼려하는 경우도 많지만 한국은 많은 회사들의 개발환경이 다른 분야에서 전환해온 개발자들이 적응하기가 쉽지않기 때문인 이유가 더 크다. 물론 개발자들이 자신이 일하던 분야에서 계속 편하게 일하고 싶어하는 경우도 많다. 개구리가 냄비 속에서 물이 서서히 뜨거워지는지도 모르고 있는 경우와 비슷하다.
한 분야에서 10년, 20년 일한 것이 꼭 문제는 아니다. 어떻게 일했느냐가 문제다. 그리고 20년간 한 분야에서 일한 개발자가 무슨 일을 할 수 있는 사람으로 성장했느냐가 문제다. 기계적으로 그 일밖에 못하는 사람이 되었다면 문제다. 그리고 다른 사람과 협업이 어려운 개발자가 되었어도 심각하다.
이렇게 개발자가 다른 직종으로 옮기기 어려운 환경은 개발자에게 큰 손해다. 직장을 옮기려고 해도 선택의폭이 확 좁아진다. 안그래도 시장이 작은데 갈만한 회사가 몇개 없다. 회사도 마찬가지로 사람을 뽑으려고해도 뽑을 사람이 없다. 업무에 대해서 생판 모르는 사람을 뽑으면 일을 시키는데 너무 오래 걸린다. 회사내다른 부서 사람을 데려와도 일하기 힘든 것은 마찬가지다.
비슷 비슷한 경력을 가진 사람들끼리 모여서 일을 하다보니 창의적인 아이디어도 없고 서로 가르쳐주는 것도 별로 없다. 제품은 혁신이 부족하며 개발자들도 성장을 하기 어렵다.
실리콘밸리 소프트웨어 회사들이 꼭 소프트웨어 개발자만 뽑는 것이 아니다. 물리학과, 천문학과, 수학과와같이 소프트웨어 관련학과는 아니지만 똑똑하다고 하는 사람들은 적극적으로 모셔간다. 똑똑하다면 소프트웨어 개발은 금방 배우고 다양한 생각을 가진 사람들을 유입시켜서 소프트웨어의 혁신을 유도하기 위함이다.
한국에서 회사들이 동일직종 경험자를 선호하는 근본적인 이유는 회사의 개발 시스템에 문제가 있기 때문이다. 시스템에 의한 개발이 이루어지지 않고 개발자들의 공력에 의존해서 주먹구구식으로 개발을 하다보니 이런 상황이 고착화되는 것이다. 개발을 하더라도 문서를 제대로 안만들고 내공이 뛰어난 개발자들이 주도를 해서 만들다 보니 후배들은 보고 배울 자료도 별로 없다. 후배에게 일을 시킬 때도 제대로 작성된 스펙이나 설계서를 기반으로 개발을 하는 것이 아니고 도제식으로 일을 시키는 경우가 흔하다. 선배들이 후배들옆에서 꾸준히 차근차근 조금씩 가르쳐주는 것이다.
이런 방식은 비용도 많이들 뿐만 아니라 계속 되기도 힘들다. 후배들이 제대로 개발에 투입되려면 문서가 엉터리라도 척 알아서 개발을 할만큼 알아야 한다. 그러려면 매우 오랜 시간이 걸린다. 개발자 입장에서 이렇게 자신의 시간을 배우기 위해서 투자를 하다보면 어떻게 다른 직종으로 옮겨서 또 이런 과정을 거쳐야 한단 말인가?
이런 현상의 최종 결과는 회사의 개발생산성 저하이고 기업간의 경쟁에서 뒤떨어지게 된다. 이는 개발자의처우가 낮아지는 결과로 순환되게 된다. 이런고리에서 탈출하려면 회사는 개발자의 공력에 의한 개발보다는 시스템에 의한 개발로 바뀌어야하고 협업, 공유문화를 발전시키기 위해서 노력해야 한다.
물론 개발자도 바뀌어야 한다. 자신의 개발 분야 한계를 너무 좁게 제한하면 안 된다. 어떠한 분야에서도 일할 수 있다는 마인드를 가져야 한다. 개발언어도 한두가지만 고집하면 안 된다. 물론 한가지 개발언어에 도사라면 웬만한 다른 개발언어는 쉽게 익힌다.
개발자는 협업을 잘해야 한다. 문서를 잘쓰고 기반 시스템을 잘 사용하고 개발 프로세스를 잘 따라야 한다. 문서를작성해서 다른 개발자에게 일을 시킬 수 있을 만큼 문서를 잘 써야 한다. 혼자서 개발을 하더라도 여러명과 협업을 하는 것처럼 문서를 쓰고 프로세스를 따라야 한다. 이렇게 개발하는 것은 개발을 가장 효율적으로 하는 것 외에도 개발자 실력 향상에 도움이 된다.
그리고 개발자는 새로운 신기술을 꾸준히 익혀야 한다. 어떤 기술이냐에 따라서 대응방법이 다르다. 어떤것은 용어만 알아두기도 하고, 어떤 것은 한시간을 투자해서 내용을 공부하기도 한다. 어떤 기술은 하루정도 투자해서 뭔가 만들어보는 등의 직접 경험도 해본다. 이는 내가 지금하고 있는 일과의 연관성, 미래에 내가무슨방향으로 발전해 나갈 것인지 계획에 따라서 다르다. 언제든지 전투가 벌어지면 최대한 빨리 사용할 수있도록 무기 사용법을 익혀 놓는 것이다.
관련기사
- 55세 개발자가 막내인 개발팀2015.04.16
- 개발자간 공유 문화 정착이 힘든 이유2015.04.16
- SW개발 생산성과 야근의 역설2015.04.16
- 개발자에 중요한 습관 '중복 없애기'2015.04.16
좋은 회사들은 동일분야 경험자보다는 좋은 개발자를 채용한다. 똑똑하며 협업을 잘 하는 개발자를 채용한다. 당장 일하는데 필요한 개발 언어는 한번도 해본적이 없어도 된다. 똑똑한 개발자라면 개발 언어는 일주일이면 기본은 하고 6개월이면 도사가 된다. 이렇게 개발 분야와는 무관하게 좋은 개발자를 채용하는 환경은 회사에게도 필요하고 개발자가 일하는 좋은 환경이 된다는 것과 같은 의미다.
회사와 사회가 바뀌기를 기다리기 보다는 개발자 자신부터 노력을 해야 한다.
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.