Posts Tagged ‘개발자’

2008 나의 경쟁력

Sunday, December 16th, 2007

나의 경쟁력은 무엇일까?

지금 보유하고 있는 나의 경쟁력은 무엇일까? 그리고 계속 발전시켜야 할 경쟁력은? 새롭게 개발할 능력은?

지금까지 프로그래머로 살아오면서 나의 가장 큰 경쟁력은 ‘빠른 이해력’이 아니였을까? 문제를 빠르게 이해하고, 새로운 기술을 빠르게 이해하고, 조직의 움직임을 빠르게 이해했다.

좀 더 작은 요소로는 ‘(비전공자의) 넓은 시각’, ‘영어’, ‘자신감’, 그리고 ‘지속된 학습’이 있는 것 같다.

아니면 ‘여유’가 내 경쟁력이 아니였을까? 야근 문화를 거부하고, 여유가 있을 때 일이 없음을 불안해 하지 않고 새로운 것을 배우는데 활용했다.

이런 경쟁력들이 회사에서 인정을 받을 수 있을까? 또는 계속해서 내가 뜻하는 바를 이룰 수 있는 힘이 되어줄 수 있을까?

앞으로 계속 경쟁력을 갖기 위해서 나는 다음의 능력을 갖추고 싶다. 그 능력은 바로 ‘협업’과 ‘커뮤니케이션’이다. 이 능력을 향상시키기 위해 내년에는 애자일 개발방법론을 경험을 통해 더 깊이를 더할 것이다. 그리고 전략적 대화, 경청, 조직 행동론에 대한 학습에 집중할 것이다.

그리고 기본이 되는 개발 능력이 뒤쳐지지 않도록 계속 노력할 것이다. 문제 해결에 가장 도움이 되는 것은 과거의 경험이라고 한다. 다양한 개발 경험을 계속 쌓을 수 있는 환경을 스스로 만드는데는 한계가 있겠지만 이를 해결하는 것이 커뮤니케이션 능력이 아닐까? 2008년, 재미있고 발전적인 한 해가 되기를 기대해본다.

개발자의 길과 매니져의 길

Saturday, September 8th, 2007

개발자의 미래에 대해서, 나의 개발자로서의 미래에 대해서 이 블로그에 지금까지 몇 차례 정리를 했었다. 어떤 방향으로 나아가야할지 충분히 고민을 한 후에는 나에게 부족한 것이 무엇인지 알 수 있었다.

최근 구글 면접을 보는 과정에서 엔지니어로서 계속 성장할 수 있다는 믿음을 갖게 되었고, NHN에서도 매니져와 엔지니어로 역량을 구분해서 성장할 수 있도록 조직의 역량 체계를 개편했다. (아직 엔지니어 역량을 가진 사람은 거의 없다고 알고 있지만 아마도 ‘구루’라 불리는 그런 존재에 가까운 개념일 것이다.)

최근 나는 매니져의 역할보다는 개발자로서의 역할에 집중하기 위해 개인적으로는 중요한 결정을 내렸다. NHN에 입사한 후 파트장이라는 준매니져 역할을 맡고 있었으나 최근 ‘역할 순환 신청’을 통해 엔지니어로 성장할 수 있도록 개발만 하기를 희망한다고 의사를 밝혔고 결국 파트장의 역할을 그만두게 되었다.

한정되어 있지만 거의 유일한 성장 모델인 매니져를 포기하고 과연 어떻게 성장해 갈 수 있을까? 개발자 특히 웹 개발자가 발전해갈 수 있는 방향에는 어떤 것이 있을까?

지금까지 내가 생각해 본 역할을 정리하면 다음과 같다.

  • 아키텍트 : 큰 그림을 그릴 수 있으며 확장서 있고 견고한 모듈을 설계할 수 있는 전문가
  • 서비스 오리엔티드 개발자 : 복잡한 웹 개발 환경을 이해하고 다양한 경험을 바탕으로 서비스 이해도가 높은 개발자
  • 에반젤리스트 : 신기술과 새로운 변화를 빠르게 학습하고 조직에 전달할 수 있는 전문가
  • 고급 개발자 : 전문으로 하는 분야에 대한 깊은 지식과 세부적인 문제 해결 능력을 가진 전문가

이 외에도 다양한 가능성이 있을 것이고 아마 복잡적인 능력이 요구될 수도 있다.

