류종택씨의 블로그에  개발자를 분류하는 괜찮은 아이디의 글이 있군요
추상화 레벨과 개발능력 두가지 관점에서 개발자들을 분류하고 있습니다.
다만, GUI 디자이너를 위해서 예외로 [감각] 이라는 요소를 추가했습니다.
디자인은 감각이 중요할 수밖에 없죠.
한번 읽어보세요

개발자의 분류 - 추상화 래밸 편 http://ryujt.textcube.com/51


-----------------------------------------------
위 글을 보면서 잠시 생각해 보기도 했고
그 동안 나름대로 생각해 온 점도 있어서
개발자의 분류를 다음과 같은 요소로 나누어봤습니다.

1. 커뮤니케이션 능력 (COMMUCATION )
커뮤니케이션 능력은 다른 사람과의 소통 능력과 이해력, 배려 등을 생각해 볼 수 있습니다.
고객이 하는 말을 잘 이해하고 , 말과는 다른 진짜 원하는 것이 무엇인지 까지도 잘 파악 할 수있어야 합니다.
이런 능력이 높은 사람은 관리자나 시스템 설계, 영업 쪽에 유리하다고 볼 수 있으나
커뮤니케이션 능력은 어떤일을 하던지 큰 도움이됩니다.

2. 연구 능력 ( RESEACH )
연구 능력은 핵심 알고리즘을 만들어 내는 능력입니다. 기존에 없는 새로운 분야를 공부(연구)하고
문제 해결을 위한 다양한 시도와 시행착오를 빠르게!! 거치면서 새로운 기능을 최적의 코드로 문제없이 구현해 내어야 합니다.
이 능력이 뛰어난 사람은 개발 회사에서 핵심 코드, 라이브러리, 콤포넌트, 프레임워크 등을 개발 할 수있습니다.
다만 .. 아무리 뛰어난 사람이라도 소통 능력이 부족하면 기껏 만들어 놓은 것이 다른 개발자가 쓰기에 불편하고
실제로 현장에서 쓰기에는 기능이 맞지 않거나 융통성이 없는 것이 되 버릴 수 도 있기 때문에
다른 개발자들과의 커뮤니케이션 및 최종 어플리케이션에 대한 이해도 많이 필요합니다.

3. 응용 능력 ( APPLICATION )
개발 회사에서 가장 많이 필요한 사람들은 응용 능력이 뛰어난 개발자들입니다.
회사의 이익을 창출하는 대부분의 코드는 완전히 새로 개발하는 것이 아닌, 기존 소스를 응용해서 만들어 내기 때문입니다.
이미 만들어진 알고리즘이나 프레임워크를 이용해서 신속하게 고객을 만족시킬 수 있는 신뢰성 있는 제품을 구현하고 유지보수 할 수 있어야 합니다.
이 분야의 능력은 구현 능력 뿐 아니라 각종 문제 상황에 대한 유연한 대처 능력,  문제 분석 기술, 원인 파악 능력등도  중요합니다.

4. 리더십 ( LEADER SHIP )
리더십이라면 다른 사람을 이끌 수 있는 능력을 말하는 것인데
현업 개발자와는 크게 상관이 없을 수도 있지만
개발자로서 경력이 쌓이면 관리 분야을 할 것인지 순수 개발엔지니러로 남을지 결정을 해야 할 시기가 올겁니다.
게다가 우리나라에서는 경력이 쌓이면 하기 싫어도 팀장의 역할을 조금씩 해야 하기 때문에
어느 정도는 필요한 능력이라고 하겠습니다.

하지만 개발 능력은 엄청나게 뛰어난데 리더십이나 커뮤니케이션 능력이 부족한 사람이 있다면
회사에서는 그 사람의 뛰어난 능력을 충분히 발휘할 수 있도록 업무 분야을 조율해야 합니다.
만약, 그런 사람에게 개발외에 팀장이 해야 하는 일과 비슷한 일까지 동시에 시킨다면
이것은  회사로 보나 개인으로 보나 시간 , 능력의 낭비가 될 것입니다.


-------------------------------
상세 업무에 따른 필요한 스킬 레벨

개발팀장 : C=상 , R=하, A=상 , L=상
시스템 설계 : C=상 ,R=하, A=하, L=중
핵심 개발 : C=중, R=최상, A=상, L=하
일반 개발 : C=중, R=하,  A=상, L=하
 
장비 제어 개발자 : C=상 , R=하 , A=상, L=하

