지난 8년 동안 프로그래머로 일을 해 오면서 다양한 조직에서 여러가지 역할을 수행할 기회가 있었습니다. 지금처럼 일선에서 열심히 프로그래밍만 한 적도 있었고, 한동안은 프로젝트 수주를 위한 제안 작업을 한적도 있었습니다. 또 한 때는 PL(Project Leader)를 수행한 적도 있었습니다.
길지는 않은 시간이었지만 몇 군데 회사를 거치면서 나름대로 프로그래머를 가르는 기준이 하나 생겼는데요, 그것은 다음과 같습니다.
위 기준은 직급이나 짬밥하고는 상관 없습니다. 오히려 프로그래머의 성향/태도와 더 관련이 있습니다. 우선 저 기준에서 일꾼은 그저 자기의 일을 해내는 사람입니다. 한마디로 "밥값"하는 프로그래머지요. 저는 이 레벨에 속해 있는 사람입니다(방해꾼은 아니고 싶어요. ㅜㅜ). 기여자는 자기 자신의 일 이상을 해내는 사람입니다. 팀에 필요한 도구들을 만들어 내며, 다른 사람들이 풀지 못하는 기술적인 난제들을 풀어냅니다. 선구자는 기여자의 특징 이외에도 비전을 갖고 있습니다. 제품의 3년 후, 5년 후를 내다보는 눈을 갖고 있고 자신 뿐 아니라 팀의 변화에 대해서도 많은 관심과 영향력을 갖고 있습니다.
"방해꾼"은 역량에서 한계를 보이는 데다, 학습 의지(능력이 아니라 의지!)도 없습니다. 당연히 자기 할 일도 제대로 해내지 못합니다. 수준이 낮은 문제에 대해서도 늘 남에게 도움을 요청하기 때문에 다른 사람들에게 도움을 청하고, 결과적으로 팀 전체의 퍼포먼스를 떨어뜨립니다. 문제는 이런 사람이 조직에 오래 살아남아 짬밥이 차는 경우입니다. 저는 짬밥이 많이 찬 방해꾼들이 선구자/기여자/일꾼 수준의 후배 프로그래머들을 조직에서 떠나게 만드는 경우를 여러 번 봤습니다. 이들은 자기가 작성한 Java 코드가 Class Not Found 예외 때문에 실행이 안된다며 후배에게 이걸 고쳐내라고 하는가 하면, 잘못된 지식을 가지고 한참 설교를 하기도 합니다. 이렇게 두 달 정도 당하더니 사표를 쓰더군요. 길게는 3년 정도를 버티는 사람도 봤습니다.
문제를 해결하려면 방해꾼을 "갱생"시키든지, 내보내든지 해야 하는데 전자의 경우가 성공하는 경우는 거의 보지 못했습니다. 대부분 어쩔 수 없이 후자를 수행해서 문제를 해결하거나, 그러지 못하는 경우에는 방해꾼을 다른 팀원들로부터 격리시키기 위해 독립적인 업무를 부여하더군요.
이 글은 어느 지인의 방해꾼에 대한 고민을 듣고 새삼 생각이 나서 쓴 것입니다. 그 분에게는 제가 예전에 써둔 이글을 보여드리는 것 말고는 달리 해드릴 수 있는 말씀이 없더군요. 정답이 될 수는 없겠지만 참고는 하실 수 있겠죠.
아이고, 벌써 출근 시간입니다. ^^;