과연 내가 원하는 모습은 어떤 것일까? 플랫폼과 같은 코어 개발을 담당하게 되면 서비스와는 동떨어지게 되고 큰 플랫폼의 일부만 알게 될 수 있다. 서비스 개발을 일정한 틀 안에 가두는 프레임워크 보다는 빠르고 유연하게 요구사항을 구현할 수 있는 환경과 기반을 만들어 줄 수는 없을까? 당분간 이런 고민은 계속 될 것 같다. 옳바른 방향을 정하고 꾸준히 노력해가야 한다. 무엇보다 행복한 개발, 유연한 사고를 기반으로 변화해 가고 싶다.

또 한 명의 개발자의 넉두리

Saturday, March 24th, 2007

최근에 다른 곳으로 회사를 옮기고 싶다는 생각을 많이 했다. 회사를 옮기고 싶은 가장 큰 이유는 5년, 10년 후에도 개발자의 길을 가고 싶기 때문이다. 그렇다면 지금 현재의 위치에서 5년을 보내면 어떤 모습이 될 것이라고 생각한 것일까?

현재 회사에서의 나의 모습은 Java 웹 개발자로서 개발자들을 위한 솔루션을 개발하고 있고 초급 매니저인 파트장 역할을 하고 있다. 그리고 약간의 초급 Java 테크니컬 리더 역할과 Agile 코치 역할을 하고 있다. 서비스를 개발하고 있지는 않지만 5년차의 일반적인 웹 개발자와 크게 다르지 않은 모습이다.

일반적으로 개발자라 하면 경력이 쌓이면서 다음과 같은 역할로 이동해 간다. manager, old aged developer (software engineer), architect, consultant …. 그리고 한국에서는 sales man, marketer, planner, 전직, 창업 등의 선택도 많은 것으로 알고 있다. 이중에서 내가 선택하고 싶은 것은 아마도 old aged developer 또는 architect 일 것이다. 그런데 지금 회사에 old aged Java Developer가 있는지 모르겠고 경력 10년차의 architect도 보지 못했다. 대부분의 웹 프로젝트는 서비스 개발 담당자가 설계를 담당하고 있고, 차장급(10년차)이라면 대부분 팀장이 되서 manager 역할을 수행하고 있다.

여기서부터 내 고민이 시작된다. 그렇다면 나는 어떻게 해야 내가 원하는 역할을 할 수 있을까. Java Skill을 쌓으면 되는 것일까? 아니면 또 다른 방법이 있는 것일까? 이 방법을 모르기 때문에 다른 대안을 모색해 보게 되었다.

첫째는 내가 원하는 모습을 적극 지원해주는 회사로 이직하는 것이다. 그런데 아직 국내에서 개발자로 계속 성장해 갈 수 있는 회사에 대해 들은 적이 없고 결국 외국 회사를 선택해야 한다.

또 다른 방법은 회사가 원한다면 manager의 역할로 성장해 가는 것이다. Java Skill 보다는 관리 역량을 키우고 커뮤니케이션 능력을 키워야 할 것 같다.

그런데 이 두 가지 선택 모두 걸리는 문제는 전공자가 아니라는 것이다. 그래서 또 다른 선택은 대학원에 진학하는 것이다. 사실 대학원에 가고 싶다는 생각을 하게 된 것은 다른 이유 때문이다. 요즘 Java 공부를 하다 보니 점점 모르는 것들이 많아지고 Java 기술에도 너무 다양한 기술 분야가 존재하기 때문에 결국 하나의 분야를 선택해서 깊이 있게 공부할 필요성을 느끼게 됐기 때문이다. 하지만 외국 회사는 개발자에게 당연하게 CS 학위를 원하고 있고 manager 역할을 하게 되도 학위가 중요할 것 같다는 생각 또한 강하게 들고 있다.

물론 국내에도 차니토비 같이 개발자로서 꾸준히 멋진 활동을 하고 있는 분들이 많은 것을 알고 있다. 결국 중요한 것은 본인의 실력인지도 모른다. (사실 실력 또한 증명하기 위해서 다양한 활동을 요구한다. 책 집필, 유명 프로젝트 활동, 경력 등등) 여전히 나의 고민은 계속 되고 있다. 정봉스님 말씀처럼 시간과 공간이 의미가 없는 무량 세계에서 진리를 찾기 위해서는 바로 지금이 이 순간이 가장 중요한 것이 아닐까.