"Two is company, Three is a crowd"
사람이 3명 이상 모이면 다툼이 있을 수 있지만, 정치도 생기기 마련입니다.
정치를 잘하는 사람도 있는가 하면 정치 자체를 모르는 사람도 많습니다. 저는 완전 후자입니다. 하지만 소프트웨어 개발자로서 15년 이상 일해온 시간을 꺼꾸로 거슬러서 생각해보면 크고 작은 정치판이었다는 것을 깨닫게 됩니다. 그리고 왜 과거에 그런 일들이 일어났고 왜 그렇게 흘러왔는지 이해가 됩니다. 그것이 그들만의 생존 방법이었다고 생각이 듭니다.
내가 이해할 수 없는 것은 정치가 별로 필요 없을 것 같은 소프트웨어 회사에서 뭔 그리도 많은 정치가 판을 치냐는 겁니다. 모두 힘을 합쳐 실력만 발휘하기도 부족한 마당에 정치로 소모하는 에너지가 어마어마합니다.
특히 실력은 없이 오로지 정치력으로 버티는 사람들이 많아서 이런 사람들이 버티는 조직에서는 정치는 모르지만 진짜 실력이 있는 사람들 특히 개발자들은 성장하기 어렵습니다. 특히 관리자와 개발자의 경계가 모호한 우리나라에서는 정치성이 강한 개발자들이 뛰어난 선임 개발자들을 정치적으로 말살하는 일들이 종종 벌어집니다.
관리자와 개발자는 엄연히 다른 직종이지만, 정치적 관리자는 이들을 미래의 경쟁자로 생각하여 나쁜 평가를 내리며 회사에서 몰아내기도 하고, 시키는 대로 일 잘하는 약간 멍청한 개발자들을 열심히 등용하곤 합니다. 5년 후에 위협이 될 듯한 개발자들은 싹부터 자르는 거지요. 중간관리자들의 이러한 행태를 회사의 최고 경영층이 눈치채기란 어렵습니다. 그렇게 시간이 흐르고 나면 우리가 흔히 보는 정치만 판치는 회사가 되는 겁니다. 그리고 뛰어난 인재가 다 죽어버려서 마땅히 일을 시킬 사람이 없어지고, 이들을 죽인 관리자만 계속 등용하는 수밖에 없게 됩니다.
개발자를 너무 열심히 관리하면 안되는 이유가 여기에도 있습니다. (프로젝트 관리는 다른 이슈입니다.)
개발자들은 일반 다른 직종과는 다르게 스스로 자신들이 할 일을 찾아내고 일을 합니다. 개발자들에 필요한 관리란 고작 휴가나 캐리어 관리(지원) 등입니다. 자칫하면 "과유불급"이 됩니다.
개별 프로젝트에서는 프로젝트 관리자가 관리업무를 수행하니 일반 관리자가 할 일은 그렇게 많지 않습니다. 따라서 20~30명 규모의 회사가 관리의 강화를 위해서 일반 관리자를 채용하곤 하는데, 소프트웨어 개발에 대해서 잘 이해하고 있지 않은 관리자들은 개발자들의 일을 방해하고 사기를 저하시키며 개발자를 내쫓기도 합니다.
개발조직을 전통적인 서열 조직으로 만들지 마십시오. PM, 팀장, 부서장이 있을 수 있지만, 시스템과 프로세스를 통해서 개발자와 최고 경영층이 직접 접촉을 유지할 수 있도록 해야 합니다. 그렇지 않으면 정치꾼 관리자가 귀한 인재를 다 짤라 버릴지도 모릅니다.