태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

개발자를 잘못 채용하는 방법

2010/04/19 15:23 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed



뛰어는 개발자를 보유하는 것은 소프트웨어 회사의 절대 필요 조건입니다.

뛰어난 개발자를 보유하는 방법은 내부 개발자들이 잘 성장할 수 있도록 좋은 환경과 기회를 제공하는 것도 중요하지만 기본적으로 뛰어난 개발자를 뽑아야 합니다.

적어도 능력은 B급 이상은 되야 입사 후 성장 가능성이 높습니다. 하지만 좋은 개발자들을 채용하는 것은 그렇게 쉽지 않습니다. 공채, 헤드헌터, 소개 등 갖가지 방법을 써도 쉽지는 않지만 흔히 잘못된 방법이 무엇인지는 쉽게 알 수 있습니다.

어떤 경영자들은 같이 일할 동료들을 개발자 채용 인터뷰에 참여시킵니다. 같이 일할 동료들이 보고 같이 일하기 좋은지 판단하라는 이유에서 입니다. 팀웍이 중요하다는 이유에서 입니다.

하지만 이 경우 잘되는 경우도 있지만 문제가 있는 경우도 많습니다. 기본적으로 같은 레벨에서 개발자를 평가하는 것은 쉽지 않습니다. 즉 인터뷰를 할 능력이 없는 사람에게 인터뷰를 맡기는 것과 비슷합니다. 그런 정도의 인성은 상급자들이 더 잘 볼 수 있습니다.

인터뷰에 참여한 개발자의 입장에서 보면 자신보다 뛰어난 개발자를 뽑는 것은 상대적으로 자신의 비중이 낮아지고 결국에는 자신에게 손해를 가져오기 때문에 본능적인 자기 방어차원에서 그런 개발자들의 채용에 반대하곤 합니다. 이유야 다른 곳에서 찾지요.

채용인터뷰는 특히 개발자 채용인터뷰는 CTO와 개발팀장 등 충분히 기술적인 면과 조직적인 면을 모두 볼 수 있는 사람이 해야합니다. 동료가 될 개발자들에게 인터뷰를 맡기는 것은 인터뷰의 책임이 있는 사람들이 기술적인 식견이 부족해서 기술적인 판단의 책임을 개발자들에게 전가하는 것일 수도 있습니다. 이런 경우 차라리 외부 전문가에게 부탁을 하는 것이 나을 수 있습니다.

개발자는 똑똑하며 긍정적인 사람을 뽑아야 합니다.

하지만, 현실에서는 경력직을 뽑을 때는 해당 분야에서 일해봤는지가 가장 채용의 조건이 되곤 합니다. 이런 개발자들이 똑같은 일을 하다가 똑같은 분야로 옮긴다는 것은 실력이 그리 뛰어나지 않고 그저 경험만 있을 가능성이 높습니다. 정말 일을 잘 했다면 이전 회사에서 더 좋은 대우를 받으며 더 오래 일 했을 겁니다. 뛰어난 개발자들이라면 이런 식으로 옮기지 않습니다. 자신의 미래에 도움이 되는 분야나 최신 기술을 배울 수 있는 곳으로 옮길 겁니다. 또한 퇴사 이전에 이미 누가 데려가지 이렇게 인력 시장에 잘 나오지를 않습니다. 

따라서 급하다고 동일 경력 개발자라는 이유만으로 뽑는 것은 며칠 전에 그만 두었거나 곧 그만둘 개발자의 대타는 될 수 있어도 장기적으로는 회사에 손해가 될 수 있습니다. 

결론은 항상 좋은 개발자를 뽑기 위해서는 당장 발등에 떨어진 불을 끄기 위해서가 아니고 평상시에 꾸준히 노력해야 한다는 겁니다. 그래서 당장 급해서 경력직을 뽑는 것보다 신입으로 미리 준비를 해서 꾸준히 키워 놓은 것이 더 좋은 결과를 가져올 때가 많습니다. 하지만 회사의 프로세스나 개발문화가 엉망이라면 위의 모든 것이 공염불이죠. 이런 경우는 어쩔 수 없이 발등의 불끄기 모드로 채용을 할 수 밖에 없습니다.

결국 악순환이 또다시 시작되는 거죠.

채용은 단발성으로 진행하지 말고 장기적인 안목을 가지고 꾸준히 노력해야 합니다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.


저작자 표시 비영리 변경 금지

'개발문화' 카테고리의 다른 글

개발자를 잘못 채용하는 방법  (20) 2010/04/19
Google을 이끄는 힘  (7) 2009/10/30
SW개발과 Teamwork, 그리고 Review  (2) 2009/10/19
우리는 다르다.  (6) 2009/10/09
Peer review의 혜택  (2) 2009/05/13
개발자 여러분~ 문서 만들기 싫죠?  (12) 2009/05/06

Ray.전규현 개발문화 개발자, 인터뷰, 채용

Trackback Address: http://allofsoftware.net/trackback/184 관련글 쓰기
  1. 2010/04/19 22:23
    제주소년의 느낌 Tracked from handk85's me2DAY
  1. 잘 읽었습니다.
    글 내용에는 동의합니다만, 실천하기는 무척 어려운 사항이네요.

  2. 안녕하세요. 지킬박수님

    사실 평소에 채용을 위해 꾸준히 노력하는 것은 관리자의 의무입니다. 대부분 의무를 태반하는 것이지요. 또는 회사에서 개발자를 무슨 공장에서 부품 고장나면 교체하듯이 결원이 생길 때만 채용할 수 있도록 하는 회사도 있습니다.
    사실 그렇게 어려운 것이 아닌데, 회사 정책상 또는 게을러서 못하고 있는 경우도 의외로 많습니다.

  3. 댓글 고맙습니다.^^

    말씀하신 게 맞습니다. 어려움은 사장님을 어떻게 설득하느냐에 있습니다. 결원이 생기기 전에 좋은 사람을 미리 확보해 두는 식으로 허용되지 않는 경우 말이죠. 정말 참 어렵네요.

  4. 개발자를 미리 확보해두는 것은 어렵습니다. 평소에 채용을 위해 노력한다는 것은 개발자를 미리 뽑아 놓는 다는 의미는 아닙니다. 평소에 꾸준히 개발자들을 물색해 놓고 좋은 개발자들과 관계를 유지해 놓다가 기회가 되면 데려 올 수 있도록 하는 것도 한 방법입니다.

  5. 평소에 꾸준히 개발자를 물색해 놓는 거, 필요한 일이겠네요. 노력도 해 봐야겠고요. 이 부분은 미처 생각하지 못했습니다.

    다만, 이 또한 쉽지 않다는 생각도 함께 듭니다. 앞서 말씀 드린 대로 결원이 생기기 전에 미리 준비하지 않는 문화를 가진 조직에서는 평소에 꾸준히 개발자를 물색해 놓는 노력을 할 만 한 여유(?)를 만들기가 어렵거든요.

    이게 개인적으로 노력한다고 해서 가능한 것인지 좀 더 고민해 보겠습니다.

  6. 채용에 대한 노력은 관리자의 R&R에 명시적으로 포함이 되어 있어야 합니다. 이를 위한 시간 및 예산이 제공되어야 하며 평가에 반영이 되어야 합니다.
    흔히 관리자의 R&R에 개발자 retain만 포함되는 경우가 많지만, 채용을 위한 노력도 그에 못지 않게 중요합니다.
    개인이 회사의 지원 및 관심도 없이 혼자서 노력하는 것은 쉽지 않습니다.

  7. 예전 개발 환경에서는 기술/업무의 규모가
    크지 않았기 때문에 못하는 사람이나 잘하는 사람이나
    크게 차이가 없었지만 최근 동향을 보면 그 규모나 난이도가 예전과 비교 했을 경우 엄청난 차이가 납니다.

    못하는 사람과 잘하는 사람이 단순 본수로 판단했을 경우
    10본이상 차이가 난다고 합니다.

    즉 앞으로 회사 경쟁력은 테크니컬 인재를 많이
    가지고 있는 회사가 살아 남을 것 같습니다.

    최근 프로젝트를 하면 누가 고급이고 누가 중급인지
    판단이 애매 합니다.

  8. 개발자를 본수로만 따지는 프로젝트가 많죠. ^^

  9. 불러주는 사람도 없고..
    있어도 항상 망하는 회사에만 있는 저는 능력없는 나쁜 개발자인거군요 ㅠ.ㅠ
    이렇게 3년 일하니... 긍정적인 생각도 다 가출해버렸어요 OTL

  10. 구차니님 안녕하세요.
    운이 없으신 거겠죠. ^^ 제 글이 개발자 입장에서는 오해를 일으킬 수 있는 내용이네요. 죄송합니다.
    개발자도 한 회사에 평생 몸 담겠다는 마음가짐 보다는 적절한 때 회사를 잘 옮길 수 있도록 평소에 노력을 해 놓아야 한다고 생각합니다. 그래야 인연이 되는 좋은 회사도 만날 수 있고 그에 필요한 준비도 미리 할 수 있습니다.

  11. Blog Icon
    현실직시

    님께서 작성하신 글은 제가 보기엔 교과서적인 내용입니다.
    저도 여러개발과 수장 노릇도 해봤지만 님의 블로그 내용은 현실적 괴리가 있네요.
    특히, 결론부분은 인력시장을 잘 이해하지 못하신 것이 아닌지요?

    대기업같이 인력 풀이 잘되어 있는 곳이 적절한 예는 아닌 것같고
    그외의 회사를 예로 든다면 개발자를 잘 채용하는 비결은 적정한 보수입니다.
    신입을 키워 향후 활용하는 것은 그때뿐이며 다 자기능력에 대응하는 보수를 찾아 나갑니다.
    남게되는 경우는 대부분 인맥관계나 그외의 사정때문이지 그 회사가 키워줘서 남아 있는 것이 아니지요.
    이런 행태가 솔직히 비난받을 일은 아닙니다.

    경력의 경우 가장 필요한 덕목은 역량도 중요하지만, 책임감과 문제해결능력이 신입보다 높다는 것이지요.
    당장 발등에 불이 떨어져도 경력자가 위의 조건에 충족한다면 된 것입니다.
    제 경험상, 어차피 새로 온 조직에 적응과 업무이해를 위해 가르쳐주는 것은 대부분 경력자가 이해가 더 빠릅니다. 그래서 회사의 신입은 이직하기 전 열심히 배워야 하지요.
    그리고 퇴사 전 이미 누가 데려간다는 것은 대기업이 아닌 이상 대부분 다 인맥으로 가는 것입니다. 그런데 아는 사이이다 보니 연봉협상이 편하질 않죠. 누가 데려가지 않아서 실력이 낮을 것이다라는 편견은 아니시겠죠?
    대부분의 사람들이 적정한 보수와 하고싶은 분야의 일을 찾아 나온것입니다.

    그리고 동일개발자 부분은 저도 동의합니다.
    사실 개발자들은 한우물만 파서는 안됩니다. 일례로 Pro*C 부분만해도 그리 어려운 것이 아님에도 일부 금융권에서는 Pro*C 경력자만 뽑더군요. 전산프로젝트는 종합예술같아서 한가지 부분만 가지고 퍼포먼스 향상을 기대하지 못하는데..
    다양한 지식과 경험을 겸비한 개발자의 개발 능력은 한우물만 판 사람보다 생각의 틀이 넓습니다.

    컨설턴트 하실 때 저와같은 생각을 가지는 사람도 있다는 것을 염두해 두셨으면 합니다.

  12. 좋은 의견 감사합니다.
    경력직 개발자를 채용하는 첫번째 조건은 연봉 맞습니다. ^^ 그런데 발등에 불떨어진 듯 개발자를 뽑으면 높은 연봉을 주고도 좋은 개발자를 찾기가 어렵죠. 작은 회사들은 개발자를 미리 뽑아 놓는 것은 어렵죠. 그렇다고 하더라도 평소에 채용을 위해서 활동을 해야 할 것들이 많습니다. 그런데 대부분 평소에는 전혀 신경을 쓰지 않습니다. 평소에 준비를 잘 해놔야 필요할 때 좋은 개발자를 채용하기가 용이합니다. 연봉은 필요한 만큼 줘야하지요.

    그리고 누가 데러가지 않는 개발자는 실력이 낮다는 것은 아닌데, 제 글을 다시 읽어보니 그런 오해를 할 수 있는 문맥이군요. - -; 당연히 묵묵히 일하는 뛰어난 개발자들도 많이 있죠. 하지만 인력시장에서 좋은 개발자를 찾는 것이 쉽지 않은 것은 경험상 사실이죠. 여전히 여러 인맥을 통해서 뛰어난 개발자를 찾고 꾸준히 관계를 유지해 놓다가 서로 연결을 해서 데려가는 것은 좋은 개발자를 채용하는 효과적인 방법입니다.

    어쩔때는 제가 쓴 글을 다시 읽어보면 이번 글과 같이 의도하지 않은 의미로 이해가 될 수 있는 글들이 종종 있습니다. 이글도 관리자나 경영자의 시야에서 작성했었는데, 개발자 입장에서는 기분이 나쁠 수 도 있겠네요. 나중에 개발자 입장에서 이직에 대해서 글을 써봐야겠습니다.

    좋은 지적 감사합니다.

  13. 참으로 공감하는 내용입니다. 개발자 채용시 기술면접을 외부전문인에게 맡기는 것. 객관성을 유지할 수 있을 것 같습니다. 만약에 개발자 면접을 주관해야 하는 입장이라면 새로 면접하러 온 개발자의 능력을 자신의 능력과 경험에 견주어서 판단할 수도 있겠습니다. 말쓰하신대로 자신보다 뛰어난 개발자가 들어왔다거나, 정치적으로 자신이 위축될만한 인재라고 느낀다면 위축되고 경계하겠죠. 실제로 이런곳 여러군데 봤습니다.ㅎ
    장기적인 안목 그것이 중요할것 같네요 ( 참~ 전 이번 병고 이후 새로운 직장에 몸을 담을 예정입니다. 엔지니어링과 IT개발은 취미로 삼고 말이죠. 앞으로 규현님과 비슷한 일을 할 것 같은 예상이 듭니다. 많은 조언 부탁드리겠습니다.:)

  14. 안녕하세요. moova님
    몸은 많이 나아지셨나보네요. 다행입니다. 블로그에서 자주 뵙기를 희망합니다.

  15. 이글에 추천한표 던집니다. :)
    근데 이런 좋은 글은 저같은 개발자들이 공감하는거 보다도,
    각회사 인사담당자들이 좀 읽고 느껴야 하는데 말이죠.

  16. 안녕하세요. kevin님
    호주에 계시나봐요? 멋진 블로그도 가지고 계시고요. 반갑습니다.
    앞으로 종종 들려주세요.

  17. 이번에 "프로젝트가 서쪽으로 간 까닭은" 이라는 이름으로 번역되어 나온 책이나, 조엘의 책 등에서도 언급했고, 개인적으로도 그동안 인터뷰를 했던 경험으로 보자면 말씀하신 것과 같이 외부인력이나 CTO만으로는 부족합니다. 팀에서 일할 사람을 뽑는데 외부인력이 무슨 내용을 어떻게 알까요? 실제개발에 손놓은지 오래 된, 회사의 기술적 나갈 방향을 결정하는 CTO가 세세한 기술 인터뷰를 제대로 할 수 있을까요?
    함께 일할 사람을 뽑는데 있어 동료들만큼 기술인터뷰를 제대로 할 수 있는 사람들은 없다고 생각합니다.

    1차 기술 인터뷰를 동료들이 직접 하고, pass한 사람들에 대해서 CTO나 다른 사람들이 발전가능성/인성/조직 친화력? 등을 점검해야 합니다.
    최소한 전화인터뷰 - 팀 기술인터뷰 - 최종인터뷰 의 3가지 정도 과정을 거치는 것이 좋더군요.

    자신보다 일을 잘하는 사람을 일부러 떨어뜨린다? 글쎄요, 한명이라도 더 일 잘하는 사람이 들어왔으면 하는 바램으로 가득찬 게 개발자 집단이고, 만약 자신보다 일을 더 잘할 것 같아서 떨어뜨린다면 그 조직은 이미 정치가 난무하는 비효율의 하급 개발자들이 넘친다고 밖에 볼 수 없을 것 같습니다.

    A급 인재는 A급이나 S급 인재를 데려오지만, B급 인재는 자신보다 못한 사람들을 데려온다고 했던 조엘의 이야기가 생각나네요. 스타트업부터 시작해서 회사가 존재하는 한 '우수인력 유치'를 지속적인 프로젝트로 진행해야 하는 이유가 여기에 있을겁니다.

  18. 안녕하세요. 우울한 딱따구리님
    좋은 의견 감사합니다. 사실 CTO만 하더라도 우리나라에서는 상당히 왜곡된 이미지를 가지고 있습니다. 한마디로 우리나라 CTO는 기술을 잘 모르는 사람이 많죠. 그래서 말씀하신 내용이 일리가 있는 것 같습니다.

    거의 대부분의 소프트웨어 회사는 B급, C급 인재가 넘쳐나고 A급, S급 인재는 찾기 어렵습니다. 상황이 이러다보니 채용시에도 좋은 개발자를 가려내기 힘든 것 같습니다.

  19. Blog Icon
    jp

    B급, C급 인재에 대한 대책은 없나요?.^^..

  20. 안녕하세요. jp님
    어느 조직이나 다양한 인재가 필요합니다. 문제는 A급인제인줄 알고 뽑았는데, C급인재인 경우입니다.
    보통의 소프트웨어 회사는 A급인재 10~20% 정도, 그 외에는 B, C급 인재로 채워집니다. 물론 B,C급 인재를 키워서 역량을 갖추게 하는 것도 중요하지만, A급인재가 하나도 없는 회사는 또 곤란합니다.

    회사 입장에서는 그런 것이고, 개발자 개인 입장에서 자신은 B급, C급이 되겠다고 하는 사람들은 없을 겁니다. 그러므로 자신의 목표도 A급, S급에 맞춰야 겠죠.

