[토론] 개발자 어떻게 성장해 나갈 것인가?

Part.2 포스트에 계속 이어 가겠습니다.

===========================================================================

이진행 :

프로그래밍을 할 때 예술적인 코딩을 하는 게 아닌 고객의 관점에서 고객이 원하는 코드를 작성할 줄 알아야 합니다.

매번 새로운 언어와 환경에서의 프로젝트를 참여하다 보니 연속적인 경험을 가지지는 못하였지만, 대신 새로운 환경의 프로젝트에 참여하는 일이 어렵지 않게 되었습니다.

하지만 새로운 기술을 프로젝트를 수행하는 과정에서 같은 업무 영역의 일을 하게 되니 현업에 대한 지식이 생기면서 프로젝트를 수행하는게 수월해 짐을 느꼈습니다. ( 편집자 주. 현업 : 프로그래머가 아닌 프로그래머가 만드는 업무 프로그램을 가지고 실 업무를 수행하는 사용자의 맥락으로 사용하고 있습니다. )

그 이후 마케팅의 대해서 관심을 가지고 접하게 되었는데, 마케팅을 공부하면서 프로그래밍에도 큰 도움이 된다는 생각을 가지게 되었습니다.

하이 레벨의 개발자가 굳이 비즈니스에 영역까지 커버하기 보다는 현업과 친하고, 관계를 잘 유지할 수 있는 평범한 수준의 개발자와 기술적인 능력이 뛰어난 개발자가 서로 협업을 강화해가며 서로를 보완해주는게 중요하다고 생각합니다.

개발자도 현업에 대한 관심을 가지는 게 중요하다고 생각합니다.

양수열 :

기존에 기술 개발은 많이 했지만, 그 기술을 가지고 무슨 일을 할 수 있는지에 대한 고민이 부족한 듯 합니다.

해결해야 하는 문제에 대한 인지가 부족하여, 열심히 개발 하고도 고객의 요구에 미달되는 프로그램이 되는 경우가 빈번하게 발생하고 있습니다.

언어에 대한 장벽이 큰 편입니다. 단순히 현재 하고 있는 일 뿐 아니라, opensource 프로젝트등의 참여를 통하여 개인의 역량을 키우는게 중요하다고 생각합니다.

이진행 :

항상 기회가 다가 올 때 기회를 잡을 수 있도록 미리 미리 준비하는게 필요합니다.

커뮤니티 활동이 중요하다고 생각하는데, 책을 읽어서 정보를 얻는 것보다는 지인에게 물어보거나, 커뮤니티의 뉴스레터나 게시물들을 통해서 훨씬 빠르게 정보를 얻을 수 있습니다.

커뮤니티의 적극적인 참여를 통하여 Trend대한 인지 및 성장하고자 하는 방향에 대한 도움을 얻을 수 있다고 생각합니다.

Matt Thompson :

인터넷의 언어는 영어라고 할 수 있습니다. 또한 computer science의 언어 역시 영어입니다.

그래서 영어에 대한 스킬이 상당히 중요합니다.

베트남의 경우 대학에서 수학 및 과학에 경우 영어로 강의를 합니다.

개발자로서 역량을 키우키 위해서는 언어에 대한 투자가 필요합니다. 중국어 역시 영어만큼 중요한 언어가 될 거라고 생각합니다.

커뮤니티는 강력한 학습의 도구로 활용 될 수 있다고 생각합니다. 커뮤니티를 통하여 기술지식과 업계지식을 동시에 획득하는 것이 가능합니다.

open source 프로젝트의 참여하는 것 역시 중요합니다. close source의 경우 배우기가 무척 어렵습니다.

하지만 open source를 통해서 다른 사람의 코드를 보고 빌드하고, 변경을 하는 과정에서 많은 것을 배울 수 있습니다.

리더가 되기 위해서는 끊임없이 배우고 공부를 해야합니다. 배우는 것을 멈추면 리더가 될 수가 없습니다.

커리어를 위해서 충분한 시간을 투자하세요.

방청 패널 질문 - 김창준 :

1. 개발자가 개인적으로 성장을 위해서 할 수 있는 방법은 무엇이 있나요? 그리고 빠르게 성장해 나가는 사람들의 특징은 무엇인가요?

Matt Thompson :

