개발자의 미래, 당신의 선택은 무엇입니까?

 
By 2012년 7월 19일 
TAGGED :

Software개발이 좋아서 개발자가 된 사람들도 한 5~7년 개발을 하다 보면 미래에 대해 걱정을 하게 되고 불확실한 미래를 불안해하게 된다. 대부분의 회사에서 개발자의 Career Path를 보장해주지 않기 때문에 막연히 팀장이 되고 관리자가 되고, 또는 다른 직종으로 옮기기도 한다.

그러다 보니 전문성 있고 실력 있는 개발자의 경험과 지식이 묻혀버리기 일쑤이고 회사에서는 기술력이 축적되지 못하게 된다.

물론 한번 Software 개발자였다고 해서 평생 개발만 해야 하는 것은 아니다. 개발자가 선택할 수 있는 직종은 상당히 많다.
개발자가 Career Path 상에서 어떠한 직종을 선택할 수 있는지 알아보자. 자신의 역량과 성향에 따라서 Path를 정하면 좋을 것이다. 물론 회사에서 그리고 사회 전체적으로 개발자의 Career Path를 보장해 주는 방향으로 변하는 것이 우선이다.

Senior Engineer, Chief Scientist
한마디로 고참개발자이다. 개발을 계속하고 싶은 사람들이 선택하는 Path이다.
신참 때는 주로 코딩을 많이 하고 버그를 잡았으면 이제는 분석, 설계에 더 많은 시간을 소비하고 Peer Review에 많이 참석한다.
자신의 팀의 프로젝트만 관심을 가지는 것이 아니고 다른 팀의 프로젝트 리뷰에도 참석하여 기여를 한다.
흔히 Architect라고 불리기도 하고 여전히 코딩도 한다.
외국에서는 60세가 넘는 Software엔지니어를 볼 수 있기도 하다.
제대로 된 엔지니어라면 Domain과 상관없이 어느 분야로든지 이직이 가능하다.

CTO
회사의 최고 기술 책임자이며 많은 개발자들의 Role model이다.
회사의 경영에 관여를 하지만 관리는 하지 않는다.
장기기술전략, 실행전략, 아키텍처, 구현, 인프라구조 정립, 프로세스 등 개발에 관하여 기술적인 것이라면 모두 책임진다.
왕년에 코딩을 했다는 것으로는 CTO가 될 수 없다. CTO라면 현재도 코딩을 할 수 있어야 한다. 바쁘고 코딩의 Value가 낮기 때문에 안하는 것뿐이지 분석/설계/코딩을 현재도 모두 할 수 있어야 한다.
소프트웨어 회사의 최고봉이라고 할 수 있다.

SCM, Build and Release Engineer
소프트웨어 회사에는 몇가지 전문적인 분야가 있다. 형상관리, 빌드, 릴리즈, 팩키징 등이 그것이다. 처음에는 개발자들이 개발과 더불어 이런 업무도 같이 수행하지만 회사가 커지면 전문적인 업무로 떨어져 나온다. 몇 명이 전담을 해도 될 만큼 일의 양도 많고 취미로 해도 될 만큼 쉬운 일도 아니다. 또한 개발 능력도 상당히 필요해서 개발자 출신이 아니면 하기 어렵다. 대단히 전문적인 업무이고 이러한 개발 외의 환경이 잘 되어 있어야 개발자들이 개발에 집중할 수 있고 업무 효율이 오르게 된다.
개발자 중에는 프로젝트보다 이러한 전문적이고 SW공학적인 업무에 관심을 가지는 사람들이 있다. 이 영역에서 실력을 닦으면 이직 시에도 이 전문성을 활용할 수가 있다.

Technical Marketer
제품을 기획할 때는 비즈니스적인 요소, 기술적인 요소가 모두 고려된다. 그 중에서 기술적인 부분은 일반 기획자들이 속속들이 알기가 어렵다. 따라서 기술을 아주 잘아는 Technical Marketer가 기술적인 부분을 담당하게 된다. 경쟁사의 제품을 분석할 때도 단순히 기능이 되는지 O, X만 체크 하는 것이 아니고 기술적인 부분까지 검토를 해서 적용된 기술도 파악할 수 있다.
새로 기획하는 제품의 기술적인 비전을 수립하고 마케팅과 개발자의 연결고리 역할도 수행한다.

