"IT 전문가교육" 이라는 정책이 있다. 노동부의 지원하에 교육기관이나 학원에서 실직자나 미취업자를 위해 IT분야에 종사하려는 사람들을 대상으로 IT 인력을 양성하는 정책이다. 학원에 가서 국비지원교육프로그램으로 교육받으면 교육비 일부나 전액 보조에 월 10만원정도의 훈련수당을 지급 받는 경우도 있다. 교육으로 양성하는 인력들은 대부분 소프트웨어분야의 인력이다. 요새 농담에 서울에서 돌 던져서 맞는 사람은 프로그래머 아니면 웹디자이너라는 말이 있다. 정확한 통계는 없지만 양산된 프로그래머와 웹디자이너를 의미하는 것인데 이 교육프로그램이 일조를 한 것으로 알려져 있다. 그러면 무엇이 IT 전문가이며 정말로 필요한 인력이 무엇인지를 소프트웨어측면에서 분석해 보자.
소프트웨어 개발인력에는 프로그래머, 소프트웨어 엔지니어, 시스템분석가, 아키텍트 등이 있고 보조 역할을 하는 인력으로는 웹디자이너, 시스템관리자, DB 관리자 등이 있다. 당연히 모든 것이 균형이 맞아야 이상적이다. 아키텍트는 건축가와 같이 전체 구조, 테크놀로지 선택등 지휘자의 역할을 하게 되며 시스템분석가는 시스템의 사양분석, 난이도의 평가, 업무할당 등 엔지니어를 통제하게 되며 엔지니어는 컴포넌트(요소) 레벨의 기술적인 디자인과 코딩을 하게 된다. 프로그래머와 소프트웨어 엔지니어의 정의는 회사마다 다르게 사용하지만 통상적으로 책임의 한계가 코딩인 경우가 프로그래머인데 엔지니어를 도와 컴포넌트의 구현을 담당하게 된다.
소프트웨어인력의 건전한 양적 구조는 피라미드형으로 꼭대기부터 아키텍트, 시스템분석가, 엔지니어, 프로그래머의 순이다. 웹디자이너나 관리자는 소프트웨어 개발시 필요는 하나 보통 상시로 필요한 기능은 아니다. 작은 사이즈의 회사에서는 프로그래머나 엔지니어들이 관리자의 역할을 대신하기도 한다. 보통은 피라미드의 상위층의 인력들이 하위층의 모든 기능들을 할 수 있는 능력을 갖고 있어야 한다.
미국의 경우는 피라미드 윗 부분의 아키텍트와 시스템분석가의 층이 상대적으로 두텁다. 그런데 갑자기 1990년대 후반의 IT 붐이 일어났을 때 엔지니어와 프로그래머의 인력이 모자라게 되었다. 그래서 외국인력을 도입해서 보충한 것인데 거의 대부분이 엔지니어와 프로그래머의 인력이었다. 회사에서의 핵심인력은 피라미드의 상위층인데 여기에는 외국인력을 거의 사용하지 않았다. 지금 한국의 현실은 프로그래머와 엔지니어의 층이 두텁다. 반대로 아키텍트나 시스템분석가의 층이 엷다. 시스템분석가나 아키텍트는 많은 경험을 가져야 가능하기 때문이다.
프로그래머를 분석해 보자. 프로그래밍처럼 쉬운 것은 없다. 누구든지 학원에서 몇 개월만 교육 받으면 다 프로그램 한다. 집에서 책 보고 혼자 배울 수도 있다. 주사 잘 놓는다고 의사가 될 수 없듯이 프로그래밍 잘 한다고 소프트웨어 엔지니어가 되는 것은 아니다. 엔지니어가 되기 위해서는 그에 필요한 교육이 병행되어야 한다. 보통은 대학의 전산학과에서 배운 지식이면 충분하다. 내가 10여년 근무했던 실리콘밸리의 여러 회사에서 동료중에 전산학과가 아니면서 소프트웨어개발을 한 경우를 본 기억이 없다.
물론 시스템관리자나 DB관리자의 경우는 예외이다. 전산학과가 아니었던 유일한 예외는 전기회로 시뮬레이션 프로그램을 개발할 때 같이 일하던 전기공학 전공한 동료들이 있었는데 그 친구들은 계속 자기 분야의 프로그래밍을 대학교에서부터 개발해 왔었다. 전산 전문가들은 내용을 모르기 때문에 도와주기도 힘들다. 하여튼 자기 목적에 맞게 프로그래밍은 잘 한다. 그래도 코드만 놓고 보면 전산 전문가들이 보기에는 훌륭하지는 않다. 이런 사람들은 오랜 경험이 있어도 소프트웨어 엔지니어 레벨로 올라갈 수 없다. 전산의 학문적인 지식이 부족하기 때문이다.
하여튼 정부의 지원교육의 결과 많은 프로그래머들이 생겨났다. 요즘에는 거품이 붕괴되어 수요도 적어지고 서로 경쟁하니 임금도 높아지기 힘들다. 프로그래머나 소프트웨어 엔지니어 구인광고를 내보면 많은 신청자가 학원에서 교육 받고 취업하려는 것을 확인할 수 있다. 어떤 분야이건 마찬가지이겠지만 막상 원하는 인력을 찾기는 힘들다. 프로그래머는 많은데 필요한 기술과 경험을 가진 상위의 전문인력을 구하지 못하는 현상이 벌어진다.
나는 웹디자이너 분야는 잘 모르지만 전문 웹디자이너가 말하기를 몇 개월 교육으로는 경쟁력있는 웹디자이너가 될 수가 없다고 한다. 원하는 회사에 따라 수요가 있을 수는 있으나 전문 디자인 교육을 체계적으로 받은 사람과 몇 개월 교육받은 사람과는 큰 차이가 있다고 한다. 프로그래머와 마찬가지로 양산된 웹디자이너는 많은데 막상 뽑으려면 원하는 고급인력은 찾기 어렵다고 한다.
그럼 어떻게 균형 있는 IT 인력 피라미드를 양성할 수 있는지를 살펴보자. 다행히 프로그래머는 양적으로 충분하니 당분간은 걱정하지 않아도 될 것이다. 지금 있는 인력의 수요를 걱정하는 것이 더 중요한 일일 것이다. 엔지니어는 프로그래머층이 자라면서 계속 합류하기 때문에 이것도 큰 걱정은 아니다. 당분간 프로그래머나 엔지니어층의 공급은 추가로 필요하지 않은 것 같다. 엔지니어층이 두터우면 프로그래머층은 걱정을 하지 않아도 된다. 엔지니어가 대체할 수 있기 때문이다.
반면 아키텍트의 층은 엷다. 그 이유는 아키텍트가 되려면 기술분야에서만 통상 10년 이상은 근무했어야 하는데 그럴 수 있는 환경이 부족하다. 보통은 승진하면서 기술이 아닌 관리쪽에 시간을 많이 소비하기 때문이다. 아키텍트는 방대한 지식을 가지고 있어야 한다. 모든 현재 기술과 신기술을 이해하고 있어야 하며 경험상으로도 엔지니어들을 지도할 수 있어야 한다. 또 국제 표준화기관에서 선도할 수 있는 역량도 있어야 한다. 즉 경험 외에도 교육의 고급화와 전문화가 필요하다. 일단 실전에서 멀어져 이론적인 지식만을 갖고 있으면 훌륭한 아키텍트가 되기 힘들다. 절름발이가 된다. 실전에 항상 접할 수 있도록 계속적인 노력을 기울여야 한다. 회사도 기술분야에 전념할 수 있게 경력관리를 회사차원에서 체계적으로 해 주어야 한다.
핵심 소프트웨어 개발인력을 생산하려면 계속적인 교육과 경험이 투자되어야 한다. 아키텍트 한 명이 일당백을 한다는 것을 염두에 두어야 할 것이다. 그럼 단기적으로 아키텍트가 필요하다면 어떻게 보충할 것인가? 직접 경험을 쌓기는 환경도 부족하고 시간도 오래 걸리니 그것을 대신할 수 있는 시뮬레이션 교육을 통해 간접경험으로 대신하는 수밖에 없다. 경험을 대신하는 모의훈련이기 때문에 정형화하기 힘들지만 가능은 하다. 단기간에 어느 정도는 효과를 볼 수 있을 것이라고 생각한다. 아키텍트가 없어도 소프트웨어 개발이 진행될 수는 있다. 문제는 비능률적이고 부실한 제품이 될 확률이 높다. 또 부실 여부는 금방 나타나지 않고 나중에 알게 된다. 시스템분석가에 대해서는 엔지니어에서 아키텍트로 가는 중간 경로이니 부연 설명할 필요는 없다고 생각한다.
프로그래머가 양적으로 많다고 소프트웨어 강국이 되는 것은 아니다. 고급 개발인력과 함께 균형을 이루고 있어야 하는데 인력 피라미드의 각 층에 맡는 다양한 교육과 경험이 병행되어야 할 것이다. 단기적으로는 교육의 내용을 전문화, 다변화하고 기간을 늘여서라도 필요한 인력을 균형있게 공급하는 것이 중요하다. 가장 쉬운 프로그래머 교육위주의 실업자 구제도 좋고 고용장려금도 좋겠지만 장기적으로 과연 어떤 IT 인력이 개인과, 회사와 국가에 가장 도움이 될지 검토할 때다.
전체댓글 0