스마트폰 앱스토어가 진짜 대박이 아닌 이유

2010/02/09 13:58 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed


요즘 스마트폰이 IT 이슈의 정점에 있어서 스마트폰 관련 글을 계속 올리게 됩니다.
개발자의 한사람으로서 스마트폰의 급속한 확대는 좋은 징조임이 분명합니다. 하지만 종종 스마트폰 어플리케이션을 만들어서 앱스토어에 올리면 쉽게 대박을 맞을 수 있을 것 같은 기사들이 눈에 띕니다.


물론 거품을 경고하는 기사들이 많은 것은 사실이지만 좋은 것만 보인다고 대박 기사가 더 눈에 들어오는 것은 사실입니다. 개발자들은 "실패담은 내 이야기는 아닐거야"라고 자신에게는 관대한 판단을 내기는 것이 일반적입니다.

이런 종류의 기사들을 읽어보면 전문가들이 말을 인용하는 칼럼형식의 기사는 좀 나은데 기자들이 직접 작성하는 누구나 혼자서 쉽게 소프트웨어를 개발해서 성공할 수 있다는 식의 기사가 많습니다. 그래서 현 상황을 좀 냉정하게 바라보고자 합니다.

긍정적인 측면

확실히 앱스토어가 개발자들에게는 기회의 땅입니다. 어플리케이션을 만들기만 하면 바로 전세계 소비자와 바로 만날 수 있는 기회를 제공했습니다. 마케팅을 얼마나 잘하느냐는 다른 이슈이지만, 어마어마한 마케팅 비용을 들이지 않고도 일단 소비자와 접할 수 있다는 것은 엄청난 기회입니다. 정말 좋은 소프트웨어가 마케팅 비용이 없어서 사라지는 것을 막을 수 있습니다.

또한 스마트폰 앱 시장은 계속 커지고 있고 잠재 고객은 점점 늘어가고 있습니다. 
That's it.

부정적인 측명

기회는 균등합니다. 나에게 기회인 것은 전세계 모든 개발자들에게 동일한 기회입니다. 초창기를 제외하고는 소비자와 쉽게 자신의 어플리케이션을 보여줄 수 있는 것이 그리 매력적인 조건이 아닐 겁니다. 정말 좋은 소프트웨어가 아니면 이 장점이 큰 장점이 아닙니다. 또한 스마트폰 앱 시장이 점점 커지면서 메이저 소프트웨어 업체들이 뛰어들 준비를 하고 있습니다. 기존의 시장과 별반 다를바 없는 치열한 전투장이 될 겁니다.

시장은 그렇다 치고, 개발자 입장에서 바라보도록 하죠.

스마트폰이라고 해서 소프트웨어를 개발하기 더 쉬워진 것은 아닙니다. 잘 만들어진 Framework를 보면 개발이 더 쉬운 것처럼 착시현상을 일으키기도 하지만, 이것이 소프트웨어 개발 전체 프로세스에 미치는 영향은 5%도 되지 않습니다. OOP 컨셉이 없는 개발자들은 오히려 뒤죽박죽을 만들어 버리기 일쑤입니다. SDK를 이용한 코딩보다도 스펙을 제대로 정하고 설계를 하고 테스트를 하는게 비중이 더 높습니다. 이는 기존의 다른 소프트웨어를 개발하는 것과 별단 다르지 않습니다. 즉, 기존에 소프트웨어를 잘 개발하던 개발자나 회사가 이또한 잘 할겁니다.

스마트폰 앱이라고 해서 한번 만들고 끝나는 것이 아닙니다. 일반적으로 소프트웨어는 유지보수 비용이 개발비용의 2~5배 정도 들어간다고 합니다. 그래서 한번 만들어놓은 앱을 꾸준히 유지보수를 해야 하는데, 개인이 이를 감당하기에는 어려움이 있을 수 밖에 없습니다. 진짜 전업으로 매달려야 합니다. 또한 버그 관리, 소스관리, 스펙 관리가 그렇게 쉽지 않습니다. 기존의 소프트웨어 회사들도 크나 작으나 이들을 잘 해내지 못하는 것이 현실입니다. 그렇다고 혼자 개발을 한다고 이 이슈가 사라지지 않습니다. 진짜 혼자 다 해야 합니다.

또, 어쩌다 꽤 인기있는 앱을 만들어서 중박정도를 했다고 해도 꾸준히 매출을 유지하기 위해서 업그레이드와 새로운 제품을 계속 만들어내야 합니다. 앱 개발이 전업이 되었다는 얘기는 꾸준히 수익을 창출해야 한다는 얘기입니다. 회사라면 크나 작으나 나름 각 분야의 전문가들이 힘을 합쳐서 일하기 때문에 진짜 자신이 잘하는 분야에 집중할 수 있어서 꾸준히 발전해 나가는 것이 혼자 북치고 장구치고 하는 것보다는 유리합니다. 자칫하면 수주대토(守株待兎)가 될 수 있습니다.

소프트웨어 개발이라는 것의 대부분은 팀으로 일을 했을 때 더 잘 할 수 있는 것들인데, 혼자서 한다는 것은 한계에 부딪히게 됩니다.  아이디어의 한계, 기술의 한계가 그겁니다. 물론 혼자 일하는 것을 좋아하는 개발자들중에서는 팀웍을 이뤄서 제대로 일하는 방법을 모르기 때문인 경우도 있습니다. 어떠한 경우라도 혼자서 1인회사를 해나가는 것은 쉽지 않은 결정입니다.

이미 소프트웨어 개발에 상당한 공력을 가지고 있는 개발자 몇명을 제외하고는 아무리 좋은 아이디어로 좋은 앱을 개발했다고 하더라도 혼자 개발하는 것은 스스로의 성장에도 지장을 줄 수 있습니다. 물론 이런 시도는 도전의식과 비즈니스 경험을 쌓을 수 있어도 소프트웨어 개발자로서의 경험은 상대적으로 놓치게 됩니다. 자칫 평생 혼자 개발해야 편한 개발자가 될 수도 있습니다. 실패에서 얻는 것도 있지만 잃는 것도 크다는 것을 명심해야 합니다.

소프트웨어 개발자로서 사회에 첫발을 디뎠다면 아무리 대학때 소프트웨어를 좀 개발해 봤어도 조직에서 팀을 이뤄서 개발하는 방법과 그 문화를 어느정도 익히는 것이 필요합니다. 물론 좋은 환경의 소프트웨어 회사라야 하겠죠. 그리고 나서도 확신이 선다면 시도해볼 수 있는 도전이라고 생각은 합니다. 하지만 결코 기존의 소프트웨어 환경에 비하여 성공확률이 더 높아졌다고 생각해서는 안됩니다. 이또한 노력하는 사람에게 더 많은 기회를 제공할 겁니다. 자신의 성공확률에서 바뀐 것은 아무것도 없습니다.

이 상황을 너무 부풀려서도 너무 축소해서도 안됩니다. 확실히 기회가 생긴 것은 맞습니다. 하지만 냉철한 가슴으로 생각하고 도전해야 합니다. 또, 이를 이용해서 부추기는 선정적인 기사는 좀 줄어야 하겠습니다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
image by Mykl Roventine
저작자 표시 비영리 변경 금지

Ray.전규현 소프트웨어이야기 개발자, 대박, 문화, 버그관리, 소스관리, 스마트폰, 스펙, , 앱스토어, 유지보수, 중박

