프로그래머들이여, 캐치볼을 해라!
요즘 다른 회사의 프로그래머와 협업할 일이 있어서 작업을 같이 진행하고 있는데 결과물을 보면 참 한심스럽다. 그 사람의 프로그래밍 능력도 문제지만 더 큰 문제는 대화 능력인 듯 하다. 요구 사항이 전달되지 않아 결국 제멋대로 넘어온 결과물을 우리 쪽에서 다시 맞추는 작업할 수 밖에 없다.
흔히들 프로그래머들이 소통 능력이 떨어진다고 한다. 기획자나 디자이너는 작업 흐름 상 자신의 작업이 끝나면 다른 사람에게 자신의 작업물을 넘겨주고 자신의 작업물이 최종 결과물에 잘 반영될 수 있도록 뒷 사람에게 소통을 시도한다. 그러나 프로그래머는 최종 결과물을 만드는 사람들이다(물론 그 뒤에 QA가 있기는 하지만 QA는 결과물을 확인할 뿐이지 제품을 만들지는 않는다). 그래서 프로그래머들은 상대적으로 소통의 필요성을 덜 느끼며 결국 다른 작업자들 보다 소통 능력이 떨어진다.
그러나 모든 프로그래머들의 소통 능력이 떨어지는 것은 아니다. 익스트림 프로그래밍(XP)에서는 프로그래머의 소통 능력을 매우 중요하게 생각한다. 고객과 개발자 간의 소통 능력 뿐만 아니라 프로그래머 간의 소통 능력에 대해서도 매우 중요하게 다루고 있다. 우리 회사에서도 짝-프로그래밍(pair programming)을 하기 때문에 프로그래머의 소통 능력을 매우 중요하게 생각한다. 나아가 짝-프로그래밍을 통해서 프로그래머들의 소통 능력이 많이 향상되고 있다.
대부분의 프로젝트라는 것이 여러 사람의 공동 작업이고 공동 작업에서 가장 중요한 것은 소통이다. 프로젝트 팀 구성원들 간에 얼마나 소통이 원활하냐에 따라 프로젝트 진행 및 결과가 결정된다.
소통을 잘 하는 방법은 간단하다. 잘 듣고 잘 말하면 된다. 우선 상대방이 전달하려는 내용을 잘 들어야 한다. 상대방의 생각을 충분히 이해한 다음 정리된 자신의 생각을 상대방에서 말하면 된다. 우리 팀은 이것을 야구의 캐치볼에 비유하곤 한다. 캐치볼은 2명(일반적으로)이 플레이어가 하나의 공을 주고 받는 행동이다. 공이 하나이기 때문에 내가 공을 받아야 상대방에게 공을 던질 수 있다. 대화도 마찬가지이다. 내가 나의 생각을 말하기 위해서는 상대방의 생각을 들어야 한다.
그리고 공을 던질 때엔 상대방의 가슴을 향해서 던진다. 상대방이 다음 동작을 잘 이어갈 수 있도록 하기 위한 배려이다. 대화도 마찬가지이다. 내가 하고 싶은 말을 아무렇게나 하는 것이 아니라 상대방이 잘 알아들을 수 있도록 최대한 배려해서 말해야 한다. 그러기 위해서 말하기 전에 듣는 사람의 입장을 생각해봐야 한다.
끝으로 상대방이 던진 공이 내 가슴을 향해 날아오지 않으면 내가 움직여야 한다. 상대방이 가슴을 향해서 던지려 해도 사람이기 때문에 원하는 곳을 공이 날아오지 못할 때가 많다. 특히 초보자의 경우엔 더욱 그러하다. 그래서 공을 받는 사람이 움직여야 한다. 만약 움직이지 않으면 캐치볼은 중단된다. 대화도 비슷한다. 상대방의 하는 말이 자신이 것이 아닐 때 감정 상하지 않고 상대방의 생각을 이해하려고 노력해야 한다. 그리고 대화를 계속 이어나아가야 한다.
요즘은 프로그래머들이 블로그나 트위터, 미투데이에서 많은 대화를 시도하고 있다. 하지만 아직까지 내가 경험한 프로그래머 중에는 소통 능력이 떨어지는 사람들이 많다. 인간은 혼자 살 수 없듯이 프로젝트도 혼자할 수 없다.
프로그래머들이여, 오늘부터 캐치볼을 해라!
