2011년 6월 6일 월요일

개발자는 회사의 부품일까 두뇌일까?

정말 오랫만에 글을 쓴다. 워낙 바빠서 시간을 내기 어렵다는 핑계를 대지만 블로그에 올릴 글이 50개 이상은 준비중이고 한두시간만 시간을 내서 정리해 올리면 되는데 바쁠때는 그것도 잘 안된다. 다시 마음을 잡고 글을 올린다.

여러 회사를 컨설팅하면서 각 회사에서의 개발자들의 가치를 비교해보게 된다.

흔히 프로세스가 아주 잘되어 있어서 개발자들가 퇴사해도 문제가 없는 회사에서는 개발자가 부품 취급 받을 것 같다.

반대로 몇몇 슈퍼 개발자들이 슈퍼 파워를 내서 단시간에 놀랄만한 성과를 내는 회사들에서 개발자들의 가치가 더 높아질 것으로 생각하는 경우가 많다.

하지만 그 반대인 경우가 더 많다.

개발자들에게 선택이 가능하다면 두가지 경우 중에서 어느 경우를 선택하겠냐고 물어보면 대부분 두번째 슈퍼 개발자를 선택할 것이다. 두번째 경우가 회사에서 없어서는 안될 중요한 인물이 되고 연봉도 더 높을 것으로 생각된다.

하지만 회사입장에서는 다른 선택을 하게 된다. 우리나라의 대부분의 소프트웨어 회사들은 두번째 경우이지만두번째 상황을 벗어나려고 발버둥치고 있다.

사실 슈퍼 개발자들이 단시간에 놀랄만한 성과를 내는 것은 별로 놀랄 일도 아니다. 주변에서 워낙 흔히 벌어지고 단지 단기간에 낸 성과의 댓가는 미래에 톡톡히 치르기 때문이다.(물론 이런 빠른 전술이 필요한 경우도 많고 이를 적절히 사용해야 한다.) 이런 환경에서 개발자는 더 가치가 있을 것 같지만 시간이 흐를수록 점점 그 가치는 떨어져 간다. 과거에 만들어 놓은 제품을 다른 사람이 유지보수 하기 어려워서 유지보수에만 매달리다가 점점 유지보수가 어려워지면 회사를 떠나곤 하고 남아있는 개발자들이 고생을 해야 한다. 이 과정에서 회사는 프로세스의 중요성에 눈을 뜨고, 남아 있는 개발자들은 피해의식만 커져간다.

반대로 처음부터 적절한 프로세스를 갖추고 개발하는 회사는 당장은 조금 느려보이지만 문서를 만들고 서로 리뷰도 여러사람과 공유를 하며 프로세스를 따라서 개발을 한다. 여러사람과 공유를 하기 때문에 유지보수도 문제가 없고 이전 프로젝트의 족쇄 없이 새로운 프로젝트를 시작할 수도 있다. 또한 퇴사를 해도 회사에 큰 타격을 주지 않는다. 이런 회사에서는 개발자들이 특히 고참개발자들이 유지보수 등 잡일에 목메이지 않고 그런 일은 신참 개발자들에게 맡기고 회사의 두뇌다운 전략이나 로드맵, 아키텍쳐를 고민할 수 있게 해준다. 회사와 개발자간에 상호간에 Risk가 적으며 서로 발목을 잡지 않는다.

이런 환경에서 성장한 개발자는 더 가치 있는 일의 경험이 쌓여서 이직시에도 더 높은 연봉을 받을 수 있다. 하지만 그렇지 못한 회사에서는 10년을 넘게 일을 해도 느는 것은 공력과 해당 Domain 지식밖에 없게 된다. 이런 회사에서는 회사와 개발자가 서로의 발목을 잡고 성장을 못하게 된다. 이직시에도 경쟁회사처럼 비슷한 일을 하는 회사로밖에 옮기지 못하고 이직후에도 비숫한 문제들을 또 일으키게 된다.

현재 자신의 회사가 어디에 해당하는지 아는 방법이 있다.