Trackback Address: http://allofsoftware.net/trackback/171 관련글 쓰기
  1. 2010/02/10 09:51
    자바지기의 생각 Tracked from javajigi's me2DAY
  1. Blog Icon
    지니랜드

    수구대토 -> 수주대토 로 수정해주세요

  2. 감사합니다. 블로그 글은 종종 오타가 생기더군요. 좀더 꼼꼼히 적어야 하는데요...

  3. Blog Icon
    ㅎㅎㅎ

    제 생각엔 스마트폰 초창기(아이폰으로 인해 시장이 커지는)라서
    거품에 있고 사람들이 스마트폰에 대한 환상을 가지고 있는 것같습니다.
    손바닥만한 화면으로는 분명 한계가 있는데요...
    결국 단지 개인의 필요에 따라 몇몇 특정한 기능으로만 사용하게 될거고
    꼭 이동시 사용해야하는 사람만 사용할텐데
    꼭 만능기기인것처럼 여겨지는 분위기네요.
    PMP있지만 돌아다니며 영화보는 사람 별로 없고요
    네비있지만 네비들고 다니며 걸어가는 사람 없습니다.
    전화기로 엠피스리 들을수있지만
    따로 엠피스리를 가지고 다니는 사람들이 대부분이죠.
    만능기기는 불편하고 이동기기도 또한 불편하죠.
    이동하며 사무를 볼 수있다지만
    이동하면서 까지 사무보고 싶은 사람이 몇이나 있겠어요.
    오히려 전화기능과 카메라기능을 첨가하고
    터치기능을 넣은 OS를 가진 스펙이 강화된
    타블렛식으로 LCD를 뒤집을수있는
    10인치내의 화면을 가진 노트북이 나오면
    스마트폰 시장은 죽을 것같네요.ㅣ

  4. 제 생각은 좀 다릅니다.

    스마트폰의 파급효과는 생각보다 클 것 같습니다. 지금은 거품이라고 얘기하지만 거품이 꺼지면 실체가 보일겁니다.
    지금은 인터넷 없는 세상 생각하기 힘들죠? 스마트폰은 인터넷을 들고다니게 되는 세상입니다. 한단계 업그레이드 되는 겁니다. 기존에도 이동중에 인터넷을 사용할 수 있었지만, 편리함이 다르죠.
    스마트폰이 화면이 작기는 하지만 새로운 UX가 불편함을 감소시킬 것이고, 자연스럽게 생활속으로 파고들 것으로 예상하고 있습니다.
    인터넷(웹)이 나오고나서 일상 생활속을 들어오는데까지는 6,7년이 걸렸습니다. 스마트폰이 나온지는 꽤 됐지만, 전 아이폰과 안드로이드 폰이 나오고 완전히 생활속으로 들어오는데, 3,4년이면 충분하리라고 봅니다. 그사이에 사람들을 편리하게 해주는 앱들이 쏟아져 나오겠죠.

    누가 옳든 간에 이쪽 밥 먹고 사는 사람들은 남들보다 빨리 알아채야 겠죠. 버스 떠난 다음에 손흔들면 안되니까요... 일반 사용자라면 자신이 좋은 것 그냥 선택하면 될거구요. ^^

  5. 저도 '현혹'의 성격이 짙은 글을 보면 비판적인 시각으로 바라보려 하고 있습니다.
    이슈에 대해 여과 하지 않고 우르르 몰렸다, 우르르 파했다~ 하는 것만 봐도 매우 급변하는 IT정세와,불안정한 시국을 그대로 나타내주는 것이니까요. 이런 정세에 본질을 파악하기란 매우 어렵겠지만.. 지금 우리에게 필요한 것은 비판적인 시각이 아닐까 합니다. 예를들어.. 전규현님이 말씀하신 것처럼 요즘 모바일 쪽의 구인란을 보면 모바일 개발 경험이 有인 사람에 국한되어 있더군요. 참 안타까운 일입니다. 매우 좁게 시장이 형성되는 것도 문제이고, 장기적인 안목이 아닌 '언 발에 오줌누기 식'의 인력들만 채용하고 있으니까요. 본질을 따져서 설계와 구조에 중점을 둔다면 당연히 OO나 OOP관련 경험,또는 공학방법론을 사용해봤던 인재 위주로 형성이 되어야 하는 것이 맞다고 봅니다. 그 밑에 코딩할 인재들도 필요한 것이구요.
    이 단면에서 돈만 되면 한다는 식의 불안정한 정세를 다시 한번 엿볼 수 있었습니다.
    (요즘 스마트폰 애플을 취미삼아 해 보고 있습니다.--단지 취미입니다. 주업은 아니죠. 전에 GUI방식의 소프트웨어를 개발한 경험이 있다면, 예전 방식과 매우 닮아 있다는 것을 느끼고 맙니다.)

    팀과 인력조화에 대해서도 한가지 문제점을 제시하자면.. 서로 잘 아는 팀을 만들 수 없는 문화가 한 몫하는 것 같습니다. 회사마다 계약 체제가 다르고 관리제도가 다르니 문화가 다를 수밖에 없고, 하청구조가 이미 뿌리박힌 데다가 같은 회사사람이 누군지도 모른 체 프로젝트가 진행되고 있는 곳도 상당히 많습니다. 어떤 회사는 갑 측에 같은 비용으로 50만 제공해주어도 되지만, 어떤 회사는 같은 비용에 200을 요구하는 곳이 있더군요.

    얼마 전에 선임연구원으로 혼자 들어갔었던 프로젝트가 바로 이것과 비슷했습니다. 돈을 더 많이 주니 더 많은 아웃풋을 내야 한다는 묵시적, 강제적 계약조건이더군요. 설계,구조.. 전혀 신경을 안 쓰고 제품의 품질과는 전혀 상관없이 높은 비용(그렇게 높지도 않지만)을 주니 설계 제외하고 더 많은 아웃풋을 내라..라는 SI특유의 병폐를 또 다시 한번 경험했습니다.(아웃풋에 계약조건으로 차등을 주니 사실상 팀웍이란 잠점을 발휘할 수도 없을뿐더러 활용할 수도 없는 문화가 되어버립니다.)

    사실 노하우있는 기술자를 쓰는 이유는
    소프트웨어가 필요한 곳에 경험과 노하우,설계,구조론,방법론을 오히려 배우기 위한 것으로 생각합니다. 그것이 경험 있는 기술자들을 쓰는 이유가 아닐까 합니다.
    5년 차가 10장찍어내고 10년 차가 같은 시간에 20장을 찍어내라는 식이니..원..(이런 곳 정말 많습니다.) 상식적으로 매우 미달인것이죠.

    전 지금 병원에 입원해 있는데도.. 규현님의 글은 읽어 봅니다.:)

  6. moova님 안녕하세요.

    병원에 입원해계시고 수술이 필요하신 것 같은데 쾌차하시기 바랍니다.
    우리나라의 대부분의 회사에서는 고급개발자를 키울지도 모르고 구분할줄도 모르고 고급개발자가 무슨 일을 하는지도 모릅니다. 그만큼 낙후되어 있습니다.

    소프트웨어 개발에 있어서 무슨일이 싼일이고 어떤게 비싼 일인지 구분도 못합니다. 그래서 비용과 시간이 더 많이 들며서도 날밤까면서 일해도 좋은 제품이 안나오죠.

    또 무엇이 필요한 문서인지 어떤 것은 형식적이고 필요가 없는 것인지도 구분하지 못합니다. 이는 프로젝트마다 달라서 선임급(고급)개발자가 이런 것들을 프로젝트 성격에 맞게 합리적으로 결정해야 하는데 그렇게 하지도 못하게 하는 것이 현실입니다.

    moova님도 고생이 많겠습니다. moova님 글들을 보면 어떤 생각과 경험을 가지고 있는지 알 수 있거든요. 저는 언제나 미래에 기회가 되어서 제 블로그를 찾아주시는 분들 중에서 뛰어난 분들과 일해보는 것을 꿈꿔 보곤 합니다.

    감사합니다. 다시 한번 쾌차를 기원합니다.

  7. 스마트 폰이 상당부분 생활을 바꾸긴 하겠지만, 그렇다고 해서 삶을 스마트하게 바꾸어 줄꺼라고 생각하지는 않습니다. 상당 부분 거품도 있고 허세도 있기 때문이죠.

    문득 지하철에서 보이는 아이폰 유저들을 보면
    "게임", "동영상" 정도 밖에 안보이더군요.
    일부 헤비유저일 것으로 예측되는 증권이나 금융 개발쪽 분들이 눈에 띄지 않는 걸지는 모르겠지만
    결국에는 PMP + PSP + NDS 를 통합한 그 이상도 그 이하도 아닌 딱 게임기+휴대폰 이라는 느낌이 강합니다.
    단지 인터넷이 될뿐이고, 외부에서도 편하게 할수 있을 가능성이 있기 때문에 사용자들이 끌리는거겠죠

    솔찍히 말해서 저도 쓸모는 없지만 가지고는 싶습니다.
    '필요'하지도 않고 '용도'도 정해지지 않았지만 가지고는 싶습니다.
    아마도 이러한 경우에 단지 새로 나온 스마트 폰이고 다들 아이폰 아이폰 하니까 얼리어탑터 기분으로
    대세(?)를 따라 나도 스마트하게 스마트폰! 하는게 아닐까 생각이 됩니다.

    결론만 말하자면, 지금보다 상당부분 거품이 심하게 끼어있고, 비록 어느정도 삶을 변화 시킬지라도 생각보다 큰 변화를 일으키지는 못할것이라는 겁니다. 원더키디가 나올때까지 10년도 채 안남았고, SF영화에서 그리던 2000년은 차들 대신에 무빙워크 에 서서 다니는 그런 환상적인 세상이었는데 실질적으로 변한 삶의 패턴은 극히 드물듯이 말이죠.

  8. 구차니님 안녕하세요.

    현재 거품이 꺼지고 좀 차분해져야 실체가 나올 것 같습니다.
    "알고 봤더니 별거 아니더라"라는 말도 많이 나오겠죠. 그러면서 서서히 생활속으로 들어와서 조금씩 생활패턴을 바꾸겠죠. 이게 뭐 엄청난 변화냐? 라고 할 수도 있어도 지금도 인터넷(특히 웹) 없이도 사는 사람이 엄청나게 많지만 많은 사람은 인터넷 없는 세상은 상상하기 힘듭니다.
    처음에 웹이 나왔을 때 되는게 없었습니다. 이걸로 뭐를 할 수 있을지 제대로 상상한 사람도 별로 없었습니다. 그때는 기껏해야 회사 소개하는 홈페이지와 인터넷 신문정도 였습니다. (여담이지만 95년에 제가 세계 최초 상용 Webmail 시스템을 만든 사람이지만 이를 기억하는 사람은 아무도 없습니다. 세계최초 별거 아닙니다. - -; 저는 별로 크게 성공하지도 못했구요. 제가 만든 Webmail을 컨셉과 원형을 따라서 만든 D사는 크게 성공했죠)

    94년에 웹이 처음 나왔을 때는 이것이 생활을 바꿀 것이라고 생각한 사람은 극소수였습니다. 그런데 스마트폰은 얼마 되지도 않았는데 난리네요. 그래서 거품이 꺼져야 한다는 얘기입니다. 반대급부로 이쪽 개발에 종사하는 개발자들은 거품이 더 좋은 기회가 되기도 합니다만...

    스마트폰이 바꾸는 생활의 변화를 가져오는 것의 주역은 하드웨어가 아닌 소프트웨어라고 생각합니다. 얼마나 좋은 소프트웨어가 더 많이 나오냐에 따라서 결론이 달라질 것 같습니다. 이는 소프트웨어 개발자들이 몫이겠죠. 구차니님 같은 분들이 바꾸는 것이라고 생각합니다.

    설령 기대에 못미칠 수는 있어도 소프트웨어 개발자라면 과소평가보다는 창조자의 마인드로 동참하는 것이 필요하다고 생가가합니다.

  9. 스마트폰에 대해서 갖는 부정적인 시각은, 사용자가 아닌 개발자의 시선에서 바라봐서가 아닌가 싶습니다.
    제가 느끼는 스마트폰은 저에게 있어서는 혁명이었습니다.
    96년부터 PC통신 하이텔을 통해서 커뮤니티에 입문했는데요, 그 이후로 제 삶속에는 항상 인터넷이 있었습니다.
    어딜가도 컴퓨터가 있으면, PC통신에 접속하고, 그 이후에는 인터넷에 접속해서 현재 저의 동호회, 카페, 홈페이지, 블로그 등을 보며 실시간으로 글을 게시하고, 댓글놀이를 즐겨왔는데요, 스마트폰은 이런 소셜 네트워크에 한층 가깝게 다가갈 수 있도록 해주는 중요한 역할을 해주고 있거든요.
    인터넷이 연결되어 있지 않았을 때의 불안감이나 답답함을 한번에 해결해주고 있습니다.

    집전화가 있고, 공중전화가 있지만, 누구나 휴대폰을 가지고 다니듯이, 요즘 우리 생활에 있어서 인터넷이 그렇게 변하고 있습니다. 스마트폰은 걸어다니는 인터넷 기능때문에 중요한 것이죠.
    다만 인터넷 기능이 필요하지 않으신 분들께서, 스마트폰을 필요해서 자발적으로가 아닌 뜬다고 하니까 공부하시려는 분들께서 부정적인 시각으로 말씀해주시는 것 같은데요, 크게... 변화를 줄 것 같아요.

    자다가 일어나서 갑자기 말이 많았습니다. 또 놀러올겠습니다. ^^

동종업계 취업금지 각서

2009/12/29 12:17 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

개발자에게는 동종업계 취업금지라는 이상한 족쇄가 있습니다.
보통 2년 어쩔 때는 더 길기도 합니다.
입사 시에 이러한 동종업계 취업금지 각서에 사인을 하라고 하는 회사가 종종 있습니다.
물론 특정 업종에 따라서는 이러한 금지조항이 꼭 필요한 경우가 있습니다. 하지만 그렇지 않은 회사에서도 너무 광범위하게 "동종업계 취업금지"를 활용하고 있습니다. 

실제로 이러한 조항 때문에 이직 시에 문제가 되는 경우를 종종 봐왔습니다. 이 와중에 개발자만 괜히 낙동강 오리알이 되고 오갈데 없는 신세가 되곤 하더군요. 이전 회사에 다시 돌아가지도 못하고 참 곤란한 경우를 겪더 군요. 

이 작은 땅덩어리에서 개발자들이 경쟁 업체에 취직을 못하게 하면 개발자는 갈 곳이 별로 없습니다.
이전 회사에서는 상당히 그럴싸한 이유를 댈 수 있습니다. 
개발자가 회사의 소스코드를 몽땅 들고 가서 경쟁회사에서 이를 그대로 사용할 수 있다는 겁니다. 이것은 범죄인데 직원이 퇴사 시 범죄를 저지를까봐 미리 방지하는 셈입니다. 실제로 이러한 걱정을 하는 회사가 꽤 많고 일부 이해도 됩니다. 

마치 지하철에서 신문을 보면 이 신문을 깔고 "대ㅂㄴ"을 볼 수 있으므로 신문을 못 보게 하는 것처럼 생각되기도 합니다.
영업직은 자신의 모든 영업라인을 끌고 이직을 해도 입사할 때 이런 서약을 하라고 하지 않습니다.
물론 개발자가 이직을 해서 기존의 소스코드를 얼마나 활용하고 참조하는지는 알 수 없습니다. 또한 자신이 개발한 일부 함수를 재활용한다고 해도 범죄라고 얘기하기가 어렵습니다. 회사에서는 나중에 문제가 되고 귀찮아지니까 이를 원천 봉쇄하겠다는 뜻이죠.

이는 마치 소수의 개발자와 소스코드에 회사의 경쟁력이 전적으로 의존되고 있다는 뜻이기도 한데, 이런 회사는 보기에도 좀 불안해 보입니다. 개발자들이 퇴사하는 것은 언제든지 일어날 수 있는 일인데, 이것이 그렇게 심각하다면 좀 문제가 있습니다. 분명 개발자는 소프트웨어 회사에서 가장 큰 자산이지만, 이는 소수의 한두명이 아니고 전체를 말하며 팀을 이뤄서 일했을 때 가치를 말할 수 있어야 합니다.

개발자들도 이직을 할 때 두뇌를 완전히 비우고 이직을 할 수는 없겠지만, 또 이전 회사에서 자신이 작성한 소스코드를 참조하고 볼 수는 있겠지만, 소스코드를 완전히 배껴서 동일 제품을 만든 것은 안됩니다. 자신이 만든 소스코드의 지적 재산권은 회사에 있는 것이죠. 다만 이를 만들면서 쌓인 지식과 경험은 개발자 것이지요. 새로 이직한 회사에서도 그 지식과 경험을 사는 것이지 소스코드를 들고 오라고 하면 안되겠죠. 또, 이런 지식과 경험을 이용해서 새로운 제품을 만드는데 힘쓰는 것이 좋겠죠.

개발자들의 마인드도 좀 바뀌어야 무분별한 동종업계 취업금지 관행에서 개발자들이 벗어날 수 있을 것으로 생각됩니다.

개발자들이 모든 소프트웨어 회사로 자유롭게 이동을 할 수 있어야 소프트웨어 업계 전체적으로 발전할 수 있습니다. 그래야 개발자들도 많은 지식과 경험을 접하게 되고, 개발자 및 회사 모두에게 더 많은 기회를 제공합니다.

입사시에 이런 각서에 사인을 해야 한다고 하면 사인을 해도 되는지 잘 한번 생각해보세요. 

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
image by michele cat

저작자 표시 비영리 변경 금지

Ray.전규현 소프트웨어이야기 각서, 개발자, 동종업계취업금지, 이직, 입사

Trackback Address: http://allofsoftware.net/trackback/163 관련글 쓰기
  1. 2009/12/29 18:15
    kiyong2의 생각 Tracked from case's me2DAY
  2. 2009/12/31 13:39
    각서나 문서 사인 요구시. Tracked from 천지여! 작렬태양이여! 솔솔부는 바람이시여!
  1. 각서보다는 예전 판례가 있기 때문에 문제가 되는게 아닐려나요?

    아무튼 영업직은 그 사람과 연관된 거래선이 따라가는건데 아무말 하지 않는다 라는 관점이 신선합니다.
    개발자에게 적절한 방어막이 될 좋은 문구인거 같아요 +_+!

  2. 구차니님 새해 복 많이 받으세요.
    이직을 하면서 기업의 비밀과 재산을 얼마나 침해하느냐가 문제인데, 물건 만드는 공장에서는 설계 도면이 매우 중요하지만, 소프트웨어는 참 애매합니다. 그래서 제가 항상 강조하는 것이 소스코드에 너무 큰 비중을 두지 말자는 것입니다. 개발자들의 자유로운 왕래가 없이는 소프트웨어 전체적인 성장은 어렵습니다.

  3. 컴공학부 4학년 학생으로... 개발자로 일하기 원하는 학생인데 언제나 좋은 글 읽고 갑니다.^^;
    하지만, 졸업 후에 처음 어떠한 회사에 입사 시에 어떠어떠한 서류에 사인하라고 하면... 제 코가 석자라서 이런 것을 알아도 하게 될 것 같습니다.(슬픈현실..ㅠㅠ?코가 석자라..)
    하여튼 맨날 그냥 좋은 글 읽고만 가다가 감사의 마음으로 댓글이라도 달고 갑니다.
    내년에도 계속 꾸준하게 좋은 글 부탁드리겠습니다.

  4. 안녕하세요. simplism님
    사인은 해야겠죠. 하지만 사인을 하는 의미는 알아야 합니다. 아니면 퇴사후 창업을 하셔야 할 겁니다. ^^
    학부생이 피부로 느끼기에는 좀 어려운 내용들도 있는데, 열심히 보고 있다니 고맙습니다. 이제 내년에 졸업이시군요. 훌륭한 개발자가 되시기 바랍니다.

당신은 개발자도 아니고 관리자도 아냐!

2009/12/23 19:05 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed


컨설팅을 하다 보면 많은 개발자와 관리자를 만납니다.

그런데, 특히 고참 개발자나 개발자 출신 관리자 중에는 자신의 정체성을 못 찾는 사람들이 많습니다.
이런 사람들에는 다음과 같은 말을 해주고 싶습니다.

"당신은 개발자도 아니고 관리자도 아냐!"

개발자와 관리자 두 가지 일은 병행하여 둘 다 잘할 수 있을 만큼 쉽지 않습니다.

개발자로 5년~10년 일을 하면 팀장을 하라고 합니다. 하지만 팀장으로서 정확하게 무슨 일을 하라고 하는지는 알려주지 않는 경우가 많습니다. 그래서 기존에 팀장들이 어떤 일을 하는지 보고 따라 해보곤 합니다. 하지만 팀장이라는 역할이 개발자로서 개발의 리더 역할인지 관리자의 역할인지 애매한 경우가 많아서 개발도 하면서 관리도 하면서 어쩔 때는 팀장 일을 하느라고 개발은 소홀히 하거나 팀장이라고는 하지만 여전히 개발에 매달리면서 팀장 일은 나몰라 하는 경우가 많습니다. 어떤 경우는 둘다 못하기도 합니다.