일반 개발자들보다는 장비제어쪽 분야 개발자는 담당 엔지니어와의 의사 소통이 훨씬 중요한것 같습니다.
즉 커뮤니케이션 능력이 뛰어나야 요청 사항 분석 및 구현 기능의 범위를 조율하고 ,문제의 원인  분석등을 원활하게 할 수 있습니다.
자기의 고집만 내세우고 고객의 불편한 점을 이해하려고 하지 못한다면
계속 고객과의 업무진행이 매끄럽지 못하고, 원인 파악에도 시간이 걸리며,  문제 해결 잘 되지 않을것입니다.

물론 위의 모든 능력이 다 뛰어난 사람이 최고의 인재 겠지만..
그런 사람이라면  개발자로 오래 남아있지는 않을겁니다.
개발회사는 개발자들을 주어진  각각의 능력에 맞게 적재적소에 업무 포지션를 할당하고
부족한 능력을 보완 할 수 있도록 물심 양면으로 지원하는 것이 개발자 및 회사를 위해 최선의 선택이라고 생각합니다.


  1. 장성호 2010.11.01 02:27

    글 내용이 머리에 쏙 들어오고..
    분류방법도... 마음에 드네요..

    개인적으로 C와 L이 늘 부족하다고 느꼈었구..
    나름 노력도 했지만, 성격적인 부분이 있어서 그런지..
    만족할 만큼 개선이 잘 안되네요

    개발과 경영을 모두다 하시는 사장님은...
    위에 4가지 외에도..
    사람을 보는 눈(통찰력)이 무엇보다 필요할것 같습니다.

    • 크레브 2010.11.02 10:56

      나는 응용능력 외에는 모두다 많이 부족한거 같아요~ 그래서 요즘 고민이 많네요 ^^;

  2. whitekid 2010.11.09 20:46

    열정이라는 항목도 있었으면 좋겠습니다.... 안그러면 저는 "상"이 하나도 없을 것 같아요. F=상

    • 크레브 2010.11.10 18:38

      열정이라는게 제일 구체화하기 힘든것 같습니다. 교육을 통해서 열정을 만들어 낼 수도 없고, 열정을 가지라고 업무지시처럼 내릴 수도 없는것이고 말이죠

  3. 류종택 2011.10.27 08:35

    이글을 출처 표시하고 나중에 제 글에 인용해도 되나요?
    언제가 될지 모르지만 오늘 처럼 일 안되는 날에 정리하고 싶은 주제 입니다.

    • 크레브 2011.10.27 11:31

      제가 먼저 류종택님의 글을 참고 했는걸요 ^^ ~ 물론 인용하셔도 좋습니다.

  4. oxmin 2011.11.02 13:10

    이글을 읽고 제가 개인적으로 추가하고 싶은 건

    책임감과 배려

    장비는 많은 계기들로 이루어지거나 타사 업체의 장비와 연동되어 지는데

    다른 계기와 장비가 이상한 짓을 해도 장비 스스로 이상한 흐름에 끌려다니지 않는 책임..

    개발자는 내가 편하게 짠 코드로 인해 매일 반복되는 장비사용자는 불필요한 동선이나

    눈의 피로감으로 힘들어 하지 않도록 하는 책임..

    관리자는 이것도 되고 저것도 되는 만능의 장비가 아니라 고객이 추가 장비 구매를

    통하여 매출에 기여할 수 있도록 하는 책임...



    장비는 설령 다른 계기와 장비가 이상한 짓을 하면 '나만 아니면 돼'라는 생각보단

    '너가 이상해서 이일을 못하겠다'고 알려주는 배려..

    개발자는 내가 만든 프로그램은 내가 사용하는 것이 아니라 고객이 사용한다고 생각하는 배려..

    그리고 마지막으로 관리자는 개발자가 업무에 전념할 수 있도록 환경을 조성하는 배려..


    너무 상투적이고 포괄적인 내용이지만 장비 개발은 고객에게 막대한 금전 피해와 인적 피해를

    야기 시키는 개발 분야 임으로 이런 관점에서 몇자 적어 보았습니다.

    PS1) 일층에 점심 먹을 때가 너무 없네요....울 건물에 구내 식당이 들어올 수 있는 그날을 기대하며

    사업 번창 하시고 환절기 건강 조심하셔요....^ ^

    PS2) 개인 블로그가 아니라 회사 블로그 인것 같아서 이렇게 자유게시판 처럼 편하게 댓글을 달아도 실례가 되지 않는지 조심스럽네요..

  5. KBH 2012.08.28 19:26

    정말 좋은 글귀네요^^
    우연히 들어오게 되었는데..
    좋은 글 올려 주셔서 감사합니다

+ Recent posts