빠르게 성장하는 사람은 크게 2가지의 특징이 있다고 생각합니다.

첫째로, 끊임없는 호기심을 가지는 게 중요합니다. 저는 4년 동안 4차레의 승진을 해 왔습니다.

저는 업무를 지시 받으면, 매니저에게 왜 그 일을 그렇게 해야하는지 묻고는 했습니다.

그리고 2가지 이상의 다른 솔루션을 제시하고는 했습니다.

저의 상사들은 저를 별로 좋아하지 않았을 것이지만, 개발자에게 있어 호기심은 중요하다고 생각합니다.

둘째로, 내부적인 사이클이 남보다 빨리 돌아야 합니다. 즉 남보다 빠르게 일을 해야한다는 것입니다.

저의 누나의 경우 지금 의사이신데, 어린시절부터 같은 공부를 하더라도 저의 누나는 한번만 읽으면 보면 바로 이해하던 공부도 저는 3~4번을 보아야 이해를 하곤 했습니다.

그 걸 보면서 각 개인의 이해나 사고의 능력의 차이가 있다고 생각합니다.

물론 기본적으로 타고난 이해도가 빠르면 좋겠지만, 그러한 능력을 타고 나지 못했다고 해서 포기하지말고 끊임없이 노력하여 개발 속도 및 내부 사이클을 항샹 시키는 게 중요합니다.

시간을 만들어서 활용하는 게 필요하다고 생각합니다.

누군가 롤 모델이 될만한 사람을 목표로 삼고 끊임없이 노력하십시오.

(편집자 주.  이후 토론 마무리 발언이 간략하게 이루어 지고 토론이 종료 되었습니다.)
===========================================================================

토론을 들으면서 많은 생각과 공감을 하게 되었습니다.

그럼에도 불구하고 토론 참석 후 이 주 정도 지금 생각해보면 별로 실천을 하고 있는 게 없다는 생각이 듭니다.

지속적으로 성장을 해 나간다는게, 쉽지만은 않은 듯 합니다.

하지만 성장하지 않고 멈추어 있으면 언제가는 자연스럽게 이 직업을 그만 두게 될 것입니다.

그러한 시점에서 환경을 탓하고 남을 원망하지 않기 위해서 적극적인 노력이 필요한 시점입니다.

모두들 힘내서 성장을 멈추지 않으셨으면 합니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/03/09 14:50 2007/03/09 14:50
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://cookiedev.pe.kr/rss/response/62

[토론] 개발자 어떻게 성장해 나갈 것인가?

이 글은 2007년 2월 24일 coex에서 개최된 제 8회 한국 자바 개발자 컨퍼런스의 토론 트랙에서 참관하여 들었던 토론된 내용을 요약 정리한 부분입니다.

개인적으로 현재 자바 개발자는 아니지만, 개발자라는 입장에서 많은 자극이 되었던 컨퍼런스이고, 차후에도 지속적인 참여할 필요성을 많이 느꼈습니다.

/*
그날 토론 내용을 기록한 내용을 기반으로 재구성 하였으면, 최대한 개인적인 의견이 반영되지 않도록 노력하였지만, 토론 패널들의 의견이 왜곡된 부분도 있을 수 있음을 알려 드립니다.


토론 내용을 하나의 포스트로 정리하기에 너무 길어서 포스트를 분리 하였습니다.
*/


주제: 개발자 어떻게 성장해 나갈 것인가?

1. 개발자 성장맵을 어떻게 구성할 것인가?
2. 개발자의 성장 단계별 필요한 능력은 무엇인가?
3. 커뮤니티 활동 등을 통한 개발자의 능력 신장 및 경력 관리


토론에 참여하시는 패널:

 + Matt Thompson (Sr. Director, Developer Outreach& Open Source Programs Office, 썬마이크로시스템)
 + 이진행(SAS Korea)
 + 양수열(한국 자바 챔피언, 전 JCO 회장)


===========================================================================

개발자의 성장맵을 이해하기 위해서 간략한 개발자의 성장 단계에 대한 정의가 필요하다고 생각하여 우선 각 패널 별로 개발자의 성장 단계에 대해서 정의하도록 하겠습니다.

이진행 :

coder -> programmer -> developer
-> consultant     /   manager

일반적으로 한국에서는 빨간색으로 표시된 직군을 통들어 개발자라고 정의 할 수 있습니다.

