전 프로그래머가 아닙니다. 프로그래머와 함께 일을 하는 직종의 일을 하고 있지요. 제 주변에서 많은 프로그래머를 보고 겪어 왔습니다. 경력이 짦은 사람, 경력이 많은 사람, 팀웍이 잘 맞는 사람, 그냥 그런 사람.. 그런데 보면서 정말 아쉬웠던 점이 있었습니다.

사실 어떤 일이든 많은 경험은 아이디어 만큼이나 힘을 발휘합니다. 고등학교 때 수학 문제를 풀때도 정말 머리 좋은 친구들은 공식만 알아도 금새 응용해서 풀기도 하지만, 그렇지 못하더라도 많은 응용문제를 풀어본 친구들은 어떤 문제를 만나도 한번 풀어본 문제인 양 거의 외워서 풀기도 합니다. 사실 고등학교 시절에 이 두 유형 중 뒤의 유형의 친구들이 더 공부를 잘 한다는 소리를 들었던 것 같습니다.

업무에서도 마찬가지 인 것 같습니다. 여러 경험을 해 본 분들은 여러 유형의 상황 속에서 미리 연습문제를 수 백가지 풀어본 것과 같은 능력을 발휘 할 것입니다. 같은 논리가 프로그래밍에도 적용될 수 있을 것 같습니다. 특히 프로젝트 진행에 있어서는 여러 다양한 변수들이 발생 할 테고, 그 중에서 많은 경험이 있다는 것은 실패 확률을 현저하게 줄이는 역할을 할 것입니다.

그러나 주변을 보면, 많은 경력을 가지고 있는 프로그래머를 찾는 다는건 정말 하늘의 별따기 보다 힘듭니다. 10년 이상의 경력이라는 건 도저히 찾아 보기가 힘들죠. 그동안 기술이 너무너무 발전해서 10년전 프로그래머는 쓸모가 없어진 것일까요? 아니면 프로그래밍이라는게 너무 스트레스를 받는 직종이다보니 다들 단명을 한 것일까요?

그 답은 그들은 모두 관리자가 되었다는 것입니다. 특히 프로그래밍을 잘하고, 비상한 머리를 가진 분일 수록 빨리 관리자가 되어 버립니다. 소위 승진을 하게 되는 거죠. 그리고 관리자가 되는 순간 내가 얼마나 프로그래밍을 잘 하는지는 중요한 것이 아니라 팀장으로써 팀원을 얼마나 잘 관리 하는지, 회사의 경영지표는 얼마나 잘 숙지 하고 있는지가 중요한 일이 됩니다. 때로는 주변 관리자들에게 너는 이것도 모르냐는 깔보는 듯한 눈빛도 받아야 하고, 경영학 서적이 있는 곳 주변을 얼정거리기도 합니다. 그러면서 일년, 이년 그들의 좋은 경험은 경영학 서적들 속으로 사라지고 맙니다.

정말 훌륭한 프로그래머를 평범한 관리자로 만들어 버리고 만 것이지요.

이러한 일은 개인을 위해서도, 그 회사를 위해서도, 이 산업을 위해서도 좋은 영향 보다는 좋지 않은 영향이 크다고 생각합니다. 왜 프로그래머는 승진을 하면 관리자가 되어야 하나요? 프로그래머에서도 주니어, 시니어, 마스터, 구루 이런 등급을 두어서 승진을 하면 연봉도 오르고 인정도 받는 그러나 멍청한 관리 일은 하지 않아도 되는 그런 인사제도가 필요하지 않을까요?

‘정보기술의 발전이 얼마나 빠른데 프로그래머도 시간이 지나면 구닥다리가 되, 그래서 관리자를 시키는 거야.’ 이건 헛소리라고 생각합니다. 훌륭한 프로그래머는 새로운 기술 잘 받아드리고 잘 따라갑니다. 그리고 기본 원리는 같다고 생각합니다.

프로그래머도 장인이 되고 구루가 되는 그런 사회가 되었으면 좋겠다는 생각에서 프로그래머도 아니면서 프로그래머인 척 글을 적어보았습니다. 혹 이글을 보시는 프로그래머분들 중에서 제 주장이 현실과 맞지 않다거나 잘못 된 부분 있다면 지적 해 주시기 바랍니다.