또 개발자 출신으로 관리자가 된 경우에는 관리자로서 해야 할 일들이 얼마나 많고 어려운데 개발 관련된 이슈들만 눈에 들어와서 사사건건 개발에 대한 기술적인 이슈 해결에 직접 참견을 하고 해결하려고 하고 정작 본연의 관리 업무는 소홀히 합니다. 개발자 출신으로 관리자가 된 경우는 물론 개발에 대해서 잘 알고 이런 기술적인 이슈에 대해서 조언을 해줄 수 있는 것은 확실하나 사소한 기술적인 이슈까지 너무 참견을 한다면 후배들이긴 하지만 정작 개발자들을 무시하는 처사입니다.
관리자로서는 HR이슈, 프로젝트, 인력, 비용 관리, 부서간 이슈 조정, 경영자에게 보고 등 많은 일들을 더 잘 처리하는 것이 중요합니다.

이런 현상이 벌어지는 근본적인 이유는 개발자와 관리자의 트랙이 명확하게 구분이 되어 있지 않아서입니다. 개발자라면 언젠가는 둘 중에 하나를 선택해야 합니다. 
관리자를 선택한 사람들은 일정 기간이 지나면 다시는 개발자 트랙으로 돌아오지 못합니다.
하지만 개발자 트랙에 있던 사람은 시기에 구애 받지 않고 관리자가 될 수 있습니다. 물론 관리를 잘하느냐 못하느냐는 다른 이슈입니다. 가능하다는 거죠.

이렇게 정해지면, 자신의 업무에 집중해야 합니다. 개발자 트랙을 선택한 사람이 관리에서 오는 행정적인 Power를 추구해서는 안됩니다. 개발자의 Power는 기술에 대한 지식과 경험에서 오는 카리스마입니다. 관리자 트랙을 선택했다면 관리에 힘을 써야지 개발자의 영역을 넘보면 안됩니다. 개발에 대한 해박한 지식과 이해는 관리에 분명히 도움을 많이 줍니다. 그렇다고 하더라도, 개발자가 해야 할 일을 자신이 해는 안되죠. 이미 관리로 넘어 왔다면 기술과는 점점 Gap이 벌어지게 되어 있고 어느덧 자신이 아는 지식은 옛날 지식이 되어 있을 수도 있습니다. 

물론 누구나 좋은 개발자, 좋은 관리자가 될 수는 없습니다. 하지만 둘다 하겠다고 해서는 둘다 못하는 결과를 초래합니다. 선택을 해야 할 시점에 선택을 해야 하고 회사에서도 제도적으로 이를 뒷받침 해줘야 합니다.

둘다 잘할 자신이 있다고 한다면 저는 "개발자"를 선택하겠습니다. ^^


* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
image by obo-bobolina
저작자 표시 비영리 변경 금지

Ray.전규현 사람과 기술 개발자, 개발자트랙, 관리자, 관리자트랙, 캐리어패스

Trackback Address: http://allofsoftware.net/trackback/162 관련글 쓰기
  1. 2009/12/26 19:22
  1. 해외 롤이 생각나는군요.
    개발자 - 대표개발자 - 쥬니어 컨설턴트 - 임플리먼트 컨설턴트 - 프로젝트 메니저 -프로그램 메니저
    - 비지니스 컨설턴트
    - 일반 관리

    말씀하신 내용은 개발자와 관리자 두가지 롤에서만 국한 된것 같습니다.

    예를들어 컨설턴트라면 개발자와 관리자 또는 조직영역에서 전문적으로 컨설팅하는 영역이 있다는 것을 알고 계실 것 같군요. 개발자에서 컨설턴트로 크셨던 분들은 다시한번 테크니컬쪽으로 가던지 아니면 관리적인쪽으로 가던지.. 하는것이죠. 제품 기술 컨설팅도 어차피 개발자에 국한된 롤이기는 하나 일반적인 개발자와는 차등을 둔다고 알고 있습니다. 특히 기술 컨설팅 영역에서는 누군가에게 미래를 제시해주거나
    더 낳은 기술적 비전을 제시하면서 업무를 수행했던 사례도 몇번 있었죠.

    다른 한편으로는 아키텍트 영역으로 발전하는 사례도 있고 말이죠. 아니면 정말 개발자답게 개발영역에서 크는 분들도 있고요.

    제가 생각했을 때는 관리자영역이나 개발자영역이나 주어진 업무가 있기 때문에 대부분 역할을 수행하기 위해서 힘든 노력을 하고 있는 것을 알고 있습니다. 말씀하신대로 짱뽕 업무를 하면 두마리 토끼를 다 놓치는 셈이죠. 이런경우 조직적인 차원에서 안정화가 안되어 있기때문에 부랴부랴 하는 것이 아닐까요?

    한 사무실에서 관리업무나 개발업무가 짱뽕된 상태, 이거 개선해 나가야 할 문제긴 하죠.
    규현님께서는 소프트웨어공학 컨설턴트라고 하셨는데 구체적으로 어떤일을 하고 계신가요?

  2. 안녕하세요. moova님
    제 글의 의도야 잘 아시겠지만, 크게 기술과 계속 접해있는냐? 아니냐의 차이를 말하는 거죠. 컨설턴트가 관리자는 아니죠. 저는 주로 국내 현실을 많이 조명해봅니다.

    제가 하는 일이 무어냐구요? 소프트웨어공학이 뭔지는 아실 거고.. 소프트웨어 컴퍼니가 소프트웨어를 잘 개발할 수 있도록 조직, 프로세스 등을 개선해주고, 가르쳐주기도 합니다. 말씀하신 컨설턴트와는 좀 다르죠. 저는 아직 엔지니어 Path에 있는 사람입니다. ^^

  3. 두가지중에서 한가지를 선택하라면..저같은 경우 없겠네요.
    단 다른 분류를 더 수용한다하면 기술,제품 컨설턴트를 택하겠습니다.^^

  4. 저도 개발자를 선택할겁니다.^^ 굿잡~

  5. 청하님 안녕하세요.
    개발자 의지 주욱 유지하세요. ^^

  6. Blog Icon
    bawoo

    포스팅 잘 구독하고 있습니다.
    오늘따라 제목이 가슴에 파악 와 닿아서 글을 남겨 봅니다.

    저의 경우에는 두 트랙 사이에서 왔다갔다 하다가 이번 조직 개편 이후 확실하게 매니저 트랙으로 전담하게 된 상황입니다. 역시나 코딩은 개인적으로나 접근으로 해야 할 것이고 업무적으로는 조직 및 프로젝트의 효율적인 관리에 집중해야 할 상황입니다.

    역시 두가지 다 잘하기는 힘든것 같습니다. 개발에도 많은 공을 들이고 공부도 하고 시행착오도 겪어야 하지만 메니지먼트도 그에 못지 않은 가시밭길이더라구요. 3년차까지 정말 힘들었습니다. 좌절도 많이 했구요.
    그래도 이제는 익숙해지니 좀 할만하고 나름 비전도 만들어 갈 수 있을것 같네요.

    좋은 글 감사하고 개발자와 메니저 두 트랙 사이에서 갈등하고 고뇌하시는 모든 분들이 힘내시길 바랍니다.

  7. bawoo님 안녕하세요.
    좋은 관리자가 되세요. 감사합니다.

  8. Blog Icon
    Barry Seok

    안녕하세요. Ray님

    개발자 , 관리자 두가지 일은 회사내의 Position , Power 이런 것을 떠나서 서로 "목표"가 다른 일이라 두가지 역할을 병행하여 잘 한다는 것은 이론적으로도 성립하지 않을 것 같습니다. 예를들어 관리자가 시간이 나서 개발자들 일을 도와 줄 수 도 있겠지만 , 도와 주는 것 자체도 추후 개발자 인사 평가에 문제가 되지 않겠습니까.
    개발자도 아니고 관리자도 아닌 상태가 지속이 되면 회사로서는 매우 큰 손실이 될 것 같습니다.

  9. 석부장님 새해 복 많이 받으세요.

  10. 전 그냥 뼛속까지 개발자를 하렵니다 ㅋ
    개인적으로는 개발자와 후진양성쪽을 해보고 싶어요 ㅎ

  11. 구차니님.. 개발자 화이팅

  12. 개발자 출신이라고 사소한 기술적인 이슈를 모두 가이드 한다는 것에 대한 느낌이
    지금 어떤것인지 정말 확실히 느끼고 있는 상황이기에.. 허탈한 웃음만 나오네요 ^^

  13. zeous님 안녕하세요.
    그런 관리자와 같이 일한다면... 사실 트러블을 피하기 어렵습니다. 정말 Communication 기술이 필요한 시점입니다. 아니면 부서를 옮기는 것도 한 방법...

  14. 개발자 와 관리자... 글쎄...
    2000년 초반 같은 경우야 PL이라 함은 개발 리딩 + 관리 리딩
    이였지만 최근에는 업무 와 기술이 옛날과 비교도
    할수 없을 정도로 복잡하고 규모가 커졌습니다.
    막말로 기술 하나만 리딩하는 것 자체도 상당히
    버거운 현실인데 두 개를 잘한다...
    물리적으로 힘든 경우 입니다. 실제로 사이트에 나가보면
    관리자 롤이면서 본인이 관리자 하기전에 개발 리딩했다면서
    일장 Lip Service를 합니다. 정착 이슈가 났을때는
    발뺌을 하더군요. 오히려 방향성만 흐리게 합니다.
    보다 전문적인 롤 구분이 필요 하다고 생각 하는데
    아직도 회사에서는 옛날 사고 방식에 젖어 있다는게 문제 입니다.

  15. 안녕하세요. Beyond J2EE님
    둘다 잘하는 것은 거의 불가능하다는 얘기입니다.
    하나만 잘하기도 어렵죠. 자신이 잘할 수 있는 것 하나만 집중해야죠.

뛰어난 개발자는 길러지는 것

2009/11/29 16:18 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

이전 글("뛰어난 개발자는 타고나는 것")에서 논리적인 두뇌가 개발자의 Performance에 미치는 영향을 알아보았습니다. 이 글은 원래 상반된 의견을 가진 두 글로 계획된 것인데, 이전 글에 대해서 많이들 관심을 가지고 의견을 주셔서 두번째 글을 바로 올립니다. 
이전 글을 본 독자분들은 자신의 경험에 비추어서 위화감을 느끼시는 것 같습니다. 인정하기 싫은 현실일 수도 있습니다. 사실 이전 글은 사실 경영자가 봐야할 글입니다. 자신을 똑똑한 개발자와 반대편에 두고 무조건 거부감을 둘 필요는 없습니다.

이런 형태의 글은 옛날에도 올렸었죠. ^^


이번 글은 개발자를 위한 글입니다.

Microsoft등의 유수의 소프트웨어 회사들은 상위 0.01% 또는 0.001% 두뇌를 확보하기 위해서 학과를 가지 않고 천문학과, 물리학과 등에서 천재들을 확보하고 있습니다. 그리고 학생 중에서도 소프트웨어 개발에 특별한 재능을 보이는 개발자 후보를  싹쓸이 하기 위해서 엄청난 노력을 기울입니다.
이러한 활동은 국내 대부분의 소프트웨어 회사들은 먼나라 얘기일 뿐입니다. 또한, 이러한 사람들이 개발자가 된다고 해도 우리나라 보통의 소프트웨어 회사에서 진짜 훌륭한 개발자로 성장하기는 어려울 것 같습니다.

똑똑하고 뛰어난 논리 회로를 지닌 사람이 뛰어난 개발자가 될 가능성이 확실히 높기는 하지만, 개발자가 몸담은 환경에 따라서 훌륭한 개발자가 될 수도 있고, 천덕꾸리기가 될 수도 있습니다.
또한 그런 특별한 논리 회로를 지닌 사람만이 할 수 있는 일은 어렵기는 하지만 그리 많지는 않습니다.  대부분의 개발업무는 보통의 두뇌를 가진 사람들이 수행합니다. 물론 이들도 일반인과 비교하면 비교도 안될 정도로 논리적인 두뇌를 가지고 있습니다.
하지만 훌륭한 개발자가 되는 것은 두뇌의 성능에 의해서 결정되지 않습니다. 상위 0.1%의 두뇌를 가지고 있다고 하더라도 훌륭한 개발자가 되는데 크게 유리하지도 않습니다. 훌륭한 개발자는 어떻게 경험과 경력을 쌓아가느냐에 달렸습니다. 

제가 두 글에서 서로 다른 시각을 두는 것은 두뇌에서 나오는 개발자의 Performance실제 개발의 전반적인 Performance의 차이를 보여주기 위함입니다. 어차피 두뇌는 거의 정해진 것입니다. 하지만 개발자가 어떠한 환경에서 어떤 방향으로 성장하느냐에 따라서 10년 후의 Performance와 회사에서의 기여도는 엄청난 차이를 가져옵니다. 이것은 개발자 혼자만의 노력으로 가능한 것은 아니고 회사에서 환경을 제공해 줘야 합니다.

그럼, 뛰어난 개발자로 길러지는 방법에 대해서 알아보겠습니다.

첫째, 먼저 자신을 잘 알아야 합니다.
모든 사람은 장점과 단점이 있습니다. 두뇌는 뛰어나나 표현을 못하고 글을 잘 못쓰는 사람이 있는가 하면 두뇌는 보통이지만 인화력이 뛰어나고 남을 잘 이해해주는 사람도 있습니다. 누구는 발표를 잘하고 누구는 설득을 잘합니다. 누구는 끈기는 없지만 아이디어는 끝내줍니다. 또 누구는 신제품 가지고 놀기를 좋아합니다. 자신의 능력과 취향을 잘 알아야 합니다. 그래야 개발의 수많은 분야에서 어느 분야로 성장할지 결정할 수 있습니다. 소프트웨어 개발자 외에도 가능한 다른 분야는 Project Manager, Product Marketing, QA Engineer, Build and Release, Technical Support 등 다양한 분야가 있습니다.

둘째, 자신의 전문 분야에서는 최고가 되어야 합니다.
자신의 분야에서 최고가 된다는 마인드로 주변의 누구보다도 자신의 분야에서는 많은 지식과 경험이 있어야 합니다. 그렇지 않고 일반지식만 가지고 있다면 소프트웨어 개발자로는 부족하죠. 남들보다 특출난 한 분야가 꼭 있어야 합니다. 모든 분야에서 모두 최고가 된다는 것은 불가능하기 때문에 자신만의 분야를 찾는 것도 중요합니다.

셋째, 넓은 지식과 경험을 가져야 합니다.
항상 코딩에만 집중하는 개발자는 넓은 지식을 가지기 어렵습니다. 개발자는 자신만의 분야 뿐만 아니라 다양한 분야의 지식을 섬렵해야 합니다. 그러기 위해서 가장 좋은 방법은 Peer review입니다. 개발자는 자신의 프로젝트만 할 것이 아니라 다른 팀의 여러 프로젝트의 Review에 꾸준히 참석해서 도움을 주는 것 뿐만 아니라 자신의 경험과 지식도 넓혀야 합니다. Review가 아니면 그렇게 많은 지식을 넓힐 기회가 별로 없습니다. 또한 다양한 Conference에도 꾸준히 참석해서 Technology Trend도 따라가야 하며 인맥도 유지해야 합니다. 많은 경력을 가진 개발자들은 자신의 개발업무에만 치중하는 것이 아니라 회사의 중용한 기술적을 결정에 참여를 해야 하기 때문에 넓은 지식을 자지고 있지 않으면 안됩니다. 
또한 소프트웨어공한의 다양한 분야에 대한 전반적인 경험과 지식도 같이 가지고 있습니다. 그렇지 않고 매일 코딩만 하는 개발자에게 어떻게 높은 연봉을 줄 수 있을까요?