각 직군별 역할에 대해서 간단히 설명 하겠습니다.

coder : 주어진 부분에 관련된 코드만 짜는 역할, 초보 개발자

programmer : 아키텍트, code 설계를 하는 역할

developer : 한국에서는 consultant가 수행하는 역할이라고 생각함. - 개발자와 협업

consultant : 비즈니스 전략을 수립하는 역할, 시장 생성자.

양수열 :

이진행 씨가 언급한 직급에서 추가적으로 modeler와 architect 두 개의 직급을 추가하고자 합니다. 수정된 직급 표는 다음과 같아 지겠죠.

coder / programmer / developer / modeler / architect / consultant / manager

modeler : 아키텍처의 철학을 구현하여 모델로 생성하는 역할

architect : 프로젝트의 전체 그림을 그리는 사람, 프로젝트의 철학을 정의하는 사람

각 직급이 완전히 수직화된 계층 구조라기보다는 역할에 따른 분류라고 생각합니다.

개발자가 성장하는 과정에서 manager가 될지 architect가 될 지 분화되는 것 같습니다. 현실적으로 대부분은 PM의 역할을 강요 받고 있습니다.

성장을 위한 전제로 환경이 무척 중요하다고 생각합니다.

개발자가 성장을 위해서는 단순히 개발자의 노력뿐 아니라 사회적인 환경의 조성이 필요합니다.

좋은 환경을 구축하기 위해서 개발자들의 고민이 따라야 한다고 생각합니다.

한국의 경우 SI를 하는 회사는 많지만 S/W Solution을 개발하는 회사가 적은 것도 이유가 될 수 있을 듯 합니다.

Matt Thompson

여러 유명한 개발자들을 예로 들어 보겠습니다.

제임스 고슬링(James Gosling)씨의 경우, 현재 Sun에서 여러 직무를 수행하고 계시지만, 코딩을 계속하시고 무척 좋아하십니다.

앤디 허츠필드(Andy Hertzfeld) 씨의 경우 학생 시절부터 코딩을 하였고, 유능한 개발자였으며, 회사를 설립하여 CEO가 되시기도 한 광범위한 경험의 소유자입니다.

이 두 분처럼 developer가 되려면 계속 노력하고, 공부하고 코딩을 계속하셔야 합니다.

Sun의 경우도 PM 혹은 개발자로 가는 커리어 패스가 있습니다.

최근 인도나 중국 등의 저가의 인력을 고용할 수 있는 지역으로 코더의 아웃소싱을 많이 하고 있습니다.

초급의 코더의 경우 저렴하게 아웃소싱이 가능하지만, 프로그래머, 디벨로퍼는 아웃소싱으로 해결하기에는 불가능합니다.

따라서 이런 인재들은 회사에서 양성을 해야지 아웃소싱을 통하여 획득할 수는 없습니다.

양수열 :

새로운 시스템을 만들어 가야 합니다. 글로벌 한 추세가 아웃소싱을 하는 방향으로 흘러가고 있습니다.

한국인이기 때문에 한국에서 사용하는 시스템에 대해 이해하고 구현하는 것은 아웃소싱보다도 유리합니다.

상대적으로 개발자 중에 자기만의 고유한 Domain을 가지는 엔지니어가 부족한 편입니다.
특정 Domain에 대한 솔루션은 깊은 지식이 필요한 영역이며, 아웃소싱으로는 해결할 수 없는 분야이기도 합니다.

또한 개발자 및 회사에서 개발자의 career path의 중요성에 대한 인식이 많이 부족한 현실입니다.

방청 패널 의견 - 김창준 :

company의 법칙 : 우리가 만든 결과물과 우리의 조직 사이에는 유사성이 존재한다.

우리의 성장은 우리가 소프트웨어를 어떤 방법으로 개발하는 방법 역시 중요합니다. 따라서 소프트웨어를 개발하는 방법 자체의 변화가 필요합니다.

개발자의 Role 모델 역시 필요합니다.

외국의 경우 훌륭한 개발자들의 role 모델이 존재하지만 한국에는 아직까지는 role 모델이 존재하지 않는 것 같습니다.

- To be Continue.
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/03/08 16:47 2007/03/08 16:47
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://cookiedev.pe.kr/rss/response/60