유능한 개발자는 IT업계에서 연예인과 같은 존재다. 유능한 개발자에 대한 수요는 끊이지 않기 때문에 다양한 규모의 기업에서 최고의 대우를 받으며 일할 기회를 얻는다. 그러나 이런 유명 연예인급 지위를 얻기까지는 오랜 시간이 걸린다. 기업에서 유능한 개발자로 이름을 알리기 위해서는 이에 걸맞은 수준급 기술과 행동 습관을 숙지하는 것이 좋다.
IT 실업률은 2.6%로 매우 낮은 편이기 때문에 개발 인력을 확보하기 위한 경쟁은 치열하고 기회는 많다. 그러나 최상위 계층으로 올라서기 위해서는 그만한 노력이 뒷받침돼야 한다. 대부분의 IT 직업과 마찬가지로 개발자에게도 효과적인 경력 관리와 기술을 향상하기 위해 집중해야 할 여러 영역이 있다. 이를 위해 경력이 높은 현직 개발자와 채용 담당자에게 개발자의 전문성 신장을 위해 역량을 갖춰야 하는 부분에 대해 조언을 구했다.
1. 최신 기술 동향을 따라 잡기 위해서는 계속 공부해야 한다
끊임없이 변하는 최신 기술 동향에 발맞추기 위해서는 개발자도 ‘발전’해야 한다. 책이나 신문기사, 학원, 개발자 모임, 컨퍼런스, 기업이 제공하는 내부 교육 등을 통한 학습은 모두 개발자의 기술을 신장할 수 있는 좋은 방법들이다.
옴니TI(OmniTI)에서 15년 이상 개발자로 일해온 로버트 트리트는 “소프트웨어 개발 영역은 너무나 빨리 변화하기 때문에 현재 어떤 기술로 작업하든 5년 이내에 그 기술의 여러 측면이 달라지며, 10년 후에는 완전히 사라질 수도 있다"며, “새로운 기능이 추가되거나 실행 방법이 변경되는 새 버전의 소프트웨어를 늘 접해야 한다. 따라서 지금 업무에서 사용하지 않더라도 새로운 기술을 꾸준히 학습할 방법을 찾아야 한다. 사이드 프로젝트(Side Project)와 오픈소스 커뮤니티에 참여하거나 다양한 기술을 사용하는 기업에 입사하는 것도 좋은 방법”이라고 말했다.
2. 문제해결능력
윈터와이먼(WinterWyman)의 정보 기술 검색 부문 수석 부사장 겸 파트너인 트레이시 캐시먼은 “일부 기업은 문제 해결 능력을 대단히 중시해서, 코딩 실무 면접 대신 논리 시험이나 퍼즐 면접을 본다. 이런 기업들은 특정 언어로 코딩하는 능력이 아닌, 창의적인 문제 해결 능력을 높이 산다. 많은 기업이 애플리케이션의 종류에 따라 각기 다른 언어를 사용하므로, 필요한 언어와 도구로 쉽게 전환할 수 있는 사람을 원한다”고 말했다.
웹 아키텍트인 브라이언 듀너번트는 의사 소통에 대해 “고참 개발자가 되면 일에 싫증을 내거나, 사용자의 버그 보고나 신참 개발자가 제기한 문제를 무시하기 쉽다. 이런 안일한 의식에 빠지지 않도록 스스로를 통제해야 한다. 물론 보고된 문제들이 치명적인 문제로 이어지는 경우는 거의 없지만, 그렇다 해도 부하 개발자를 교육하거나 고객을 도울 기회가 될 수 있다. 게다가 보고 내용이 틀리지 않은 경우도 있는데, 덕분에 문제를 해결하고 새로운 것도 배울 수 있게 된다”고 설명했다.
캐시먼은 “좋은 소식은 개발자라면 대부분 인력 시장에서 수요가 높다는 점이고, 나쁜 소식은 인맥 구축을 위해 적극적으로 노력하지 않을 경우 앞에 높인 기회를 놓치기에 십상이라는 것이다. 개발자들의 링크드인 프로필을 보면 거의 작성되지 않은 채 방치된 경우가 많다. 구인업체들의 연락을 받는 것이 귀찮아서일 수도 있지만, 이 경우 링크드인에서 직접 채용에 나서는 채용 담당자들의 눈에도 띄지 않게 된다. 최소한 모임에 참석하고 인맥을 넓혀나가야 한다. 대부분의 채용은 지인 추천이나 사전에 누구에게 어떤 기술이 있는지 아는 경우에 이뤄진다”고 말했다.
트리트는 “전문성 영역에서 자신을 더 드러내고자 하는 개발자에게 가장 좋은 브랜딩 방법은 자신이 익힌 기술과 참여한 프로젝트를 보여주는 기술 블로그를 운영하는 것이다. 이와 같은 개인 브랜딩을 해두면 특정 주제나 기술에 대한 전문가를 찾는 잠재적인 구인자의 눈에 잘 띄게 된다”고 말했다.
앱 개발업체인 텔라힐림 LLC(Tellahilim LLC)의 소유자 조지 리우는 “내 철학은 대부분의 전문 소프트웨어 엔지니어의 철학과 마찬가지로 내 작업의 결과물이 곧 내 얼굴이라는 것이다. 설계가 잘 되었으면서도, 작성도 잘 된 코드는 자신의 직업과 고객에 대한 존중을 드러낸다”고 말했다.
7. 애자일 방식에 친숙해지기
트리트도 이에 대해 동의하면서도, 한 가지 주의사항을 당부했다. 트리트는 “전통 방식의 소프트웨어 개발 방법론은 지고, 개발을 짧은 시간에 반복하는 방법론으로 옮겨가고 있다. 개발자들이 애자일 방법론을 공부하는 것은 가치가 있지만, 실제 현장에서 이를 적용할 때 종종 다른 방식으로 해석되곤 한다. 여기에는 지속적인 지원과 배포도 포함된다. 유연성과 일반적인 소통은 소프트웨어 개발에서 중요한 부분이므로, 개발자는 이에 대비해야 한다”고 말했다.
트리트는 “소프트웨어 개발만으로도 시장성이 충분하다는 이유로 개발자들은 모바일 개발 역량을 기르기보다는 필요한 경력만 쌓고 있을 수 있다. 그렇긴 하지만, 모바일 플랫폼은 빠른 속도로 데스크톱 플랫폼을 대체하고 있기 때문에 개발자는 모바일 플랫폼과 관련된 기술에 친숙해지는 것이 중요하다. 최소한 웹 개발자라면, 반응형 디자인과 모바일 퍼스트(Moile First) 방법론을 공부할 필요가 있다”고 말했다.
캐시먼은 “전세계적으로 모바일의 중요성을 인식하고 있으며, IT업계도 마찬가지다. IT업체는 안드로이드냐 아이패드냐에 따라 고객의 수요에 맞춰 모바일 서비스를 적극 개발하고 있다. 모바일 기술을 활용해보지 않은 개발자는 곧 경쟁력을 잃을 수도 있을 것”이라고 덧붙였다.
9. 프로젝트 관리기술
10. 자바스크립트, CSS, HTML5 기술
중소규모 IT업체에서 근무하는 많은 개발자는 멀티플레이어가 되어 웹과 관련된 작업을 처리할 수 있어야 한다. 물론 웹 관련 기술은 필수는 아니지만, 이 역할을 할 수 있는 개발자를 원하는 채용 담당자를 만나게 될 수도 있다. 캐시먼은 “웹/UI 기술을 갖추고 있으면 만능 기술자가 될 수 있다. 개발자는 멀티플레이어가 되어야 한다. 규모가 큰 팀에는 애플리케이션의 디자인 요소를 담당하는 프론트엔드(Front-end) 개발자가 따로 있을 수 있겠지만, 보통 하드코어(hard-core) 개발자에게 프론트엔드 작업이 부여되는 경우가 많다”고 말했다.