2009년 9월 22일 화요일

시한부 프로그래머

우리나라 개발자들은 10년 후가 매우 불확실합니다.


오랫동안 프로그래머로서 일할 수 있도록 보장이 되지도 못하고, 그런 Role model을 본 적도 별로 없기 때문이죠. 그래서 5년~7년쯤 일하고 나면 미래를 걱정해야 할 시기가 도래합니다.

윗사람들은 자꾸 관리를 하라고 하고, 선배들을 봐도 15년차 개발자보다 15년차 관리자가 회사 내에서 영향력도 더 크고, 연봉도 더 높습니다.

개발이 좋기는 한데 계속 개발자로만 머물려면 미래를 많이 희생해야 합니다.

그래서 개발과 관리 양다리를 걸치기도 하는데, 결국 관리도 잘 못하고 개발도 잘 못하는 어정쩡한 상태가 계속 되기도 합니다.


SW선진국에서는 기본적으로 개발자의 Career path는 확실히 개발자냐 관리자냐 구분이 됩니다. 내가 개발자로 머물고 싶다면 관리를 하지 않고 개발자로 계속 머물 수 있습니다. 물론 그에 걸맞은 실력도 있고 기여도 해야겠지요. 보통 개발자가 연봉도 더 높고, 회사의 위기 때 짤릴 위험도 적고, 회사를 옮기기도 더 쉽습니다. 또 골치 아픈 관리를 하지 않아도 되니 흰머리도 덜 생기지요.


하지만 개발에 대한 전문성에 대한 이해가 부족한 우리나라에서는 개발과 관리의 구분을 명확하게 하지 못하고 개발을 잘하고 고참이 되면 팀장이 되고, 관리자가 되는 것을 당연하게 생각하고 있습니다. 이는 한창 잘 뛸 10년차 축구 선수에게 이제 고참이니 구단 관리도 좀 맡아 달라고 하는 것과 비슷합니다. 


고참개발자에게 관리를 맡기는 것보다 관리 전문가를 따로 뽑거나 키우는 것이 더 효율적이고 비용도 적게 듭니다. 관리를 만만하게 보고 개발자들에게 관리 일도 시킨다면 개발, 관리 둘다 망치는 일입니다.  


또한 개발자 역시 신참 때나 고참이 되어서나 코딩이 좀 빨라진 정도 가지고는 개발자로서의 신분 보장을 주장하기에는 설득력이 약합니다. 경력을 쌓아 갈 수록 단순 코딩이 아니고 설계, 분석 능력을 점점 키워야 하고 소프트웨어 전문가로서 손색이 없는 지식과 경험을 갖춰야 합니다.


하지만 결국 아무리 노력해도 회사차원에서 Career path가 보장되지 않는다면 어려운 일입니다. 회사가 그리고 경영자의 마인드가 먼저 바뀌어야죠. 멀게만 느껴집니다.

