‘우리나라 프로그래머는 왜 …’ 그 이후
‘우리나라 프로그래머는 왜 프로그래밍 경력이 10년 미만일까?‘라는 글을 블로그에 포스팅 한 이후로 많은 분들이 많은 의견을 주셨습니다. 관련해서 답글로 주신 많은 분들의 의견들과 개인적으로 말씀해주신 분들의 의견들을 한번 정리 해보아야 겠다는 생각이 들었습니다. 그러던 중 아주 우연히도 요즘 읽고 있는 ‘CEO 안철수, 지금 우리에게 필요한 것은’ 에서 정말 꼭 같은 고민의 글을 읽을 수 있었습니다. 더욱 놀라운 것은 순서만 바뀌었지 저가 쓴 글에 의견을 주시었던 분들이 지적해 주신 내용과 똑같은 분석을 안철수님 (안철수 님이라고 하는 호칭이 조금 어색하긴 하지만 제가 그분을 회장님이라고 불러야 할 이유는 없기에 그냥 이글에서는 안철수님!)께서 해주셨더군요.
안철수님이 지적해 주신 내용과 여러분들이 말씀해 주신 부분을 정리 해보면, 10년 넘는 경력의 고수 프로그래머가 나올 수 없는 이유는 3가지로 정리 될 것 같습니다.
-. 개발자 스스로 코더에 머무르고 있는 마인드 문제 (곱슬최씨님, dobiho님)
-. 나이가 들어서는 전문가로 남을 수 없게 만드는 사회 통념 및 회사 제도 (너무 많은 분들)
-. 국내 소프트웨어 산업의 부진 (lovejin님, LENA님, luzluna님)
첫번째 문제는 프로그래머의 정의에서 부터 이야기 해야 될 것 같습니다. 곱슬최씨님과 Dobiho님이 정확하게 지적 해 주셨는데요. 안철수님도 같은 관점에서 코더에서만 머무를 것이 아니라 시스템을 설계하고, 분석하는 시스템 아케텍처를 그려나갈 수 있는, Dobiho님 표현과 같이 큰 프로그램을 하고자 하는 마인드가 필요 하다고 지적해 주셨습니다. 이 부분은 프로그램 경력이 많은 신 분들 일 수록 많이 지적 해 주신 것 같습니다. 프로그래밍이라는 정의가 단순히 코딩을 하는 부분에 갇히지 말고 큰 프로그램으로 발전 할 수 있는 각자의 노력이 필요 할 것 같습니다.
두번째 문제는 전문가로 남을 수 있는 회사 제도가 꼭 필요 한 것 같습니다. 처음에 글을 썼던 취지가 그런 것이 었듯이, 그리고 많은 분들이 지적해 주신 것 처럼 관리자로 나아가고자 한다면 관리자로, 전문가로 나아가고자 한다면 전문가로 나아갈 수 있는 회사 제도가 필요 한 것 같습니다. 이 부분은 길게 이야기를 하지 않아도 모두들 공감하는 부분인 듯 합니다.
세번째는 국내에서는 그렇게 많은 경력의 분들의 필요할 만한 큰 프로젝트가 없다는 슬픈 현실 입니다. 사실 닭이 먼저인지 달걀이 먼저인지 하는 부분에 대한 의문이 남긴 하지만, 국내 소프트웨어 산업 전반의 부진은 국내 기업들이 많은 생각의 전환이 필요하며, 더 크게는 국가 차원에서 풀어나아가야할 문제라고 생각됩니다. 사실 그만한 인적 자원이 위의 두가지 이유에서 많지 않다는 점도 어려운 점 중의 하나라고 생각합니다. 가장 풀기 힘든 문제이기도 하겠지요. 관련해서 생각해 본 것은, 우리나라 내수만을 생각하고 어떤 사업을 한다면 절대 ROI가 나오지 않을 것입니다. 그렇기에, 우리나라 소프트웨어 기업들도 (인터넷 기업을 포함하여) 언어의 장벽을 넘고 문화의 장벽을 넘어 세계를 시장으로 나아가야 한다고 생각합니다. 얼마전 MS Korea에 계신 분과 맥주를 마시면서 들었던 국내 기업의 세계 진출의 필요성을 오늘 다시 한번 느끼게 됩니다.
다시한번 많은 분들의 좋은 의견 감사드리며, 작은 바램이라면 이런 문제가 문제 제기의 차원에서 그치지 않고 실제 소프트웨어 기업, 인터넷 기업을 꾸려가시는 경영진 분들께서 조금이라도 공감을 하셨으면 하는 바램이 있습니다. 어떻게 그런 분들의 공감대를 이끌어가고 나아갈지는 같이 더 고민 해야 될 문제 인 것 같습니다.
우리나라 프로그래머는 왜 프로그래밍 경력이 10년 미만일까?
전 프로그래머가 아닙니다. 프로그래머와 함께 일을 하는 직종의 일을 하고 있지요. 제 주변에서 많은 프로그래머를 보고 겪어 왔습니다. 경력이 짦은 사람, 경력이 많은 사람, 팀웍이 잘 맞는 사람, 그냥 그런 사람.. 그런데 보면서 정말 아쉬웠던 점이 있었습니다.
사실 어떤 일이든 많은 경험은 아이디어 만큼이나 힘을 발휘합니다. 고등학교 때 수학 문제를 풀때도 정말 머리 좋은 친구들은 공식만 알아도 금새 응용해서 풀기도 하지만, 그렇지 못하더라도 많은 응용문제를 풀어본 친구들은 어떤 문제를 만나도 한번 풀어본 문제인 양 거의 외워서 풀기도 합니다. 사실 고등학교 시절에 이 두 유형 중 뒤의 유형의 친구들이 더 공부를 잘 한다는 소리를 들었던 것 같습니다.
업무에서도 마찬가지 인 것 같습니다. 여러 경험을 해 본 분들은 여러 유형의 상황 속에서 미리 연습문제를 수 백가지 풀어본 것과 같은 능력을 발휘 할 것입니다. 같은 논리가 프로그래밍에도 적용될 수 있을 것 같습니다. 특히 프로젝트 진행에 있어서는 여러 다양한 변수들이 발생 할 테고, 그 중에서 많은 경험이 있다는 것은 실패 확률을 현저하게 줄이는 역할을 할 것입니다.
그러나 주변을 보면, 많은 경력을 가지고 있는 프로그래머를 찾는 다는건 정말 하늘의 별따기 보다 힘듭니다. 10년 이상의 경력이라는 건 도저히 찾아 보기가 힘들죠. 그동안 기술이 너무너무 발전해서 10년전 프로그래머는 쓸모가 없어진 것일까요? 아니면 프로그래밍이라는게 너무 스트레스를 받는 직종이다보니 다들 단명을 한 것일까요?
그 답은 그들은 모두 관리자가 되었다는 것입니다. 특히 프로그래밍을 잘하고, 비상한 머리를 가진 분일 수록 빨리 관리자가 되어 버립니다. 소위 승진을 하게 되는 거죠. 그리고 관리자가 되는 순간 내가 얼마나 프로그래밍을 잘 하는지는 중요한 것이 아니라 팀장으로써 팀원을 얼마나 잘 관리 하는지, 회사의 경영지표는 얼마나 잘 숙지 하고 있는지가 중요한 일이 됩니다. 때로는 주변 관리자들에게 너는 이것도 모르냐는 깔보는 듯한 눈빛도 받아야 하고, 경영학 서적이 있는 곳 주변을 얼정거리기도 합니다. 그러면서 일년, 이년 그들의 좋은 경험은 경영학 서적들 속으로 사라지고 맙니다.
정말 훌륭한 프로그래머를 평범한 관리자로 만들어 버리고 만 것이지요.
이러한 일은 개인을 위해서도, 그 회사를 위해서도, 이 산업을 위해서도 좋은 영향 보다는 좋지 않은 영향이 크다고 생각합니다. 왜 프로그래머는 승진을 하면 관리자가 되어야 하나요? 프로그래머에서도 주니어, 시니어, 마스터, 구루 이런 등급을 두어서 승진을 하면 연봉도 오르고 인정도 받는 그러나 멍청한 관리 일은 하지 않아도 되는 그런 인사제도가 필요하지 않을까요?
‘정보기술의 발전이 얼마나 빠른데 프로그래머도 시간이 지나면 구닥다리가 되, 그래서 관리자를 시키는 거야.’ 이건 헛소리라고 생각합니다. 훌륭한 프로그래머는 새로운 기술 잘 받아드리고 잘 따라갑니다. 그리고 기본 원리는 같다고 생각합니다.
프로그래머도 장인이 되고 구루가 되는 그런 사회가 되었으면 좋겠다는 생각에서 프로그래머도 아니면서 프로그래머인 척 글을 적어보았습니다. 혹 이글을 보시는 프로그래머분들 중에서 제 주장이 현실과 맞지 않다거나 잘못 된 부분 있다면 지적 해 주시기 바랍니다.