Technical Supporter
개발자 중에는 진득하게 않아서 개발하는 것을 좀쑤셔 하는 사람들이 있다. 여러 경쟁 제품을 써보기를 좋아하고 새로운 제품이 나오면 먼저 써보려고 하고 동료들의 시스템에 문제가 생기면 누구보다 빠르게 해결해 주는 능력을 가지고 있다.
이런 경우 개발 경력과 지식을 활용하여 기술지원업무를 수행할 수 있다. 회사의 제품에 대해서 기술적으로는 누구보다 속속들이 잘 알기 때문에 수준 높은 지원도 가능하다.
외향적인 사람들에게 어울리는 직종이다. 이직 시 비슷한 분야로 이직이 가능하며 선택의 폭도 상당히 넓다.

QA Engineer/Manager
개발자 출신으로 QA 엔지니어나 관리자가 될 수 있고 개발 능력을 활용하여 테스트 관련 툴을 개발할 수 있다. 개발 경험이 있는 것은 장점으로 작용하면 계획적인 삶을 살 수 있는 장점도 있다. 물론 우리나라에서는 똑같이 무지막지한 야근을 해야 하는 경우가 많다. Domain에 상관없이 이직이 가능하다.

Project Manager
기술자 트랙과 관리자 트랙의 중간쯤 되는 포지션이다. 프로젝트를 책임지고 맡아서 관리하는 역할로서 General Manager가 되는 중간 과정이 될 수도 있다. 개발자 출신으로 Project Manager가 되면 개발의 이해도가 높아서 문제 해결 능력이 뛰어나고 관리에 도움이 많이 된다. 프로젝트 관리 전문가 과정이 도움이 된다. 이직 시 선택의 폭이 매우 넓다.

General Manager
기술과는 관련이 없는 일반 관리자다. 기술에서는 손을 떼는 것이다. 우리나라의 개발팀장과는 다르다. 개발팀장이 된지 오래되어서 더 이상 개발을 하지 않고 관리만 하고 있다면 General Manager라고 볼 수 있다. 기술적인 결정은 하지 않는다. 하지만 과거에 개발 좀 해 봤다고 기술적인 결정을 자기가 해버리면 월권이라고 할 수 있다.
일단 일반 관리자로 넘어오면 다시 엔지니어로 돌아가는 것은 불가능 하다. VP Engineering으로 성장하는 트랙이다.

VP Engineering
우리말로는 “기술부사장”, “연구소장” 정도가 되겠다. CTO와는 완전히 다르다. CTO는 관리를 하지 않지만 VP Engineering은 관리자다. 개발관리 총책임자 쯤 된다. 개발자나 CTO가 하는 기술적인 얘기의 용어들을 거의 알고 있고 개발프로세스가 어떻게 돌아가는지도 잘 안다. 하지만 기술적인 결정을 하지는 않고 관리만 한다. 우리나라에서는 흔히 VP Engineering을 CTO라고 불러서 오해를 하는 경우가 많다.

Domain Expert
소프트웨어 개발 역량보다는 업무 지식에 치중하는 사람들이다. 증권사, 은행, 회계, 토목, 건설, 기계, 예술 분야의 소프트웨어를 개발하려면 해당 영역의 지식과 경험이 많이 필요하고 소프트웨어 기술도 어느 정도 알아야 한다. 개발 경험을 가지고 해당 산업 지식을 쌓으면 도메인 전문가가 될 수 있고, 이 경우 해당 분야로만 이직이 가능하다.

Restaurant Owner
소프트웨어 개발에 염증을 느끼거나 비전을 찾지 못하면 소프트웨어 업계를 완전히 떠나는 것도 한 방법이다. 흔히 통닭집 주인이라고 한다.

페이스북으로 댓글을 남기실 수 있습니다.
THE AUTHOR
전규현 (gracegyu@gmail.com, allofsoftware.net) | 소프트웨어 컨설팅 회사인 ABC Tech(www.abcswcon.com)의 수석 컨설턴트이다. 연세공대를 졸업하고 18년 간 한글과컴퓨터를 시작으로 안철수연구소에까지 이르면서 수많은 소프트웨어를 개발하였고 Programming Engineer, Project Leader, Project Manager, CTO 등 소프트웨어 개발 분야의 다양한 역할을 두루 경험했다. 현재는 소프트웨어 개발 컨설턴트로서 소프트웨어 회사가 갖고 있는 소프트웨어 개발에 관련된 문제들을 해결해 주는 일을 하고 있다. Tech it 독자들의 구체적인 문의는 언제든지 환영합니다.