댓글 13개:

  1. 제가 일등인가요? ㅎㅎㅎ
    좋은 글 감사합니다.
    우리나라에도 Career Path에 신경써주는 회사도 있겠죠??

    답글삭제
  2. 등수 게임 좋아하시나보네요. :)
    Technical Career Path가 보장된 회사가 있긴 하죠. 하지만 그 빈도가 상당히 적죠. 아직 SW 분야는 상당히 후진적이죠.

    답글삭제
  3. 아직 이 세계에 발을 들인지 얼마 안 됐지만
    규현님께서 지적하신대로 개발, 팀장, 관리자
    모두 계급화(?) 되어있다는 걸 바로 느끼게 되었습니다.
    언제 이런 계급 타파(말이 심했나요?)가 이뤄질지...
    글 잘 보고 갑니다. ^^
    (물론 갑을병정 간의 관계는 말 할 것도 없겠죠.)

    답글삭제
  4. 모두들 Career Path가 보장되는 회사가 있다고만 하지,
    명확히 제시를 하지는 못 했던 것 같습니다.
    뭐 하나씩 나열하는 것도 웃긴 일이지만 혹시나 개인적으로 알고 계신 회사가 있나요?

    조언을 얻고 싶습니다.

    답글삭제
  5. 안녕하세요. 오소리킬러님
    SW선진국에서는 조직이 수직적이지 않고 수평적입니다. manager가 개발자보다 신참일 수도 있고, manager가 관리는 하지만 자신의 일을 하는 것이지 윗사람은 아닙니다.
    비단 SW회사만 그런 것이 아니죠. 우리나라는 뿌리깊은 상하 관계가 있기 때문에 쉽게 바뀌지는 않을 겁니다. 하지만, 조금씩 바꿔가려고는 하는 것 같더군요.

    답글삭제
  6. 일단 미국의 소프트웨어 회사들은 대부분 개발자, 관리자 Path를 구분하는 것이 너무 당연하죠.
    우리나라에서는 일단 제가 컨설팅을 수행한 회사는 모두 그렇게 가이드를 하고 있으니 바꿀려고 노력을 하겠지만, 역시 경영자의 의지에 달린 것이고, 대기업들을 보면 제도적으로 준비된 회사들도 꽤 있더군요. 하지만, Technical Career Path를 선택하는 것이 그리 유리하지 않기 때문에 제대로는 아닌 것 같습니다.
    그리고 제 전 직장이 안철수연구소가 있습니다.

    답글삭제
  7. 안타깝긴 하지만 고참개발자에게 관리를 시키는 것이 가장 현실적인 대안이 아닐까 합니다.
    고참개발자 본인을 위해서나 "그 관리 전문가"로 뽑혀서 고생할 신참 관리자를 위해서나

    프로젝트 진행 중간에 발생할지 모르는 그 수많은 기술적 위험들을 신참 관리자에게 맡기는건 정말 위험한 일이고, 언젠가는 그 관리자가 쓸만한 관리자가 되겠지만 그때까지 얼마나 많은 프로젝트와 개발자의 야근이 인질로 잡혀야 할지 좀 걱정이 되는군요. (훌륭한 외과의사 하나 만들자고 멀쩡한 사람들 여럿잡는 일과 비슷하다고 해야 할지...)

    그리고 제가 알기로는 국내의 많은 중소 회사에서 '나이많은 개발자' 뽑기를 선호하지 않습니다. 이유는 그 개발자 면접이나 1차 서류심사를 하는 사람들 중에 그 팀의 '팀장' 이 포함되어 있을 가능성이 높은데, 자기보다 나이많은 사람이 밑으로 들어오면 일 시키기가 껄끄럽다고 생각하기 때문이죠.

    전에도 한번 댓글을 달면서 적었던 것 같기도 한데 '고참개발자' 가 될 생각이라면 당연히 자기보다 나이적은 팀장에게 지시받고 일하는 것에 대해 충분히 감당할 준비도 되어있어야 할 테구요...

    오히려 고참개발자 or 관리자 로 분류하기 보다는 개발자 or 기술영업 의 형태가 국내사정에 맞지 않을까라는 생각도 해봅니다.

    글 잘 읽고 갑니다. :)

    답글삭제
  8. 우울한딱따구리님 반갑습니다.

    국내 사정을 잘 정리해주셨네요. 이와 더불어 문화적인 걸림돌도 큰 장벽중 하나입니다. 하지만 그 결과 경쟁력이 떨어지고 제대로된 소프트웨어를 만드는 회사가 되기 어려운 것이 문제죠.

    관리 또는 전문영역이기 때문에 신참에게 중대한 일을 맡기지는 못하죠. 그리고 전문 PM이 있을 경우에는 상화이 좀 다릅니다. 전문 PM은 보통 기술과 관리 모두 잘 알고 있기 때문에 개발자가 적당히 관리하는 것과는 또 다르죠.

    아무튼 이런 수직적인 조직의 마인드가 큰 걸림돌인 것임에는 틀림 없는 것 같습니다.

    여담이지만 제 전진장에서는 개발자 Track이 보장되어 있기 때문에 20년 경력의 개발자가 10년 경력의 관리자의 관리를 받는 것은 종종 벌어집니다. 이것에 대한 거부감도 별로 없고, 서로 자신의 일을 하는 것이기 때문에 관리자가 우위에 있는 생각은 하지 않습니다. 물론 20년 경력의 개발자가 영향력도 더 세고 연봉도 엄청나게 높죠. ^^

    답글삭제
  9. 이런 글만 보면 제 꿈이 프로그래머라는 것이 불안하기도... ㅎㅅㅎ

    답글삭제
  10. 하나님 안녕하세요.
    프로그래머라는 직업이 매력적인 것은 틀림 없는 사실입니다. SW선진국에 비해서 열악한 것은 사실이지만, 많은 사람들이 고쳐나가려고 노력하고 있습니다. 자신감을 가지세요.

    답글삭제
  11. 프로그래머의 역할이 기획이나 테스트 등과 명확히 구분이 되지 않은 상태에서 제품 개발에 부족한 모든 부분은 개발자의 몫으로 남아있는 것이 큰 문제입니다. 완전하지 않고 거의 기본 개념이나 현재의 동향 정보에 불과한 상품기획서를 가지고 제품개발을 시작하면서 구멍이 숭숭 뚫린 부분들을 모두 개발을 해 가면서 만듭니다. 개발이 80% ~ 90%이상 완성되면 베타테스트 준비다 필드테스트 준비다, 테스트시나리오 작성, 매뉴얼 작성 등의 몫도 대부분 개발자 몫입니다.
    심지어는 만든 제품에 대한 사전 영업을 위한 프레젠테이션 준비나 시연 준비도 대부분 개발자의 몫입니다. 이런 식으로 몇년 돌다 보면 우리나라는 개발자가 개발자가 아닙니다. 자연스럽게 다른 길을 찾아가게 되어 있습니다.

    답글삭제
  12. 서윤아빠님 안녕하세요.

    국내 개발자의 현실을 제대로 보여주시네요. ^^
    저도 이런 현상을 매주 자주 접하게 됩니다. 대부분의 개발자는 이러한 환경에서 커 왔기 때문에 말씀 하신 대로 대충 코딩하면서 스펙만들어가면서 설계는 얼기 설기 하기 마련입니다. 이렇다고 하더라도 방법이 전혀 없는 것은 아닙니다.
    상황이 이렇다고 해도 개발자가 그냥 코딩부터 시작을 하면 똑같은 일의 반복이죠. 혼자 개발을 하더라도 스펙, 설계, 구현, 테스트 업무를 구분하여 수행하는 방법을 익혀야 하는데, 개발자 스스로 이를 터득하기란 어려습니다.
    제가 조만간 이에 관한 글을 한번 올려보도록 하겠습니다. 감사합니다.

    답글삭제