우리는 제너럴리스트(Generalist)로 길러진다. 국어, 영어, 수학 등, 못하는 게 없어야만 ‘좋은 대학’에 진학 가능하다. 특출 난 몇몇의 예외는 있을지라도, 대다수는 이 룰(rule)을 벗어나기 어렵다. 그러나 대학에 들어오면, 덜컥 스페셜리스트(Specialist)가 될 것을 강요받는다. 무얼 하는지도 모르는 학과를 선택하고, 전문 인력이 되는 교육받는다. 그러나, 12년간 제너럴리스트로 길러졌던 우리는, 갑자스런 이런 변화에 적응하기가 쉽지 않다. 그래서 전공을 살리기보다는 연봉 높은 대기업 취업에 뛰어들거나, 일찌감치 공무원 준비에 열을 올린다.
개발자는 조금 다르다. 대기업에 취업했더라도 마찬가지다. 관리위주의 업무가 일반적인 사무직과는 달리 개발자는 전형적인 스페셜리스트에 속한다. 프로그래밍이라는 명확한 기술 영역을 바탕으로 업을 영위하기 때문이다. 물론 요즘 개발자의 업무와 성향은 예전에 비해 다양하지만, 여전히 타 분야와 비교하면 스페셜리스트에 가까운 성향을 가진다.
하지만 스페셜리스트의 전형인 개발자도, 연차가 쌓이고 직급이 오르면 프로그래밍 외적인 매니저의 능력을 필요로 한다. 프로젝트를 관리하고, 팀원을 관리하고, 타 팀과 소통하는 등, 제너럴리스트의 능력이 요구된다. 그러나 오로지 프로그래밍적 사고에 익숙하던 개발자에게, 이렇게 갑작스러운 변화는 감당하기 힘든 경우가 많다.
매니저와 개발자가 확실하게 구분된 외국 기업에서는, 성향에 맞는 직종을 택할 수 있다. 연봉이나 연차도 직급도 관계없다. 매니징 업무가 어울리는 사람은, 20대에 매니저가 될 수 있다. 또한 프로그래밍을 목을 매는 개발자라면, 백발이 되어서도 개발자로 살아남는다.
(외국기업을 안 다녀봐서, ‘카더라’이긴 합니다)
게다가 우리나라의 수직적 문화가 발목을 잡는다. 한국에서 매니저는 언제나 실무 개발자의 상급자로 인식한다. 엄연히 업무가 다름에도 불구하고, 능력과 관계없이 연차만 쌓이면 매니저 역할을 맡긴다. 아무리 프로그래머로 남고 싶어도 회사가 가만 놔두지 않는다. 매니저를 맡지 않으면 능력 없는 퇴물 개발자로 낙인찍는다. 이러한 관행은 다양한 문제를 만들어 낸다. 매니징 역할을 떠맡은 리더도, 그 아래에서 일하는 팀원 모두 고통받는다.
소통은 모든 회사 생활의 기본이다. 어떤 위치, 어떤 직군이든 구성원과 타부서간 소통은 필수다. 특히, 타 부서와 원만한 관계를 형성하지 못한다면, 자칫 부서 전체가 비난받을 수 있다. 어느 누구도 잘못한 것 없는데, 리더 한 사람의 일탈이 모든 구성원의 평판을 떨어뜨린다.
또한, 팀 전체 분위기를 해칠 우려가 있다. 컴퓨터와 소통하길 선호하다 보니 구성원들과 원만한 관계의 필요성을 느끼지 못한다. 대화가 없고 구성원의 생각과 의견을 청취하는데 소홀히 한다. 우호적인 몇몇의 의견만 들으며 마치 그것이 전부인 것처럼 믿는다. 자연스레 독단적이고 편향적인 결정으로 이어진다. 심하면 팀은 분열되고, 편을 나눠 서로 비난하는 사태에 이르기도 한다.
개발자에게 있어 가장 중요한 요소를 뽑으라면 누가 뭐라 해도 기술적 능력이다. 아무리 뛰어난 소통 능력과 친화력을 가졌더라도, 일이라는 본질에 취약하면 좋은 평가를 받기는 어렵다(대기업은 예외가 많을 듯). 실무자라면 당연한 이야기다. 하지만, 개발 팀장이라면 이야기는 전혀 달라진다.
기술만 중시하는 리더는 많은 문제를 야기한다. 그중 하나는 과한 기술 욕심이다. 모름지기 리더라면 서비스의 성격과 일정, 구성원에 따라 적절한 기술을 택해야 한다. 그런데, 기술적 욕심이 지나치다 보니, 새로운 기술이라면 앞뒤 안 가리고 무분별하게 도입하려 든다. 일정이 어떻게 되든, 구성원들에게 얼마나 큰 압박인지 따위는 고려하지 않는다. 오로지 자신의 기술적 욕심만 채우려고 한다.
또한, 팀 분위기와 무관하게 오로지 기술력 하나로만 사람을 모은다. 가끔 면접에 들어가 보면, 도무지 같이 일하고 싶지 않은 느낌을 받는 사람이 있다. 기술에 대한 자신감을 높지만, 쉽게 화내거나 원활한 대화가 불가능하다. 그럼에도 오직 기술력이 높다는 이유로 덜컥 합격시켜버리는 리더가 있다. 요즘같이 팀으로 움직이는 시대에 인성에 문제 있는 사람 하나가 얼마나 쉽게 팀 분위기를 망칠 수 있는지 모른다는 건 리더로서 자질 부족이다.
리더에게는 균형 잡힌 프로젝트 관리 능력이 필요하다. 특정 구성원에게 지나치게 일이 몰리지 않도록 관리해야 할 의무가 있다. 그럼에도 불구하고 많은 개발 리더는 빠르게 처리된다는 이유만으로, 특정 사람에게 일감을 몰아준다. 당장은 잘 돌아가는 것처럼 보인다. 하지만 길게 보면, 팀 전체 수준을 끌어올리지 못하는 한계가 있다.
일이 몰린 몇몇은 과도한 업무 탓에 정신적 육체적으로 고통받는다. 게다가 소외되는 나머지는 일에서 멀어지면서 좋은 보상을 기대하기 어렵다. 팀원 간 격차는 점점 벌어진다. 일하는 사람만 계속 일하고, 일이 없는 사람은 월급루팡으로 전락한다. 훌륭한 리더라면 지금 당장 어렵더라도, 구성원 각각의 성향을 파악하고 장점을 살릴 수 있도록 적절하게 업무를 분배해야 한다.
다른 사례로, 일을 나누지 못하는 혼자 떠안는 매니저도 있다. 응당 매니저라면 구성원 모두 균형 잡힌 업무가 가능하도록 일을 나눌 줄 알아야 한다. 하지만, 일을 분배하지 못하고, 혼자서 모든 일을 처리하려 든다. 이들은 누군가에게 일을 주는 것이 어렵다. 구성원을 믿지 못하거나, 미안한 마음에 일을 맡기지 못한다. 잠깐은 괜찮을지도 모른다. 하지만 이런 행태는, 장기적으로 매니저와 구성원 모두에게 부정적인 영향을 끼친다.
물론, 한계는 있다. 다시 한번 말하지만, 상하관계 위주인 한국 사회에서 매니저와 개발자를 완전히 분리하기란 사실상 불가능하다. 그래서 매니징은 상급자의 역할이라고만 생각한다. 그러나 매니징과 프로그래밍은 완전히 다른 영역이다. 익혀야 할 능력도 성향도 모두 다르다.
그나마 다행인 것은, 조금씩 변화된 사례가 종종 눈에 띈다는 점이다. 개발 PM 같은 전문 영역이 조금씩이나마 만들어지고 있다. 입사 초기부터 매니저로 길러지는 사례가 있는가 하면, 60대에 여전히 현역처럼 소프트웨어 엔지니어로 살아가는 분의 사례도 종종 눈에 띈다. 직급을 없애고, 직책만 부여하는 것도 이런 변화의 한 갈래라 생각한다. 한국의 상하 문화가 단기간에 쉽게 사라지지 않겠지만, 조금씩 변하다 보면 언젠가 성향에 맞는 적합한 업무를 할 수 있는 회사 문화가 만들어지지 않을까 기대해본다.