2010년 1월 19일 화요일

아이폰, 안드로이드폰 개발자 급구

요즘 확실히 스마트폰이 이슈이긴 한 모양입니다.

종종 "아이폰 개발 경험이 있는 개발자 급구" 또는 "안드로이드폰 개발 경험이 있는 개발자를 모십니다"와 같은 채용 광고를 보게 됩니다.

과연 아이폰이나 안드로이폰 개발 경험이 있는 개발자가 아이폰과 안드로이드 앱을 더 잘 만들까요?
전 아니라고 생각합니다. 당장은 실력은 부족하지만 해당 경험이 있는 개발자들이 개발 속도가 조금더 빠를 수는 있지만, 6개월 아니 1,2달만 지나도 아이폰, 안드로이드폰 개발 경험은 없지만 원래 소프트웨어를 잘 개발하는 개발자가 훨씬 더 낫습니다. (경험도 있고 실력도 있다면 말할 필요도 없지만...)

개발자를 채용하려는 회사에서 이런 경험있는 개발자를 요구하는 것은 소프트웨어 개발에 대한 이해가 부족하거나 진짜 급해서일 겁니다. 첫번째 경우도 별로 가고 싶은 회사가 아니지만 두번째 경우도 문제네요. 소프트웨어 회사에 있어서 가장 중요한 자산은 개발자인데 이렇게 근시안적으로 개발자를 뽑는 회사는 문제가 있어보입니다.

요지는 개발자들의 개발 능력은  Domain지식과 경험에 크게 구애받지 않아야 한다는 겁니다. 물론 Domain지식이 소프트웨어를 개발하는데 필요한 것은 사실이지만 이는 어느 환경에서 일하느냐에 따라서 자연스럽게 익히게 됩니다. Domain지식을 핵심무기로 삼는 개발자들은 더 좋은 회사로의 이직이 어렵고 계속 그 물에서만 돌아다니다가 소프트웨어 개발자로서의 실력은 형편없는 개발자가 되고맙니다.

또한 개발자들은 Coding도 잘해야 합니다. 그런데 하나의 개발 언어에 매달리는 경우도 위와 비슷한 경우입니다. 나는 Java밖에 못한다. 또는 나는 C++밖에 못한다라고 못을 박는 개발자들이 있습니다. 물론 손에 익은 언어를 사용하는 효율이 높기는 하지만 그렇다고 하나의 개발 언어로만 개발을 하면 스스로 자신의 미래 진로를 가로막는 꼴입니다. 

진정 소프트웨어 개발자라면 특정 개발 언어, 특정 Domain 지식, 특정 Technology에 올인하지 말고 골고루 다 경험을 해야 하고 새로운 것에도 쉽게 적응할 수 있어야 합니다. 특히 고참 개발자가 될수록 다양한 경험과 적응력이 있어야 View도 넓어지고 회사내에서도 기술적으로 중요한 업무를 수행할 수 있습니다. 그래야 개발자로서 10년, 20년 지속적으로 가치있게 일할 수 있습니다.

뛰어난 아이폰, 안드로이드폰 개발자를 뽑고 싶으면 그냥 뛰어난 개발자를 채용하셔야 합니다. 그 개발자와 1,2달 일하고 말것이 아니라면요.

