- Published on
개발자의 역량은 어떻게 평가될까?
도입
사업을 시작하는 지인이 있어서 잠깐 이야기를 했었다. SI 업체를 찾아가서 상담 받은 이야기를 들으며 개발자의 역량에 대해 생각해보게 되었다. 나 역시 개발자이지만 왜 개발자의 임금은 비쌀까?
높은 임금을 받는 개발자는 무엇이 다를까?
회사 입장에서 높은 임금을 주는 개발자를 채용한다는 것은 적어도 그 이상의 값어치를 할 수 있을거라 생각하기 때문이다. 월급이 1,000만원인 개발자가 그 이상의 일을 하지 못하면 채용할리가 없다. 그럼에도 시니어 개발자에 대한 채용이 끊임없이 이루어진다는 것은 그 값을 하고 있다는 이야기이다.
대형 프로젝트를 만들 수 있는 개발자
주니어 개발자가 개발할 수 있는 결과물에는 분명한 한계가 있다. 튼튼한 지반 위에 더 높은 건물을 세울 수 있듯이, 아직 지식이 부족한 주니어 개발자는 대형 프로젝트를 이끌어갈 수 있는 능력이 없다. 작은 사이즈의 개발은 빠르게 잘하는 주니어 개발자가 대형 프로젝트를 맡았을 때 맥을 못추는 경우가 이에 해당한다.
이해하기 쉽게 건축을 예로 들면, 강아지를 위한 작은 나무집은 누구나 만들 수 있다. 하지만 사람이 사는 집은 아무나 만들 수 없다. 사람이 사는 집은 수많은 자재와 인력 그리고 장비 등을 다룰 수 있는 능력이 필요하다. 스킬의 문제라기보다는 수많은 자재와 인력 등을 관리할 수 있는 능력이 필요하다.
개발 프로젝트도 이와 같다. 작은 하나의 웹페이지는 어느 개발자든 쉽게 만들 수 있지만, 복잡하고 많은 기능이 들어가는 웹 페이지는 지식 뿐만 아니라 경험과 수많은 코드를 관리할 수 있는 능력이 필요하다. 이는 결코 짧은 시간에 습득할 수 있는 기술이 아니다.
사업의 규모가 큰 개발자
개발 결과물들은 일반적으로 확장성이 좋기 때문에 한국을 대상으로 서비스하는 프로젝트였을지라도 다른 분야에 비해 비교적 쉽게 해외를 대상으로도 서비스할 수 있다. 물품을 만드는 공장은 해외에 수출하기 위해 해외에 공장을 새로 짓거나 더 많은 리소스를 사용해야 한다. 하지만 앱 개발의 경우 앱스토어에서 타겟팅을 해외로 넓히는 것만으로 쉽게 서비스 영역을 확장할 수 있다. 국내를 대상으로 서비스 하는 기업의 매출이 1억이라면 전 세계를 대상으로 서비스 하는 기업의 매출은 수십억 이상이 될 수도 있다.
많은 경험을 가지고 있는 개발자
개발자가 많은 개발 경험과 지식을 가지고 있으면, 시행착오를 줄일 수 있다. 기업에게 있어 시간은 돈과 마찬가지다. 한명의 고급 개발자가 개발 기간을 1달을 단축하게 된다면, 그 기간에 회사는 약 한달치의 사무실 임대료, 많은 직원들의 인건비를 절약할 수 있다.
예전에 작업하다가 코드가 다 날린 경험이 있다. 한달 정도 작업하던 결과물을 모두 잃어버렸는데, 다시 처음부터 복구하는데 걸린 시간은 일주일이 채 되지 않는다. 한번 가본 길은 더 빠르게 갈 수 있다. 그래서 많은 경험을 가지고 있으면 더 빠르게 개발 할 수 있다.
생산성이 높은 개발자
개발자를 채용하는 것은 하나의 공장을 채용하는 것과 같다는 이야기가 기억에 난다. 일반적으로 개발자는 수많은 자신만의 기술들을 가지고 있다. 이를 활용할 수 있기 때문에 바퀴를 재발명할 필요 없이 빠르게 자동차를 만들 수 있다.
생산성을 높이는 또 다른 방법은 가야하는 길로 한번에 가는 것이다. 그동안 많은 개발을 하면서 느꼈던 가장 중요한 개발 원칙은 있어야할 곳에 있어야 하는 것이 있는 것이다. 이를 빠르게 캐치할 수 있다면 특히 수정에 대한 부담이 많이 줄어들 것이다.
대체 불가능한 개발자
희소성이 가치를 키우는 경우이다. 그가 가진 스킬이 다른 개발자로 대체할 수 없는 경우 그 가치는 증가할 수 밖에 없다.
어떤 개발자의 역량이 필요한지는 분야에 따라 다르다.
만약 내가 프리랜서라서 다른 사람들의 개발을 대신해준다면 가장 필요한 능력은 내가 가진 라이브러리가 많아서 생산성이 높은 것이 아닐까 싶다. 대부분의 서비스는 로그인/로그아웃 등은 당연히 필요할테니 이 부분만 잘 템플릿화 해두면 더 적은 시간으로 더 많은 프로젝트를 만들 수 있을테니 말이다.
나는 앞으로 어떤 역량들을 개발하면 될까? 당장 도움이 되는 것은 나만의 템플릿, 즉 라이브러리를 많이 만들어두면 도움이 될 것 같다. 더 빠르게 개발을 할 수 있기 때문이다.
그 이후에는 새로운 분야에 많이 도전에서 경험을 가지게 되면 좋지 않을까?
이 외에도 커뮤니케이션, 성장 가능성 등 다양한 것들이 있겠지만 당장 떠오르는 것들만 남겨봤다.