넷째, 긍정적인 마인드입니다. 
회사에 긍정적이고, 팀에 긍정적이고, 자신에게 긍정적이어야 합니다. 그렇지 않은 개발자는 분위기가 음산하고 같이 일하기 거북합니다.
회사의 정책에 호응하고 긍정적이지 못한 개발자는 항상 불만이고 반대합니다. 이러한 패턴은 바뀌지 않고 언젠가는 회사의 발등을 찍을지 모릅니다. 실력이 뛰어나도 이런 개발자는 빨리 내보내는 것이 좋습니다.
팀에 긍정적이지 못한 개발자는 팀웍을 무시하고 자신만을 위해서 일합니다. 이러한 개발자는 다른 개발자들에게 피해를 끼치며 마이너스 생산성을 가집니다.
자신에게 긍정적이지 못한 개발자는 자신감이 없으며 훌륭한 개발자로 성장하기 어렵습니다. 
또한 이런 개인의 기본 자세는 쉽게 바뀌지 않습니다. 따라서 항상 긍정적인 마인드를 유지하기 위해서 꾸준히 노력하고 자신을 설득해야 합니다. 천성이 긍정적인 사람은 저절로 되는 일이지만 그렇지 않은 사람은 노력을 많이 해야 합니다. 부정적인 마인드는 면접시 탈락의 큰 요소도 되기도 합니다.

이 중에서 대부분은 개발자 스스로 노력해서 가능한 것들입니다. 하지만 셋째는 개발자 혼자의 노력만으로는 어렵습니다. 회사에서 그렇게 할 수 있도록 환경을 조성하고 지원을 해줘야 합니다. 그래서 좋은 환경에서 일하는 것이 중요하죠. 지금의 회사가 연봉은 괜찮지만, 개발자로서 성장할 수 있는 좋은 환경이 아니라면 오래 몸담는 것이 오히려 미래에 내 몸값을 떨어뜨리는 일일 수도 있습니다. 불행히 우리나라에는 좋은 환경의 소프트웨어 회사가 적은 편이기는 하지만, 그 중에서도 상대적으로 좋은 환경을 찾는 노력은 필요합니다. 저의 Mission 중의 하나가 그런 환경을 가진 소프트웨어 회사를 많이 만드는 겁니다.

머리는 똑똑하지만, 같이 일하기 어려운 천덕꾸리기 개발자보다는 경험과 지식 및 인성이 두루 균형 잡힌 개발자가 더 가치 있고 회사에 더 필요합니다. 미래의 나는 내가 만들어 가는 겁니다.
 
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
저작자 표시 비영리 변경 금지

Ray.전규현 사람과 기술 개발자, 경험, 지식, 팀웍

Trackback Address: http://allofsoftware.net/trackback/160 관련글 쓰기
  1. 2009/11/30 10:07
    Dreamer의 생각 Tracked from dreamer's me2DAY
  2. 2010/02/12 11:27
    개발자는 길러지는 것 Tracked from neoplog
  1. 매번 비슷한 생각의 글 올려주셔서 또 들어와 버렸네요. 같은 개발자라도 만나보면 항상 코딩관점에서 생각하는 분들이 많습니다. api와 코드를 하루종일 봐도 항상 코드적으로 해결하려고만 하죠.
    저같은 경우는 주로 외국계쪽이나 대기업쪽을 다녔는데 요즘 하고 있는 작은 프로젝트에서는 불만들이 항상 쏟아져 나오고 있습니다. 나중에 긍정적으로 몰입하려해도 분위기들이 불만 투성이라 혼자 긍정이 될 순 없었죠. 오히려 역으로 SRS나 문서들을 쪼고 이만큼 진행한것도 어찌보면 큰 프로젝트에서의 경험이 뒷받침 될 수 있었던 것 같습니다. 큰문화와 체계가 잡혀있던 곳에서 활동한 기술자들이 체계가 잡혀있지 않고 언발에 오줌누기식인 프로젝트를 만나면 어떻게 해야할까요? 역으로 배워야 하지 않을까 생각합니다.
    가끔씩은 불만을 토로하고는 있는데 그 불만이 어떻게보면 조직적인 차원에서의 발전성을 이야기하는 것이지 한 조직을 망하라고 하는 것은 아니거든요^^

  2. 안녕하세요. moova님
    이런 경우는 참 곤란한 경우죠.
    조직을 바꾸려면 힘이 있어야 합니다. 그렇지 않으면 미움만 사기도 합니다. 아니면, 아주 서서히 조금씩 무리없게 바꿔가야 합니다. 지금 꽤 열심히 하고 계신데, 미움사지 않을 정도로 적절히 조절하시면서 하시면 되지 않을까요?

    제일 좋은 방법은 좋은 환경의 회사에서 일하는 것이겠죠?

  3. 아악 사수의 존재가 ㅠ.ㅠ
    그래도 가장 좋은건 누군가가 이끌어주는 사람이 있다는거겠죠.
    (3년째 사수없이 살아가는 3년차 개발자 ㅠ.ㅠ)

  4. Blog Icon
    Richpapa

    지나가면서 글 남깁니다.

    사수가 없다면, 스스로 사수가 되어보려고 해 보세요. 분명 달라집니다. 제대로 된 사수 만나기도 하늘에 별 따기입니다.

  5. 구차니님 안녕하세요.
    전 사수 system을 별로 긍정적으로 생각하지 않습니다. 사수가 있는 것 자체는 좋은 일이지만, 사수를 둬야 하는 원인을 생각하면 부정적입니다. 사수가 아니면 새로 입사한 개발자를 끌어줄 방법이 별로 없기 때문에 사수에게 알아서 하라고 맡기는 경우가 대부분입니다. 제대로 된 환경의 SW회사라면 사수가 없어도 입사 첫날부터 버그도 잡고 제대로 일할 수 있습니다.
    이 글에서도 이러한 제대로 된 환경의 중요성을 강조하고 있습니다. 개발자는 사수가 키워주는 것이 아니고, 제대로 된 환경이 필요합니다.

  6. Blog Icon
    Richpapa

    위의 내용은 뛰어난 개발자가 되기 위한 것이 아니더라도, 어떤 분야건 필요충분조건이라고 보여집니다.

  7. Richpapa님 안녕하세요.
    형이상학적으로 가면 모두 일맥상통하죠.

  8. 잘 읽었습니다.

  9. 열산성님 안녕하세요.
    블로그에 들려 주시고 댓글 남겨주셔서 감사합니다.

  10. 개발자의 한사람으로써 동의합니다. 구구절절 옳은 말씀입니다.

  11. 안녕하세요. 전경헌 사장님
    회사는 여전히 잘 되시죠? 이렇게 블로그에도 들러주시고 댓글도 자주 남겨주시니 정말 고맙습니다.

  12. 좋은 환경의 회사...혹시 아시면 소개좀...^^;;;
    일단 주어진 환경에서라도 뛰어난 개발자가 되기 위해 노력해야 할것 같습니다.^-^
    추천해주신 책~ 잘 보고 있습니다.~ 감사합니다.

  13. sozu님 안녕하세요.
    좋은 환경의 회사는 여러가지 조건이 있지만, 이를 갖추기 위해서는 경영자의 마인드가 가장 중요합니다. 일단 SW를 잘 이해하는 좋은 경영자가 있는 회사라면 크기와 상관 없이 좋은 회사고 그런 회사에서는 배울 것도 많죠. 구체적인 이름을 나열하는 것은 문제가 있어서 말씀드리지 못하겠네요. 나중에 개인적으로 만나면 알려드리죠.

    일단 국내에는 상대적으로 그런 회사가 적은 편입니다. 하지만 미국에는 정말 많죠. 영어를 잘하시고 기회가 되시면.. 또 아직 국내 경력이 그렇게 많지 않으면 미국 SW회사에 지원해보는 것도 괜찮을 겁니다. 하지만 국내에서 이미 경력이 많다면 미국 SW회사에 입사해서도 적응을 못하는 경우가 많아서 권해드리기 힘들겠네요.

    일단 현재 환경에서 노력해보시기 바랍니다.

  14. 조언 감사드립니다..^^ 미국진출은 항상 준비하고 있습니다~
    어제 팀장님과 토론하느라 늦게 퇴근하고 집에 가면서 생각해봤는데요..
    꼭 좋은 환경에서만 좋은 개발자가 나올것 같지는 않습니다. 나쁜 환경이라도 좋게 받아드리고 개선하려고 노력했던 경험을 쌓는 것도 좋은것 같아요..물론 정말 어렵겠지만..
    동료들, 윗분들을 설득하려다 보니 제 스스로가 강해지기 위해 더 많이 연구하게 되더라구요~ 그래도 들어주는 사람이 있다는게 너무 감사한것 같습니다.ㅋㅋㅋ
    그리고 그 회사들은 나중에 꼭 알려주세요~~^^ 감사합니다~

  15. 오랜만에 들어오니 또 좋을 글들이 올라와있네요.
    앞으로는 자주 와봐야 겠습니다.^^

    위의 댓글에서 보면 사수 시스템에 대해서 부정적이신데..
    멘토링이라는 제도와 사수 시스템을 같은 개념으로 보시는것이지요?
    요즘 멘토링노하우 라는 책을 보고 있어서 언급해봅니다.
    규모가 작은 회사에서 체계적인 개발자 교육 시스템을 갖추기란 쉽지가 않을겁니다.
    요즘 개발자 실력 향상 및 교육 방법으로 멘토링 방법을 생각해보고 있는데..
    스스로 공부하려고 하지 않는다면 어떤 방법도 소용이 없겠지요
    항상 가장 부족하고 중요한건 열정인것 같습니다.

  16. 안녕하세요. 크레브님

    용어의 차이를 두어서 설명할 생각은 없습니다. 다만, 사수든 멘토링이든 이를 시행하는 이유와 환경이 중요한 것 같습니다. 회사일이라는 것이 시스템, 프로세스, Role 이런 것들만 잘 정의 되었다고 잘 돌아가는 것은 아니죠. 이런 건 기본 중에 기본이죠. 그외에 멘토링을 통해서 얻을 수 있는 것은 매우 많습니다. 하지만, 흔히 사수제도 도는 멘토링 제도를 하는 이유가 아무런 기초도 되어 있지 않아서 경험있는 사수가 머리속에 있는 것을 하나씩 1:1로 가르치라는 것인데, 시간도 많이 걸리고 효율적이지도 못합니다.

    아직 체계가 없는 회사라면 우선 사수제도라도 시행하는 좋겠습니다. 그리고 빨리 체계를 갖춰야죠. 그래야 비로소 소프트웨어를 제대로 개발할 수 있는 기초중에 기초를 만든 겁니다. 이제 시작이죠.

  17. 안녕하세요. 오랜만에 들어왔습니다.
    저희 회사가 전규현 님의 지원으로 저희 개발부 경쟁력은 물론 연관 부서 경쟁력도 많이 올라갔습니다.
    구성원 대부분이 인정하는 사안입니다.
    더욱 의미있는 것은 서로 Communication 을 더 잘 할 수 있는 기반을 닦았다는데 있습니다.
    뛰어난 개발자가 될 수 있는 환경을 제공하는 회사가 되어야 하는데, 모자란 것이 많다는 것만 아는 경영자이어서 문제가 있습니다.

    개발 출신 경영자로서 단점을 보완하고, 장점을 활용하며 스킬을 높여 나가야겠다는 영감을 주는 글 감사합니다.
    뛰어난 개발자가 나올 수 있는 환경을 조성하고 지원하는 회사가 되도록 노력하겠습니다.
    수고하세요.

  18. 황규환 사장님 오랫만입니다.
    사장님을 비롯해서 개발자들은 아주 인상에 많이 남아 있습니다. 특히 SW 개발을 이해하고 있는 사장님이 회사의 큰 힘으로 생각됩니다.
    글로벌 경쟁력을 갖추기 위해서 앞으로도 해야 할 일이 많지만, 이미 변화의 기초를 갖췄고 나아지는 길을 가고 있기 때문에 앞으로 방향만 제대로 잡아서 성장해나가면 제가 항상 바라는 개발자, 경영자 모두 행복한 SW회사가 될 것으로 확신합니다.
    요즘 계속 너무 바빠서 시간을 못내고 있는데, 조만간에 한번 뵙죠. 건승하십시오.

  19. Blog Icon

    비밀댓글 입니다

  20. 안녕하세요. 오랫만입니다.
    재미있는 거 하고 계시네요. ^^ 저도 바빠서 계속 못나가고 있는데, 나중에 꼭 뵈요.

  21. 안녕하세요, 네오플 공식 블로그 <네오플로그> 운영자입니다. 네오플로그에 본 포스트를 스크랩하고 싶은데요, 가능할까요? ^^ 단, 본문이 조금 길어서 일부 내용은 삭제해야할 것 같은데요. 답변 부탁 드립니다. :) 좋은 글이 많네요.

  22. 안녕하세요. 네피님
    이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
    본문의 일부만 게재하는 것도 얼마든지 가능합니다.
    감사합니다.

뛰어난 개발자는 타고 나는 것

2009/11/27 23:18 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

1. 처음부터 똑똑한 개발자를 뽑아라.
2. 똑똑하지 않는 개발자를 채용해 놓고 똑똑한 개발자로 바꾸려고 시도하지 마라.
3. 특출나게 똑똑하지 않은 개발자도 다 적절한 역할이 있다.
4. 그 역할을 찾아서 제 역할을 하도록 하라. 각 개발자에게 알맞은 역할을 찾아 주고 제대로 일하게 하는 것만으로도 얼마나 힘든지 아는가?
소프트웨어 회사 경영자와 관리자에게 전하는 말입니다.
요즘은 뛰어난 개발자를 구별하기 정말 어렵습니다. Labor market에는 실업자가 넘쳐나지만 뛰어난 개발자는 눈을 씻고 찾아봐도 볼 수가 없습니다. 뛰어난 개발자는 이직을 잘하지 않고 노출이 잘 안되기 때문입니다.

그래서 적당한 개발자, 또는 해당 분야에 경험이 좀 있는 정도의 개발자를 그냥 채용하는 경우가 많습니다. 하지만, 이런 개발자들은 뛰어난 개발자를 대신할 수는 없습니다.
뛰어난 개발자는 타고납니다.
뛰어난 개발자의 필수 조건인 논리력은 태어날 때 이미 50%는 결정되고 교육과정을 거치면서 나머지 49%가 결정됩니다. 사회에 나와서 아무리 노력을 해도 이미 완성된 두뇌는 별로 바뀌지 않습니다. 경험이 쌓이면서 좀더 지식이 풍부해지고 노련해질 뿐입니다.

요즘의 개발환경은 뛰어난 개발자와 그저 그런 개발자를 구별하기 점점 어렵게 만들고 있습니다.
뛰어난 개발자들은 정말 복잡한 알고리즘을 몇 시간 만에 구현해 낼 수 있지만, 그저 그런 개발자들은 몇 달을 줘도 불가능합니다. 하지만, 요즘은 그런 알고리즘을 구현하지 않아도 개발이 가능한 분야가 얼마든지 있고, 일반인 수준의 논리력만 가지고도 개발자로서 일하고 있는 사람들이 넘쳐납니다.

하지만, 이런 그저 그런 개발자들만 잔뜩 모아 놓은 회사는 그저 그런 회사일 수 밖에 없습니다.
물론, 소프트웨어 회사가 돌아가려면 이런 개발자들도 필요합니다. 그런데, 뛰어난 개발자와 그저 그런 개발자를 구분하지 못하는 회사는 챔피언이 될 수 있는 선수를 후보로 썩히는 것과 같은 행동을 합니다.

일단 수학을 잘한다면 뛰어난 개발자가 될 가능성이 아주 높습니다. 물론 수학을 잘하는 모든 사람이 뛰어난 개발자가 될 수 있는 것은 아니지만, 하나의 중요한 요소인 것은 사실입니다. 하지만 수학 실력은 아주 형편없는데 뛰어난 개발자가 될 가능성은 별로 높지 않습니다. 애초부터 복잡한 논리를 처리할 수 있는 두뇌를 가지고 있지 않기 때문입니다.  