회사의 개발 일들이 특정인이 아니면 못하는 구조로 되어 있으면 문제가 있는 경우이다.
또한 특정인이 퇴사하면 과거에 해 놓은 프로젝트가 엉망이라면 고민을 해야 한다.
하지만 특정인이 퇴사하면 미래에 할 프로젝트에 피해가 간다면 개발자들이 진정한 회사의 두뇌로 생각되는 경우일 것이다. 물론 칼로 무를 자르듯이 경계가 명확한 것은 아니다.

개발자가 회사의 부품이 아니고 두뇌가 되는 길은 2,3명 회사이던 1000명 회사이던 적절한 프로세스를 통해서 개발자가 두뇌의 역할을 해줄 수 있는 환경을 조성하는 것이다. 여기서 "적절한" 것이 가장 어렵기는 하지만 그 필요성을 공감하는 것이 첫걸음이다.

댓글 10개:

  1. 전자의 회사로 만들고 싶지만 항상 기존의 직원들의 반발이 심하고
    이러한 '인적 문제'가 항상 지치게 하네요 ㅠㅠ

    답글삭제
  2. 구차니님 오랫만입니다.
    대부분 변화는 싫어하기 마련입니다.
    더 좋아지는 것을 알지만 현실적으로 그렇게 못한다고들 합니다. 그리고 이런 저런 핑계를 댑니다. 이런 개발자들은 자신들이 안다고 착각을 하는 겁니다.
    몇몇 개발자가 직원들의 반발을 무시하고 추진하면 왕따만 당하기 쉽상입니다.
    그래서 저희가 컨설팅을 하는 거죠. ^^

    답글삭제
  3. 안녕하세요, 선배님.
    오랜만에 뵙습니다.

    가끔씩 블로그에 들러서 글 잘 읽고 있습니다.
    가려운 데를 잘 긁어주셔서 참 많은 생각을 하게 하네요.

    건강하게 잘 지내고 계시죠?
    종종 들러서 글도 읽고 안부도 여쭙고 하겠습니다.

    더운 여름 잘 준비하시기 바라겠습니다.

    답글삭제
  4. 인중아, 오랫만이다.
    안랩은 잘 다니고 있지? 가을에 판교로 옮길때 따라오지? 판교에 오면 가끔 볼 수 있겠네... 내가 판교에서 컨설팅하는 회사가 있거든.
    날씨 더워지는데 건강관리 잘해라....

    답글삭제
  5. 나장근님 안녕하세요.

    회사를 이끄냐, 발목을 잡느냐의 차이로 볼 수 있습니다.
    개발자들은 자신이 어디에 속하는지 잘 생각해 볼 필요가 있습니다. 과거에 얽매여 있으면 지금이라도 미래 가치가 있는 쪽으로 노력할 필요가 있습니다.

    답글삭제
  6. 블로그 잘 읽고 있습니다.

    개발자가 부품인 회사 : 개발자가 퇴사하면 현재 프로젝트가 문제가 생긴다.
    개발자가 두뇌인 회사 : 개발자가 퇴사하면 향후 프로젝트에 피해가 간다.

    명료한 판단 기준이네요.

    답글삭제
  7. 아. 하도 오랜만에 인사를 드려서 ^^;; 저 안철수 연구소 그만 둔 지 좀 됐어요.
    지금은 SK브로드밴드라는 ISP에서 일하고 있습니다.
    판교..는 집이 너무 멀어서 -_-;;; 판교로 옮기기 전에 냉큼 도망나왔죠.

    답글삭제
  8. 너무 잘 읽었습니다. 확실히 처음부터 어느정도의 프로세스를 가지고 가는것이 좋은것 같아요. 나중에 프로세스를 잡아가는 단계에서는 기존 개발자 분들의 반발도 있고해서 어렵네요

    답글삭제
  9. 안녕하세요. ash84님

    기존의 타성에 젖은 사람들의 마인드를 바꾸는 것은 정말 어렵습니다. 내부에서 스스로 해결하지 못하는 경우가 많죠. 또 기존에 망쳐놓는데 일조한 사람들이 방해를 하기 때문에 추진이 더욱 어려운 경우가 많습니다.

    답글삭제