2009년 9월 22일 화요일

시한부 프로그래머

우리나라 개발자들은 10년 후가 매우 불확실합니다.


오랫동안 프로그래머로서 일할 수 있도록 보장이 되지도 못하고, 그런 Role model을 본 적도 별로 없기 때문이죠. 그래서 5년~7년쯤 일하고 나면 미래를 걱정해야 할 시기가 도래합니다.

윗사람들은 자꾸 관리를 하라고 하고, 선배들을 봐도 15년차 개발자보다 15년차 관리자가 회사 내에서 영향력도 더 크고, 연봉도 더 높습니다.

개발이 좋기는 한데 계속 개발자로만 머물려면 미래를 많이 희생해야 합니다.

그래서 개발과 관리 양다리를 걸치기도 하는데, 결국 관리도 잘 못하고 개발도 잘 못하는 어정쩡한 상태가 계속 되기도 합니다.


SW선진국에서는 기본적으로 개발자의 Career path는 확실히 개발자냐 관리자냐 구분이 됩니다. 내가 개발자로 머물고 싶다면 관리를 하지 않고 개발자로 계속 머물 수 있습니다. 물론 그에 걸맞은 실력도 있고 기여도 해야겠지요. 보통 개발자가 연봉도 더 높고, 회사의 위기 때 짤릴 위험도 적고, 회사를 옮기기도 더 쉽습니다. 또 골치 아픈 관리를 하지 않아도 되니 흰머리도 덜 생기지요.


하지만 개발에 대한 전문성에 대한 이해가 부족한 우리나라에서는 개발과 관리의 구분을 명확하게 하지 못하고 개발을 잘하고 고참이 되면 팀장이 되고, 관리자가 되는 것을 당연하게 생각하고 있습니다. 이는 한창 잘 뛸 10년차 축구 선수에게 이제 고참이니 구단 관리도 좀 맡아 달라고 하는 것과 비슷합니다. 


고참개발자에게 관리를 맡기는 것보다 관리 전문가를 따로 뽑거나 키우는 것이 더 효율적이고 비용도 적게 듭니다. 관리를 만만하게 보고 개발자들에게 관리 일도 시킨다면 개발, 관리 둘다 망치는 일입니다.  


또한 개발자 역시 신참 때나 고참이 되어서나 코딩이 좀 빨라진 정도 가지고는 개발자로서의 신분 보장을 주장하기에는 설득력이 약합니다. 경력을 쌓아 갈 수록 단순 코딩이 아니고 설계, 분석 능력을 점점 키워야 하고 소프트웨어 전문가로서 손색이 없는 지식과 경험을 갖춰야 합니다.


하지만 결국 아무리 노력해도 회사차원에서 Career path가 보장되지 않는다면 어려운 일입니다. 회사가 그리고 경영자의 마인드가 먼저 바뀌어야죠. 멀게만 느껴집니다.

2009년 9월 11일 금요일

부지런한 개발자가 되라

지난번에 "게으른 개발자가 되라"는 글을 올린 적이 있습니다.
이번에는 그 반대 제목인 "부지런한 개발자가 되라"는 글입니다.

소프트웨어 개발은 대단히 섬세하고 꼼꼼한 작업입니다.

이를 어설프게 대충 접근하다가는 프로젝트도 망칠 수 있을 뿐만 아니라 본인 스스로의 성장에도 지장을 줄 수 있습니다. 다음에 몇 가지 질문에 답변을 해보시죠.

  • IDE에서 제공하는 편리한 Wizard를 이용하지 않으면 개발이 어렵다.
  • 새로운 시도를 할 때 책은 안보고 일단 해본다.
  • 새로운 알고리즘에 원리는 관심이 없고 사용만 한다.
  • 내가 작성한 코드를 꼼꼼하게 Trace 해보지 않는다.
  • 버그는 미뤘다가 나중에 고친다.
  • 유닛 테스트는 잘 하지 않고 QA테스트에서 걸러줄 것으로 기대한다.
  • 내가 참여하는 프로젝트만 관심이 있고 다른 부서의 프로젝트에 대해서는 전혀 모른다.
  • 내가 주로 쓰는 프로그래밍 언어 외에는 배척한다.
  • 항상 업무에 치여서 신기술에는 관심을 가질 시간이 없다.
  • 동료들과의 지식공유에 많은 노력을 기울이지 않는다.

이 질문들에 Yes가 얼마나 많으신가요? 설마 10개는 아니겠죠.

질문들이 직접적인 관계는 없는 것 같지만 개발자가 단순히 Output만을 내기 위해서만 일을 해서는 안되다는 메시지를 담고 있습니다. 

너무 편리하게 일하려고 하고 원리에 소홀하면 개발자로서의 기술적인 깊이를 다질 수가 업습니다. 또 자신의 코드를 꼼꼼하게 검사하는 습관을 들이지 않으면 항상 버그만 많이 만들어 내는 개발자로 낙인 찍힐 수 있습니다. 또한 다른 부서의 프로젝트에 대해서도 관심을 많이 가져야만 지식과 경험의 범위가 넓어지고, 회사 내에서도 기술적인 영향력을 지속적으로 확대해 나갈 수 있습니다. 또한 다른 부서의 개발자들에게 도움도 줄 수 있습니다. 

따라서 10년 이상의 경력을 가진 개발자인데 아직도 자신의 팀의 프로젝트에서 게다가 코딩만 열심히 하고 있다면 정말 똑똑하게 부지런한 개발자는 아닙니다. 이런 개발자들이 주는 Value는 신입사원에 2,3배에 불과합니다. 당연히 연봉도 많이 받을 수가 없죠. 10년 경력 이상이라면 적어도 타 부서의 프로젝트의 다양한 Review session에 참여하여 기술적인 결정에도 참여를 하고 전사적인 기술 Roadmap이나 의사결정에 참여할 수 있어야 합니다. 물론 회사 규모에 따라서 그 정도는 약간씩 달라지지만 아직까지 자신의 팀에만 머물러 있어서는 안됩니다.

요지는 부지런해도 좀 Smart하게 부지런해야 한다는 것입니다. 코딩에만 몰두하지 말고 본인의 지식과 경험을 좀더 깊게 좀더 넓게 하기 위해서 꾸준히 부지런을 떨어야 합니다. 그래야 10여년 후에 연봉 1억을 받아도 아깝지 않은 개발자가 될 수 있습니다.