경력직 개발자중에서 똑똑한 개발자를 찾기 어려우면 아직 세상 물정을 잘 모른 대학생들 중에서 찾는 것이 좋습니다. 참고로 저도 대학교 다닐 때부터 회사 생활을 했었습니다. 
뛰어난 개발자들은 대학 재학 중에도 이미 뛰어난 실력을 보입니다. 대학에서 적당히 학점 따서 졸업하는 학생들보다 학점은 낮을 수 있어도 확실히 실력은 뛰어날 수 있습니다. 하지만, 요즘 같이 치열한 취업 환경에서는 학점에서 탈락해서 취업이 어려울 수 있습니다. 이런 학생들을 찾아서 회사로 끌어들이는 것이 관리자들이 해야 할 중에서 가장 중요한 일이죠.

요즘은 보통의 머리를 가진 사람도 개발을 할 수 있는 세상이 되었습니다.
그렇다고 보통이나 그 이하의 개발자들만 뭉쳐 놓고 훌륭한 제품을 만들 수 있을 것으로 착각하면 안됩니다. 뛰어난 개발자 채용에 회사의 사활을 걸어야 합니다. 관리자나 HR부서에서는 채용 시즌이나 결원이 생길 때만 잠시 채용에 관심을 둬서는 안됩니다. 1년 내내 채용에 온 힘을 쏟아야 합니다. 그렇다고 미련한 방법도 소용 없습니다. 참신한 방법들을 만이 연구해야죠. 

언젠가 똑똑한 개발자들이 스스로 몰려가는 SW회사가 우리나라에고 생기면 좋겠습니다.

PS) 똑똑하다는 것이 개발자에게 필요한 오직 한가지 조건은 아닙니다. 즉, 똑똑하기만 하다고 최고는 아니죠. 특히 인성과 긍정적인 자세가 중하죠. 이런 부분은 나중에 기회가 되면 풀어 보겠습니다. 또한 다양한 채용 방법에 대해서도 글을 올려 볼 계획입니다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
저작자 표시 비영리 변경 금지

Ray.전규현 사람과 기술 hr, 개발자, 경력, 두뇌, 똑똑한개발자, 수학, 신입, 알고리즘, 채용

Trackback Address: http://allofsoftware.net/trackback/159 관련글 쓰기
  1. 2009/11/28 15:05
    dazzi의 느낌 Tracked from dazzilove's me2DAY
  2. 2009/11/29 00:07
    세라비의 생각 Tracked from josephjang's me2DAY
  3. 2009/11/30 09:18
    의사소통 능력 over 알고리즘 착안 Tracked from Younghoe.Info v3
  4. 2009/11/30 11:26
    Dreamer의 생각 Tracked from dreamer's me2DAY
  1. 개인적으로 문과 성향이 짙긴 하지만 컴퓨터 하나만 보고 이과를 선택한 저로서는

    수학과 개발능력간의 상관관계라.. 실제로 느끼는 바가 있어서 그런지 몰라도 좀 씁쓸하네요.

    하지만 개발능력이 높다고 해서 뛰어난 개발자라는 논리에는 쉽게 수긍이 가질 않네요.

    극단적인 예입니다만 개인적인 개발능력이 아무리 뛰어나다 해도

    팀웍을 해치거나 자기만 이해할 수 있는 코드를 개발하시는 분을 뛰어난 개발자라고 할 수 있을까요? ^^

  2. 안녕하세요. 제주소년님.
    PS에 말씀하신 내용이 있습니다. 너무 당연한 얘기죠. 뭐 굳이 제가 강조를할 필요도 없는...
    똑똑하다고 뛰어난 개발자는 아니죠. 개발자를 채용할 때 머리보다 먼저 보는 것은 마음가짐, 긍정적인 마인드, 팀웍을 잘 유지할 수 있는 지 등입니다.
    본인을 너무 Underestimate할 필요는 없을 것 같습니다. ^^

  3. 수학..... 전 중1인데 아직 수학을 잘하지 못하는데요. 지금부터라도 노력하면 '똑똑한 개발자'가 되는 것이 가능할까요?

  4. 하나님 안녕하세요.
    이것 또한 논리적인 판단인데... 수학을 매우 잘하면 일단 논리력이 뛰어날 가능성이 아주 높습니다. 그래서 뛰어난 개발자가 될 가능성이 높죠.
    하지만, 수학을 못한다고 뛰어난 개발자가 될 가능성이 낮다는 것은 아닙니다. 첫째 수학과 논리력은 100% 동일화 할 수 없고, 수학을 잘하지 못하는 원인이 두뇌가 아니고 다른 원인 일수도 있습니다.
    그래서 뛰어난 개발자가 될 수 있다 아니다는 말할 수 없습니다.
    위의 글은 소프트웨어 회사를 운영하는 사람에게는 유용할지 몰라도 개발자에게는 별 소용이 없는 글입니다. 회사 운영자들은 수많은 개발자중에서 선택을 해서 채용해야 하지만, 개발자는 본인이 전부 즉 100%이기 때문이죠.
    또한 개인으로만 본다면 똑똑한 개발자가 더 성공하고 더 행복하고 더 만족을 느끼는 것은 아닙니다.
    또한 똑똑한 개발자가 퍼포먼스가 더 높은 것은 절대로 아닙니다. 단 똑똑한 개발자만이 할 수 있는 일이 몇가지 있을 뿐입니다. 따라서 나머지 대부분의 일들은 성실한 개발자들의 몫이고 이들이 회사에 미치는 영향이 더큽니다.
    자신이 어느 영역에 해당하는지 그리고 어느 방향으로 성장해야 할지는 스스로를 잘 알아야 합니다. 자신의 두뇌의 한계를 모르고 덤비는 것은 히딩크가 감독으로는 세계적인 명장이 될 수 있는데 끝까지 선수를 해보겠다고 하는 것과 같을 수 있습니다.
    그래서 소크라테스가 몇천년전에 이미 "너자신을알라"라고 했나보죠.

  5. 씁쓸하지만 인정할 수 밖에 없는거 같아요-_-;

  6. 안녕하세요 두렁청해님
    별로 씁쓸해할 필요는 없는 것 같습니다. 이와 반대되는 글, 즉 개발자를 위한 글을 지금 준비중입니다. ^^

  7. Blog Icon
    김무니

    개발자도 개발자지만...
    제발 기획자도 뛰어난 기획자로 쫌...

  8. 김무니님 안녕하세요.
    더욱 척박한 분야가 기획분야입니다. 특히 국내 소프트웨어 업계에서 기획 분야는 척박하기 이를데 없죠. SI나 용역으로 먹고하는 회사들이 주를 이루니 그렇기도 하고 기획(마케팅)의 중요성을 잘 몰라서 투자를 잘 안하니 뛰어난 개발자를 양성할 수도 없죠.

  9. 아.. 초 씁쓸입니다 ㅠ.ㅠ

    그래도 뛰어난 개발자라고 해서 대단한 알고리즘이 툭~하고 튀어나오고 그러진 않을꺼 같아요.
    그건 뛰어난 개발자라서가 아니라.. 그냥 천재인겁니다 ^^;

  10. 구차니님 안녕하세요.
    저도 씁쓸하지만 현실이긴 하죠. 전 똑똑한 개발자를 좀 많이 봐왔다고 생각합니다. 하지만 10여년이 지난 지금 성공은 두뇌순으로 되지는 않더군요. 하지만 회사 경영자 입장에서는 똑똑한 개발자가 필요하죠.

  11. 뛰어난 개발자는 이직을 잘 하지 않고 노출을 잘 하지 않다고 하는건.
    어떻게 보면 이글과 좀 상반되는 이야기 인것 같습니다. - http://allofsoftware.net/117
    정말로 인질범처럼 하나를 움켜잡고 프로젝트 끝까지 질질 끄는 사람들이 많습니다. 누군가는 계속되는 알고리즘을 제공해주는 반면. 이직을 잘 하지 않는 개발자중 상당수는 인질범심리가 꽤나 많더군요.

  12. 안녕하세요. moova님
    현실적으로 일반적으로 똑똑한 개발자는 회사에서 붙잡으려는 경향이 많고, 이직을 하려고 Labor market에 나오는 것이 아니라 그전에 누가 먼저 데려가곤 합니다. 그런 의미죠. 제 이전 글들고 모두 읽고 기억하고 계시는 군요. 감사합니다.

  13. Blog Icon
    Richpapa

    뭔가 동의 할 수 없는 이유는 뭘까요? (논리력이 떨어지기 때문일까요?) 초.중까지 수학경시대회 나갈 만큼 수학을 잘 했었고(상도 많이 받았지요), 학부 때는 교수가 잘 설명하다가 갑자기 그날 따라 못 풀더군요. 그래서 과감히 문제에 도전을 받고 풀었는데, 중간고사/기말고사를 보지도 않고 A+를 맞았고. 공업수학도 곧 잘 해서, A+, 알고리듬, 고급 알고리듬도 A+이고, 수치해석 A+를 맞았는데... (이 정도면 수학을 잘 한다고 봐도 될까요?) 나름 뜻이 있어 학부 3학년 때부터 산학협동을 시작으로 일을 하기 시작을 하긴 했는데...

    그런데... 제가 개발을 잘 하는 사람인지는 모르겠습니다. 가끔은 후배녀석들이 수학을 잘해야 되냐고 묻는데, 나중에 필요할지 모르니까. 공부는 해둬라 정도였습니다. 제 업무가 수치 계산적인 부분이 필요한 콴트 개발자도 아니지만.... 글쎄요.

    전체 그림은 무엇을 말씀하시는지 알겠지만, 국부적인 부분에 반감이 생깁니다.

    "뛰어난 개발자의 필수 조건인 논리력은 태어날 때 이미 50%는 결정되고 교육과정을 거치면서 나머지 49%가 결정됩니다. 사회에 나와서 아무리 노력을 해도 이미 완성된 두뇌는 별로 바뀌지 않습니다. "

    두뇌에 대해서 고정적인 듯 말씀하시는데, 뇌는 결정되지 않습니다. 또는 경험과 노련이 논리적인 것과 상관이 없다는 뉘앙스적 말씀하시는 것에 대해서는 상당히 반감이 생깁니다. 아... 전규현 컨설턴트도 틀린 말을 할 때도 있구나 라는 생각이 들었습니다. 뇌에 관련 된 책을 좀 읽으셨으면 합니다.(잘 모르면 제가 추천해드리겠습니다.) 러닝 스타일(learning style = 태아에서부터 만들어지는)이 존재하긴 하지만 이것은 계발을 통해서 바뀝니다.

    그러니, 논리력 상태를 통해서 개발능력이 뛰어나다 아니다라고 말씀하시는 것에는 동의 할 수 없습니다. 내면의 어떤 동기부여에 따라서 그 사람의 스타일은 바뀝니다. 전체적으로 무슨 말씀인지는 잘 압니다. 저도 소위 말하는 문서면접이 아닌 구글만큼은 아니지만 시험을 보고 회사를 다닙니다.(수학문제도 있었고요.)

    하지만, 논리, 뇌에 해당하는 문맥은 전체 글을 망가트리는 것 같습니다.

  14. 안녕하세요. Richpapa님
    일단 좋은 의견 감사합니다. 말씀하신 내용에 100% 공감하고 또한 두뇌의 능력은 저도 잘 알고 있습니다.
    글이란 한문장만 뽑으면 이상할 수도 있고, 또 타겟이 아닌 사람은 크게 반발할 수도 있습니다.
    결론은 맨 위에 있습니다. 글이 타깃은 경영자구요. 두뇌는 얼마든지 개발 가능하니, 무조건 뽑아서 훈련을 시켜서 똑똑한 사람으로 만드는 일을 하지 말라는겁니다. 거의 불가능하다는 거죠. 개인입장에서 보면 가능한 일이 회사입장에서는 불가능한 거죠.
    그리고 이글은 서로 반대되는 의견의 2글을 대비시켜서 적은 것의 1탄입니다. 이글을 보고 반감들을 충분히 많이 가지셨다면, 경영자들이 개발자를 어떤 식으로 보고 있는지 충분히 이해를 하셨으리라고 봅니다. 이 글은 경영자 View에서는 사실입니다.
    수학을 잘하면 똑똑한 개발자가 될 가능성이 높은 것이고, 필요 충분 조건은 아닙니다. 그리고 그 반대되는 의견이 다음글에 있으니 잘 보시죠.

  15. 경영자의 한사람으로써 동의합니다. 이런 비밀을 공개하시다니... ㅎㅎㅎ

  16. 전경헌 사장님 안녕하세요.
    항상 블로그 잘 보고 있습니다. 경영 마인드가 없는 개발자들은 이 글에 대해서 반감을 많이 느끼는 것 같습니다. 오히려 경영자가 이런 개발자들과 똑같이 완전 개발자 마인드라면 회사 경영이 어렵겠지요.
    전사장님은 잘 이해해주시네요.

  17. Blog Icon
    마이

    저는 개발자는 수학뿐만이 아니라 국어도 잘해야한다고 생각합니다.
    결국, 코드라는 것은 자기의 생각을 표현해내는 것이기 때문에, 표현력이 요구된다고 생각하구요. 또 훌륭한 표현력은 다른 사람들과 공유할 수 있는 산출물 작성에도 꼭 필요하기 때문이죠.
    현장에 있다 보면 많은 분들이 이런 점은 간과하시는 거 같더라구요.

  18. 안녕하세요. 마이님
    동감입니다. 조엘도 글을 잘 못쓰는 개발자는 뽑지 않는다고 했죠.

개발자 부품화 vs. 만능 개발자

2009/10/16 23:46 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

개발 프로세스를 너무 따지만 개발자가 부품화 되고 창의성이 줄어든다고 합니다.
또 분석, 설계, 구현, 테스트를 나눠서 하게 되면 부품화되고 비인간적이라고 하기도 합니다.
그래서 개발자가 이것 저것 다하는 만능의 역할을 수행하게 합니다.

투수는 공만 던지고, 골키퍼는 골만 막는 것은 부품화일까요?

이렇게 전문화되지 않고 모두 만능으로 잘하는 동네 축구를 해서 어떻게 세계적인 소프트웨어와 경쟁할 수 있을까? 잘 하고 싶어도 동네축구를 계속 하는 이유는 제대로 된 방법을 경험해 본적이 없어서 그렇습니다. 개발자가 한명인 회사나 개발자가 50명인 회사가 개발하는 방법은 크게 다르지 않습니다. 개발자가 개발 전반의 모든 일을 다 알아서 하고 프로젝트는 개발자의 역량과 의지에 달려있습니다. 

동네 축구를 벗어나기 위해서는 소프트웨어를 개발하는 전체 프로세스를 이해해야 합니다. 이에 따라서 프로세스를 체계화 하고 각 역할별 전문화된 조직을 갖춰나가고 설령 인원이 매우 적어서 한명의 개발자가 여러가지 일을 수행하더라도 업무의 구분이 필요합니다. 나중에 조직이 커지면 일을 떼어 줄 수 있어야 합니다.

만능 개발자는 자칫하면 정작 개발자로서의 가치 있는 성장에 지장을 초래할 수 있습니다. 

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
Image by the_ward
저작자 표시 비영리 변경 금지

'사람과 기술' 카테고리의 다른 글

뛰어난 개발자는 타고 나는 것  (18) 2009/11/27
가장 말 안듣는 개발자는?  (8) 2009/11/08
개발자 부품화 vs. 만능 개발자  (8) 2009/10/16
거짓말쟁이 개발자  (13) 2009/10/05
시한부 프로그래머  (13) 2009/09/22
부지런한 개발자가 되라  (9) 2009/09/11