댓글 17개:

  1. 안녕하세요.
    언제나 좋은 글 잘 읽고 있습니다. 저도 개인적으로 많이 공감하지만 글 중에 조금 생각이 달라서
    몇자 적어 봅니다.
    자바 밖에 못한다가 꼭 나쁜건 아니라고 생각 합니다.
    물론 님의 말씀도 꼭 그런 의미는 아니라고 생각합니다만 우리 나라 소프트웨어 산업을 보면
    두루 두루 슈퍼맨을 인정하는 분위기가 많은거 같습니다.
    특정 한 분야만 잘 하는 사람이 다수 존재하더라도 그들 사이의 커뮤니케이션 혹은 조율만 잘 할수 있다면
    훨씬 더 좋은 결과를 낼수 있지 않을까요?
    박사 과정의 전공만 놓고 보더라도... 왜 그 사람들이 한 분야만을 집중적으로 공부할까요?
    분명 뭔가 그럴수 밖에 없는 이유가 있지 않을까요?
    가장 중요한 것은 얼마나 깊이있는 지식을 습득하는 것이 아닐런지요.
    대학 수업에서도 똑같은 과목을 전공 교수가 가르치는 것과 타학과 교수가 가르치는 것은
    분명 차이가 있습니다.
    수업을 잘하는 교수와 연구를 잘하는 교수 둘다가 대학에 필요하듯이
    특정 언어를 가장 잘 이해하는 개발자만도 좋은 룰모델 혹은 평가를 받았으면 해서 몇자 적어 봅니다.

    답글삭제
  2. 특히 요즘들어 도메인 지식보단 메타지식의 가치는 아무리 강조해도 지나치지 않는 시대 같습니다.

    무엇보다 결론이 명쾌하시군요^^
    그냥 뛰어난 개발자를 구하라!
    너무 단순한지만 확실한 정답이 없는 것 같습니다^^

    답글삭제
  3. 안녕하세요. 이가님
    그럼, 뛰어난 개발자는 어떻게 구하느냐?라고 물어 볼 수 있는데, 이것 또한 한참 얘기해도 부족하겠죠? ^^

    답글삭제
  4. 좋은 글 잘 읽고 갑니다. RSS 등록해놨습니다. ^^
    "아이폰 개발 경험이 있는 개발자 급구" 또는 "안드로이드폰 개발 경험이 있는 개발자를 모십니다"는 개발자를 찾는게 아니라 경험을 찾는 게 아닐까요?

    답글삭제
  5. "개발자들의 개발 능력은 Domain지식과 경험에 크게 구애받지 않아야 한다는 겁니다."
    본문의 이 부분에 크게 공감합니다.

    답글삭제
  6. 안녕하세요. MegaWave님
    소프트웨어 채용 현장에서 개발자의 잠재력 및 기반 지식보다 구체적으로 무슨일을 해봤는지를 확인하고 동일한 일을 해본 개발자들을 뽑으려고 하는 풍토가 만연하여 올린 글입니다. 경험이 있는 것이 나쁠 것은 없죠.

    답글삭제
  7. 안녕하세요. 제주소년님
    평생 은행 소프트웨어만 개발한 개발자들을 보면 은행업무는 빠삭하게 잘 아는데 막상 소프트웨어 개발 능력은 크게 발전하지 못한 것을 알 수 있습니다. 스스로를 Domain지식의 울타리에 가두는 것은 어리석은 행동입니다.

    답글삭제
  8. 저는 SI를 주로 하고 있습니다.
    개발언어, 도메인을 전혀 가리지 않고 있습니다만,
    접해본것은 몇가지 되지 않습니다.

    프로젝트 면접을 보면 그쪽 언어, 혹은 도메인을 경험해보지 않았다고
    탈락시키는 경우가 많더군요..

    실제로 몸을 사리는 개발자들도 많지만
    (말씀하신대로 난 java밖에 몰라, 또는 C밖에 몰라.. 나머진 다른 사람 시켜.. 하는 사람도 많더군요.)
    경험이 없는 개발자는 절대 뽑지 않는 프로젝트도 많더군요..
    3대 SI에서도요..

    예전에(2003년도) 3대 SI업체중 한곳에서 스트러츠로 개발하는데 다른 사람만큼
    퍼포먼스가 안 나온다고 일주일만에 쫓겨난 경험도 있고요.. (그때가 스트러츠 처음.. MVC도 처음)

    개인의 노력도 중요하지만 업체들의 시각도 바뀌었으면 합니다...
    물론 SI 기준입니다.. (패키지,솔루션등은 잘 몰라서요..)

    답글삭제
  9. 첫번째 드는 생각은, 아직도 많은 사람들이 프로그래밍을 단순히 조금 더 '아는 것' (언어를 아는 것/SDK 를 아는것) 정도로 생각하는거 같다는 생각이고,

    두번째 드는 생각은, 저렇게라도 뽑아야 할 정도로 훌륭한 프로그래머들을 찾는 것 역시 어렵겠구나... 생각이 듭니다. 아무리 지혜롭지 않은 사장이라 하더라도 그 밑에 훌륭한 프로그래머가 있다면, 그 프로그래머에게 시킬테니까 말이죠.

    답글삭제
  10. 이직하려고 해도 도메인을 벗어나면 신입이 되니.. 그게 힘들게 하네요 후우..

    답글삭제
  11. 어플리케이션의 생명은 이젠 아이디어가 아닌가 합니다.
    업무 분할이 잘 되어서 아이디어를 살릴 수 있는 사람들은 아이디어를 잘 살리고,
    코딩을 해야 하는 사람은 코딩을 잘 할 수 있는 환경이 마련되었으면 좋겠다는 바램인데,,
    현실은 그렇지 않네요 ㅎ

    답글삭제
  12. 안녕하세요.무혹님
    그런 회사는 안가신데 더 잘된 것 아닐까요?
    대부분 개발자를 단기간 혹사하고 커리어 관리도 안되는 회사들입니다.

    답글삭제
  13. 안녕하세요. Hybrid님
    성장하는 소프트웨어 회사라면 개발자를 꾸준히 뽑게 마련입니다. 1년 1명이든 100명이든요...
    그 1명을 뽑기 위해서 1년 내내 꾸준히 노력해야 합니다. 1명 나갔다고 급히 뽑고, 새로운 일 생겼다고 그런 종류의 일 해본 개발자 뽑고 하는 것은 정말 근시안적인 행동이죠.

    답글삭제
  14. 구차니닌 안녕하세요.
    도메인지식 비중을 조금씩 다른 쪽에 내공을 점점 쌓아나가면 되지 않을까요?

    답글삭제
  15. 안녕하세요. 꼬마낙타님
    개발자의 가장 두드러진 특징은 바로 창의성이라고 할 수 있는데 현실에서 만나는 개발자들은 현업에 지쳐서 아이디어는 생각할 겨를도 없어보입니다. 모든 것이 맞물려 있지만, 도메인지식 위주로 개발자를 혹사하는 것도 한 원인입니다.

    답글삭제
  16. 한가지 언어를 깊이있게 공부한 개발자는 다른언어로 전환할때에도 쉽게 다룰 수 있는 것 같습니다
    학원등에서 모바일플랫폼을 공부하고 프로젝트 한두개를 경험한 초급개발자와 한가지 플랫폼만 깊이 공부한 중급개발자를 비교한다면 한달이면 중급개발자가 초급개발자의 생산성을 앞지를 것 같습니다

    답글삭제
  17. 안녕하세요. 고집불통님
    좋은 의견 감사합니다.
    하나의 개발언어에 대해서 정말 능통하고 전문가가 되는데 다른 언어를 공부하는 것도 도움이 됩니다. ^^ 특히나 C언어는 low level 언어중 하나로 java나 기타 언어를 전문으로 사용하는 개발자들도 C언어를 아는 것을 권장합니다.
    한분야의 최고의 전문가가 되는 것도 중요하고 여러가지 지식을 두루 익히는 것도 중요합니다. Toyota에서는 이러한 인재를 T인재라고 하죠. 소프트웨어 필드에서도 적용이 된다고 생각합니다.
    박사 전공을 하는 사람들도 자신의 연구분야는 깊에 연구를 하지만 자신의 연구를 더욱 잘하기 위해서 해당 분야의 지식을 두루 잘 알고 있다고 생각합니다.
    감사합니다.

    답글삭제