Ray.전규현 사람과 기술 개발자, 부품

Trackback Address: http://allofsoftware.net/trackback/149 관련글 쓰기
  1. 결론만 말하자면, 개발자에게 요구되는 항목들은
    갈수록 많아지고, 성인 군자에 슈퍼맨이 되기를 요구하는 것 같아요

    말만 거창한 화이트 칼라 계층이지
    실은 21세기 IT 노예 그 이상도 이하도 아닌거 같다는 생각이 종종들게 되더라구요.

  2. 구차니님 안녕하세요.
    개발자가 슈퍼맨이 되어서 알아서 다 해주기를 원하는 회사는 회사가 가지고 있는 시스템이 없기 때문입니다. 이런 회사에서는 개발자가 가치가 높은 일보다는 막노동꾼처럼 일하기 쉽습니다. 개발자가 모든 일을 할줄은 알아도 수많은 개발자들이 구분없이 서로 같이 모든일을 다하는 구조는 희망이 없는 구조입니다.

  3. 축구 이야기가 있어서 적어놓고 가고 싶네요.멀티 플레이어를 생각해보면 그가 수비 포지션을 하고 있으면 대신 공격 포지션으로 다른 사람이 움직이 것이고, 그가 공격 포지션으로 가면 다른 이가 수비 포지션으로 갑니다. 즉 동시에 두 포지션을 뛰는것이 아닙니다. 근데 회사는 착각을 하죠. 멀티 플레이어는 두가지 이상을 동시할 수 있다고..

  4. 천랑님 안녕하세요.
    좋은 예이네요. ^^ 혼자서 하는 프로젝트라면 멀티플레이어로 일해야 하지만, 개발자만 십수명인데, 다 똑같이 일한다면 효율이 더 떨어지겠죠.

  5. 저도 위 글에 동의하면서도 동의하기 힘든 부분이 있습니다. 물론 각각의 영역에 대한 전문화가 필요한 것은 사실입니다. 하지만 전문화의 정도가 어느 정도 선까지 적합한지에 대한 가이드는 없는 것이 사실입니다. 물론 가이드를 만든다는 것이 힘들다는 것은 사실이지만 전문화를 너무 강조할 경우 숲을 보지 못하고 나무를 보는 경우를 종종 봅니다.
    점점 더 많은 개발자가 전문화되고 있어서 자신이 현재 하고 있는 일은 파악할 수 있지만 전체를 볼 수 있는 능력을 가진 개발자가 점점 더 사라지고 있다는 것입니다. 물론 멀티 플레이어를 한다고 해서 해결되는 것은 아니지만 전문화가 너무 강조되다보니 개발자가 한 분야에만 너무 국한된 생각을 한다는 것이 문제점으로 부각되고 있습니다.
    전문화는 하지만 적절한(?) 전문화를 이야기해야 될 때이지 않나 싶습니다. 이 같은 글이 전문화를 반드시 해야 되는 것으로 비쳐질까 생각되어 덧글 남겨봅니다.

  6. 자바지기님 안녕하세요.
    당연히 개발자는 개발전반의 거의 모든 부분을 다 할 줄 알아야 합니다. 심지어는 테스트까지... 코딩만 할 줄 알고 특정 기술만 알아가지고 소프트웨어 전문가라고 할 수는 없겠죠.
    그렇다고 프로젝트에서 모든 것을 다 할 수는 없는대도 현실은 그렇지 않은 것 같습니다.
    실제로 전문화를 하더라도 개발자의 경험과 실력에 따라서 하는 일은 달라질 것입니다. 누구는 주로 분석을 하고 누구는 쉬운 코딩만 할 수 있습니다.
    프로젝트의 규모에 따라서 말씀하신 것처럼 적절한 전문화가 필요하지요. 좋은 의견 감사합니다.

  7. Blog Icon
    블랙스톤

    개발자가 모든 개발과 관련된 업무를 다 잘한다면 좋겠죠~
    정말 천재적인 사람이 아닌 이상 그건 힘들다고 봅니다. 제가 생각 할때는 기본적으로 개발관련된 부분에 대한 포괄적인 관심이 있어야 한다고 봅니다. 옛날처럼 DOS 에서 C 로 개발할때와 지금은 상황이 많이 다르죠
    또한 새로운 기술이 많이 나오는 분야인데 꼭 자기가 하고 있는 부분만 관심을 둔다면 다른 분야 개발을
    하는 개발자나 다른분야 사람들(시스템엔지니어 , 네크워크관리자, DB관리자)와 대화할 때 문제가 생기죠. 저는 같이 일하는 경력이 얼마 안되는 개발자들에게 항상 이런 얘기를 해줍니다.~ 개발과 관련된 많은 기술들을 포괄적으로 습득하라고 얘기합니다 또한 자기가 관심있는 전문적인 부분의 스킬을 중점적으로 up시키라고요~ 하지만 다른 사람과 차별되는 자신만의 무기(전문분야)이 필요하다고 강조 합니다. 그래야 나이 50에 개발 할 수 있지 않을까요? ^^

  8. 블랙스톤님 안녕하세요.
    개발자는 기본적으로 개발에 관련된 다양한 분의 지식을 두루 섭렵해야죠. ^^
    이런 지식의 범위와는 별개로 소프트웨어를 개발할 때는 다양한 업무가 필요합니다. 예를 들어서 테스트만 하더라도 전문 테스터에게 일을 나눠주는 것이 더 효율적이지만 주먹구구식 회사는 개발자가 더 테스트를 잘한다고 착각하면서 개발자에게 테스트를 맡깁니다.
    "할줄아는것", "잘하는것", "해야하는것"은 서로 다르죠.
    이러한 의미에서 전문화는 필요하죠.

거짓말쟁이 개발자

2009/10/05 15:39 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

의도적이던, 의도적이지 않던 간에 개발자의 거짓말은 개발자 스스로의 신뢰를 떨어뜨릴 뿐만 아니라 회사의 중요한 결정을 잘못된 방향으로 이끌기도 합니다.

거짓말쟁이 개발자들은 거짓말을 하면서도 본인이 거짓말을 하고 있다는 것을 자각하지 못하거나 온갖 합리화를 할 수 있는 핑계로 무장을 하여 진실을 말하고 있는 자기 최면에 빠지기 도합니다.

사람들은 계속 속아주지는 않습니다. 결국 신뢰도 떨어지는 개발자가 될 수 있습니다.

모르는데 아는 것처럼 말하는 것
이름 한번 들어본 기술 또는 샘플 코드 한번 돌려본 것 가지고 아는 척하는 경우를 흔히 볼 수 있습니다. 이때는 자신이 어느 정도 아는지 정확하게 밝혀야 합니다. "들어는 봤다", "프로젝트에 적용해 봤다", "남을 가르칠 수 있다"

중요한 의사 결정에 있어서 자신이 잘 아는 기술을 유리하게 주장하는 경우
자신이 잘 아는 기술을 계속 고집하여 자신의 지식이 계속 유용하게 하려는 주장은 흔히 들을 수 있습니다. 이로 인해서 회사가 잘못된 결정을 내리면 자칫 회사의 존폐가 위태로울 수도 있습니다. 또한 이런 개발자들은 다양한 기술을 접할 기회가 줄어들어서 결국 자신의 몸값을 낮추게 됩니다.

자신의 파워를 유지하기 위하여 그릇된 정보를 사실인 것처럼 말하는 경우
회사를 다니는 직원이라면 자신의 힘을 유지하고 키우는 것이 중요하지 않을 수는 없습니다. 하지만 이를 위하여 거짓된 정보로 잘못된 결정을 유도한다면 결국 자신의 도끼로 자신의 발등을 찍는 일이 될 수도 있습니다.

사실, 의견, 정보를 혼동하는 경우
가장 흔한 거짓말입니다. 말을 하면서도 이것이 자신의 의견인지? 공식화된 사실인지? 누구의 의견인지? 정확하게 밝히지 않는 것입니다. 이 이야기를 듣고 결정을 하는 사람들은 의견을 사실로 오해해서 중요한 의사 결정을 할 수도 있습니다. 그런 다음에 "누가 그렇게 얘기했다"라고 변명하는 것은 통하지 않습니다.

자신의 성과를 과대 포장하는 경우
자신이 개발한 SW를 마치 대단한 성과물인양 광고를 하고 심지어는 Open source를 가져다가 뚝딱뚝딱 만든 것을 자신의 창작물인 것처럼 속이는 경우도 많습니다. 자신을 전혀 홍보하지 못하는 것도 문제지만, 이렇게 너무 과대 포장하는 것은 자칫 회사도 과대 포장이 되고 결국 다른 개발자들의 시기의 대상이 되기도 합니다.

자신의 실력을 과대평가하여 불가능한 일을 할 수 있는 일처럼 말하는 경우
개발자는 자신의 실력의 한계를 잘 알아야 합니다. 자신의 실력을 뛰어넘는 일이라면 사실대로 밝혀서 회사의 지원을 받아야지, 거짓말로 일에 뛰어 들어서 프로젝트를 크게 망친다면 누구를 탓할 수는 없습니다. 이 거짓말은 마치 거짓말이 아닌 것처럼 생각되기도 하지만, 아주 흔한 거짓말 중 하나이며, 자신이 자신을 몰랐다는 핑계는 진짜 핑계일 뿐입니다.

결국 이런 거짓말들을 일삼는 개발자들은 거짓말이 또 거짓말을 낳게 되고, 적당한 핑계에 익숙해 지게 됩니다. 결국 제살을 깎아먹는 일이 됩니다. 또, 이런 개발자들이 더 대우받고 활개 치는 회사라면 같이 일하는 개발자들은 참 피곤한 노릇이 아닐 수 없습니다.

자칫하면 이런 개발자들의 많은 거짓말들이 거짓말이 아닌 것처럼 묻혀버리는데, 항상 커뮤니케이션을 할 때는 모든 것을 확실히 하여 특히 위 예와 같은 것들은 단단히 확인을 받아서 거짓말에 대한 책임을 지게 해야 항상 더 올바른 정보로 정확한 커뮤니케이션이 일상화 됩니다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
(image by 신진아)
저작자 표시 비영리 변경 금지

'사람과 기술' 카테고리의 다른 글

가장 말 안듣는 개발자는?  (8) 2009/11/08
개발자 부품화 vs. 만능 개발자  (8) 2009/10/16
거짓말쟁이 개발자  (13) 2009/10/05
시한부 프로그래머  (13) 2009/09/22
부지런한 개발자가 되라  (9) 2009/09/11
게으른 개발자가 되라!  (6) 2009/08/28

Ray.전규현 사람과 기술 개발자, 거짓말

Trackback Address: http://allofsoftware.net/trackback/147 관련글 쓰기
  1. 종종 대화하다 인용하고 싶은 딱 그런 정리와 분류입니다. (감탄)

  2. 영회님 오랫만입니다. 반갑습니다. :)
    인용 free입니다. ㅎㅎ 종종 들러 주세요.

  3. 내가 나를 모르는데 난들 너를 알겠느냐~ 인가요 ㅎ
    정말 자신의 능력을 확실히 모르니 애매하긴 합니다.

    그래도 일단 해본것과 아는것중에는 해본것을 저는 높게 쳐주는 편이랍니다

  4. 구차니님 안녕하세요.
    플라톤이 말하기를 오류는 이중의 무지라고 합니다. 첫째가 모르는 무지이고, 둘째가 모르는 것을 안다고 믿는 것이지요. 결국 무지한 자는 그가 모른다는 것을 모른다는 겁니다.
    결국 이러한 오류는 워낙 흔하기에 플라톤이 얘기를 했겠죠. ^^
    "너자신을 알라", "아는 것이 힘이다." 수많은 철학자들이 자신을 아는 것에 대해서 수천년간 역설한 이유는 그것이 너무 어렵기 때문일 겁니다.

    그렇다고 그러한 착각과 거짓말을 당연한 것으로 받아들이면 프로젝트와 회사는 산으로 가겠죠. ^^
    저도 일단 해본것을 더 높게 쳐 줍니다. 단, 한번 해본 것 가지고 전문가인척 하는 것은 곤란하겠죠.

    지금까지의 얘기는 회사내에서 동료들과 일할 때의 얘기입니다. 영업할 때나 다른 목적으로는 가끔 잘 몰라도 아는 척해야 할 때도 있죠.

  5. Blog Icon
    김경록

    제가 거짓말쟁이 개발자는 아닌지 한 번 생각해 봤습니다.

    말 할 때 항상 주의해야 겠다는 생각이 드는군요

    좋은 글 감사합니다 ^^

  6. 안녕하세요. 김경록님
    엔지니어라면 논리적이고 정확한 표현이 필요하겠죠. ^^

  7. Blog Icon
    풀그리미

    좋은글 잘 읽었습니다.

    "안다"라는 기준이 모든 사람들마다 틀리기 때문에
    많이 겪어본 동료라면 그 동료를 거짓말쟁이로 몰기 보다는
    자신의 기준으로 적정하게 생각하는것도 한가지 방법이 될 수 있겠다는 생각을 해 봅니다.

  8. 풀그리미님 반갑습니다.
    그렇습니다. 너그러운 사람은 적당히 판단할 수 있어도, 내가 만약 의도적이던, 그렇지 않던 거짓말을 하게 되면 내 주위의 수많은 사람들의 머리속에 어떻게 기억이 될지는 천차만별입니다. 다른 사람들의 생각까지 내가 조정할 수는 없잖아요? 결국에 내가 한 언행은 그런식으로 책임을 지게 되는 것이지요.
    사실 세상은 그리 너그럽지 않죠.

  9. 사실과 의견, 정보가 섞여있다. 그리고,
    잘 모르는 것을 안다고 하는 부분..

    주위에서 많이 보기도 하고,
    또 혹시 제가 그러지 않았나 반성합니다.^^
    좋은 글 감사합니다.

  10. 임성현님 안녕하세요.
    임성현님 블로그 잘보고 있습니다.

  11. 프로그래밍 언어를 학습하고, 개발자의 길을 걷고 있는 사람들의 작은 까페를 운영하고 있는 중에 이 글을 보고 나서 저희도 운영 방침에 약간의 수정사항을 반영하게 되었습니다. 사실과 개인 의견, 중론, 정의는 분명히 다르지만 인터넷 상에 떠도는 수 많은 정보들은 마치 자신이 "정의" 또는 "중론"인 양 내세우는 경우가 많더군요.
    전문성을 확보하신 분들에게는 이 같은 정보들의 참/거짓의 판별 능력이 있으시겠지만 아직 그러한 능력이 부족한 초보자에게는 엄청난 덫이 될 수도 있다는 것이 정말 위험하다고 판단이 들더군요.

    결국 저희도 정보를 전달하고자 할 경우엔 그것이 "개인의 의견"인지, "사전적 정의"인지, "해당 기술의 개발자가 직접 정의내린 사용법"인지 등등에 관한 분류를 글 틀로 반영하게 되었습니다.

    .덧붙임. 항상 좋은 글 올려주시는 것에 진심으로 감사드립니다.

  12. 옥수석님 반갑습니다.
    흥미로운 일을 하고 계시는 군요. Offline 카페인가요? Online카페인가요? 물론 Online 카페겠죠? 저도 한번 방문해보고 싶군요. URL 좀 알려주세요.

  13. Blog Icon

    비밀댓글 입니다

시한부 프로그래머

2009/09/22 09:39 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed
우리나라 개발자들은 10년 후가 매우 불확실합니다.

오랫동안 프로그래머로서 일할 수 있도록 보장이 되지도 못하고, 그런 Role model을 본 적도 별로 없기 때문이죠. 그래서 5년~7년쯤 일하고 나면 미래를 걱정해야 할 시기가 도래합니다.
윗사람들은 자꾸 관리를 하라고 하고, 선배들을 봐도 15년차 개발자보다 15년차 관리자가 회사 내에서 영향력도 더 크고, 연봉도 더 높습니다.
개발이 좋기는 한데 계속 개발자로만 머물려면 미래를 많이 희생해야 합니다.
그래서 개발과 관리 양다리를 걸치기도 하는데, 결국 관리도 잘 못하고 개발도 잘 못하는 어정쩡한 상태가 계속 되기도 합니다.

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

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

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

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

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

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
저작자 표시 비영리 변경 금지

'사람과 기술' 카테고리의 다른 글

개발자 부품화 vs. 만능 개발자  (8) 2009/10/16
거짓말쟁이 개발자  (13) 2009/10/05
시한부 프로그래머  (13) 2009/09/22
부지런한 개발자가 되라  (9) 2009/09/11
게으른 개발자가 되라!  (6) 2009/08/28
과거의 개발자 vs. 미래의 개발자  (16) 2009/04/28

Ray.전규현 사람과 기술 Career Path, 개발자

Trackback Address: http://allofsoftware.net/trackback/145 관련글 쓰기
  1. Blog Icon
    김경록

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

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

  3. Blog Icon
    오소리킬러

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

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

  5. Blog Icon
    Y

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

    조언을 얻고 싶습니다.

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

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

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

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

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

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

    글 잘 읽고 갑니다. :)

  8. 우울한딱따구리님 반갑습니다.

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

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

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

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

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

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

  11. 감사합니다. ㅎㅅㅎ

  12. Blog Icon
    서윤아빠

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

  13. 서윤아빠님 안녕하세요.

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

Copy & Paste의 종말

2009/07/31 23:53 by Ray.전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

직업상 다른 개발자들이 작성해 놓은 코드를 볼 기회가 정말 많습니다.
그러다보면 자주 접하는 것이 복사된 코드들입니다. 

소소코드 Copy & Paste는 개발자의 대단히 큰 잘못입니다. 즉, 소스코드를 복사해 놓는 것은 쉽지만 그로 인해서 지속적으로 회사와 후배들이 부담을 져야 하기 때문입니다. 즉, 회사의 생산성을 갉아 먹는 행동입니다. 그런 개발자는 해고가 되어야 마땅하지요.

한쪽 제품이나 컴포넌트에서 사용한 함수나 소스코드들을 복사해 와서 다른 제품이나 컴포넌트에서 사용하는 것입니다. 동일하게 그대로 사용하는 경우도 있고, 약간 수정해서 사용하는 경우도 있습니다.

이런 일이 반복되다보면 비슷한 코드들이 회사의 전체 소스코드 중에서 여기 저기 산재하게 됩니다. 그러다가 버그가 발생하는 그중 일부는 고쳐지고, 일부는 여전히 버그를 가지고 있습니다. 또 해당 기능이 변경이 될 때도 이를 모두 찾아서 변경하기란 쉬운 일이 아닙니다. 이쯤 되면 개발은 창의적인 작업이 아닌 점점 노동이 되어 갑니다.

이런 공통적인 소스코드들은 공통모듈을 잘 계획해서 공통적으로 사용할 수 있어야 합니다. 공통모듈은 전사적으로 관리가 되어서 효율적으로 사용할 수 있도록 해야 하며, Copy & Paste의 욕구가 생겨도 시간을 약간 더 들여서 공통모듈화 하는 노력을 들이는 것이 필요합니다.

공통모듈을 관리하려면 당연히 소스코드관리시스템을 잘 사용해야 하고, 각 제품이나 컴포넌트들이 공통모듈들과 더불어 효과적으로 빌드가 가능하도록 빌드 스크립트도 준비가 되어야 합니다.

Peer review, code review가 정착되어서 다른 팀에서 서로 모르고 중복된 작업을 하는 것을 줄여야 합니다.

또, 특정 고객을 위한 커스트마이즈된 제품을 만들 때 대규모 소스코드 복사가 일어나는데, 이를 통제없이 만들고 방치하면 함수 몇개 복사한 것과는 비교도 안되는 큰 비용을 치뤄야 합니다. 물론 상황에 따라서 다르기는 하지만, 이런 경우에는 가능하면 소스코드 브랜치를 줄이고 브랜치를 만들더라도 소스코드관리시스템을 이용하여 잘 관리를 해야 합니다. 그리고 추후 Merge를 통해서 브랜치의 수명 주기를 짧게 가져갈 필요가 있습니다.

여기저기 복사된 쌍둥이 소스코드들... 참 문제가 아닐 수 없습니다.

이미지출처 : Microsoft Office Online
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
저작자 표시 비영리 변경 금지

'프로젝트 > 구현' 카테고리의 다른 글

Copy & Paste의 종말  (8) 2009/07/31

Ray.전규현 프로젝트/구현 개발자, 구현, 복사, 소스코드

Trackback Address: http://allofsoftware.net/trackback/77 관련글 쓰기
  1. 2009/08/01 14:16
  1. 제가 생각하는 copy&paste의 문제는 이해부족에서 온다고 생각합니다.

    체계적으로, 기존에 다른 사람이 작성한 코드를 분석하지 못했기때문에,
    (이유는 여러가지가 있겠죠? 실력부족, 문서화안됨, 스파게티코드, 시간부족 등)
    기존에 잘 돌던코드는 그대로 두고 플러스 알파만 내가 했다... 뭐 이런거 아닐까요?

    또 비슷한 측면에서,
    자신이 작업하던 코드의 경우에도, 설계가 세밀하게 진행되지 않은 상태에서,
    일단 만들어보면서 얼기설기 작업해나가다 보면,
    적절한 타이밍에 리팩토링 시기를 놓쳐버린 상태가 되는 경우가 있습니다.

    시간비용 + 귀차니즘 때문에, Copy&Paste로 떡칠이 되기 시작하는 거죠.


    마지막으로는 코딩스타일에서 올 수 있겠네요.
    현재 제가 주로 작업하는 분야가 C언어를 사용한 임베디드 분야 (wipi등)쪽 인데,
    판단문과 분기문이 수도 없이 떡칠되기 시작하면서, 소스가 주렁주렁 ㅎㅎㅎ

    state머신이나 적절한(펑션포인터등 사용) 분기체계가 아닌,
    switch-case, if-else 등으로 관성이 붙어버리는 거죠.

    이상태에서 상용으로 소스는 릴리즈나가고 -_-;;;;;
    대형 리팩토링 했다가는(이것도 안습) 되던 소스도 망가지고,
    고객사에서는 최대한 손대지 말고 요거 하나만 고쳐달라고 하죠.

    저희는 견디다 못해서....
    고객사에서 version 2 만들자고 할때, 그쪽 목적은 기능개선, UI개편이었는데,
    저희내부에서 아키텍처 부터 다시 잡아서 첨부터 다시 만들었습니다.

    후우... 그나마 이제는 좀 살만해졌네요.

    며칠전부터, 이 블로그를 처음부터 정주행하고 있는데,
    오늘 정주행 완료하고 나니까, 현실적으로 와 닿는 얘기들이 왜이리 많은지요 ㅠㅠ

    계속 분발해야겠습니다.

    현실적 고민이 뭍어나오는 좋은 글들 감사합니다.

    p.s. 3일에 걸쳐 블로그글을 다 읽고 났더니.. 진작에 신경쓸걸 하는 울컥한 마음에, 댓글이 횡설수설 합니다. 양해부탁드립니다.

  2. 하늘이아빠님 안녕하세요.
    장문의 댓글을 남기셨네요.^^
    결국은 "조삼모사"죠. 그런데, 아침에 4개 먹기를 원하는 개발자나 경영자가 너무 많죠. 아침에 4개 먹으면 저녁때 3개가 아니고 1개 먹기도 어려운 것이 현실입니다. 아침에 3개만 먹으면 저녁에 4개 아니고 7,8개를 먹을 수도 있습니다.

  3. 확실히 와닿네요!! 고객사별로 소스가 따로 노는데 그 소스 통채로 복사해와서 붙여넣고 다른 고객사 나갈 때 커스터마이징한 소스도 그대로 붙어서 나가지요~ 보고 있으면 숨이 꽉꽉 막힙니다~

  4. 두렁청해님 안녕하세요.
    고객사별로 소스가 따로 노는 회사는 어느 순간 성장의 한계에 부딪히게 됩니다. 그 순간이 오면 이미 되돌릴 수 없는 상태가 된 겁니다.

  5. 몇개 부분에서 리팩터링을 해야할 필요성을 느낌에도 불구하고
    계속 일에 치여서 다른 부분을 작성하다 보니 주렁주렁 늘어나는 코드를 보면서 눈물만 머금게 되는군요 ㅠ.ㅠ

    음.. copy&paste문제는 아마도 설계상의 문제가 가장 크지 않을까 생각이 듭니다.
    비슷한 기능이지만 약간의 다른 처리를 요구하는 함수가 발생할 때,
    전용 함수로 만들면 간단하게 해결되는데
    copy&paste하지 않기 위해서 두가지 기능을 하나로 합치다 보면 범용 함수가 되고
    그렇게 되면 상당히 귀찮아 지니 말이죠. 물론 범용 함수가 좋고
    여러개의 함수를 합쳐서 하나로 쓰는 것도 좋지만 대부분의 외각체크 루틴들은 거의 copy&paste 식으로
    비슷비슷하게 쓰여지는데, 이 부분을 명확하게 처리할 방법이 없는거 같더라구요.

    머.. 저의 프로그래밍 실력의 부족이 가장 큰 원인이겠죠 ㅠ.ㅠ

  6. 구차니님 안녕하세요.
    범용함수란 그리 좋은 선택이 아니죠. 함수는 한가지 일만 하면서 간결하게 작성되어야 하죠. 그리고 리팩토링 시기를 놓치면 점점 혼란스러워지죠. 뭐든지 제때에 해야죠.

  7. Blog Icon
    [1002]

    C&P 를 하고 향후에도 계속 C&P 를 하는 것이 과연 '개발자의 잘못' 으로 '해고되어야 마땅한' 일인지는.. 모르겠군요. 개발자 중 C&P 를 좋아서 하는 사람이 있을까요?

    C&P 에 대해 이리저리 생각하면..
    * 어찌 되었건 회사 입장에선 가장 빨리 답을 냈고 (해당 기능에 대해선 가장 빨리 답을 낼 가능성이 높습니다.)

    * C&P 를 한 다음에 부정적 피드백이 바로 날라오는 것도 아닙니다. (CPD 나 simian 같은 것을 회사차원에서 daily test 로 돌리지도 않고) 매일 매일 다음 할 작업으로 로드가 걸린 개발자 입장에선 일종의 시간 벌기가 됩니다. 밑의 돌 빼서 위에 꽂기 같은.

    * C&P 를 하는 당시에는 '이건 잠깐이고 언젠가 다시 리팩토링 할꺼야' 라 생각한 뒤, 실제로 리팩토링을 하지 않거나 하지 못하게 될 상황이 바로 닥치게 될 경우가 많습니다. 예전에 어떤 분 말씀처럼 '지금 당장 정리 하지 않으면 지는거다' 라고 강하게 생각하지 않고선 쉽지 않습니다.

    * 코드리뷰의 경우 리뷰를 1주일 이내 단위로 자주 하는 것이 아닌 이상 C&P 가 고쳐질 것이라고는 생각치 않습니다. 리뷰의 주기가 길 경우, 이미 리뷰 받고 난 뒤엔 돌이킬 수 없게 되는 경우가 많습니다. 리뷰 중 자주 나오는 말 중 하나가 '이번엔 어쩔 수 없으니.. 다음번엔..' 일겁니다. 소 잃고는 외양간 고치려고 해봤자 고칠 맘은 안생깁니다.

  8. 안녕하세요. 질문도 답도 댓글에 다 포함되어 있군요. :)
    개발자 중에는 C&P의 폐해를 모르고 마구 해대는 사람들도 많습니다. 이미 많은 고민을 하고 계시네요.

개발자의 파워는 어디에서 오는가?

뛰어난 개발자를 관리자로 써먹는 것 같이 개발조직에 비효율적인 일은 별로 없습니다. 하지만 현실에서는 이런 일이 흔히 벌어지고 있습니다. 실제로 저도 여러 회사에서 자주 접하고 있습니다. 여러가지 이유가 있을 수 있겠지만 주..

소프트웨어 개발자를 위한 소통의 장

그동안 블로그에 글을 쓰면서 여러 개발자분들의 의견을 듣는데 많은 불편함을 느껴왔습니다. 블로그의 글에 댓글을 남기면 약간 소통이 되기는 해도 주로 일방적인 전달을 벗어나지 못했습니다. 그렇게 해서는 많은 의견을 주고 받을..

애플이 아이폰4에서 한글을 바꾼 이유는...

얼마전 아래와 같은 아이폰의 Localization에 대한 글을 올린적이 있습니다. 2010/02/11 - [소프트웨어이야기] - 애플은 한국어와 한글을 구분하지 못한다? 심각한 내용은 아니었고, 아이폰의 다국어 설정 화면에..

마이크로소프트, 구글의 소스코드 트리의 비밀?

오늘 출근을 해서 메일을 확인하니 독자로부터 메일이 한통 와있더군요. 책에 대한 리뷰의 글이어서 감사히 읽었습니다. 질문도 하나 있어서 답변 겸 블로그에 글을 남깁니다. 독자 블로그 글 : 소프트웨어 개발의 모든 것 -전규현..

히딩크와 소프트웨어

월드컵도 다가오는데 소프트웨어와 축구를 한번 비교해보는 것도 좋을 것 같습니다. 제 블로그의 글들은 이런 방법 저런 방법으로 끊임없이 우리나라의 소프트웨어 현실이 무엇이 문제인지를 설명하고 있습니다. 그 중의 하나의 글이라도..

위기는 내부로부터 온다.

우리나라에서 소프트웨어 회사를 운영하기에 외적인 어려움들은 이미 많은 분들이 얘기를 해주셨습니다. 정권이 바뀔 때마다 급변하는 환경, 특히 대통령 따라 왔다갔다하는 여건들... 대기업과 중소기업간의 공정하지 못한 거래 대형..

Hotfix에서의 소스코드관리

아래 글에 차우차우님께서 Hotfix에 대한 질문을 해 오셔서 Hotfix에 대해서 좀더 자세히 설명하고자 합니다. 2010/05/03 - [기반시스템/소스코드관리] - 혼자서 개발을 하면 소스코드의 브랜치/머지가 필요없을까..

변경된 CC 평가 인증 제도

안녕하세요, 다시 CC인증에 대해서 이야기를 시작하려고 합니다. 제가 마지막 포스트를 한 것이 2008년 11월 이니까 거의 1년 반을 쉬게된 셈이네요. 다시 한번 심기일전하여 포스트를 해보록 하겠습니다. 마지막 포스트 이후..

혼자서 개발을 하면 소스코드의 브랜치/머지가 필요없을까?

소스코드관리에 대해서 얘기를 하다보면 혼자서 개발을 하기 때문에 별 고민 없이 대충 소스코드를 관리하는 경우를 많이 봤습니다. Subversion 등의 소스코드관리시스템을 쓰더라도 그냥 소스코드를 백업 받는 수준으로 사용하고..

맥에서 Subversion 사용하기

최근에 맥북을 구매해서 아이폰 개발 작업을 하고 있는데 맥에서 Subversion을 사용하는 환경이 그리 좋지 않다는 것을 알게 되었습니다. 그래서 맥에서 Subversion을 제대로 활용하기 위한 글을 적어보려고 합니다...