협력

2026-02-05 hit count image

우리는 업무를 수행할 때 협력이 중요하다고 말한다. 하지만 우리는 진짜 협력을 하고 있는 것일까?

사람들은 업무에서 협력이 중요하다고 말한다. 하지만 실제로 일하는 모습을 보면, 초반에 일을 세밀하게 나누고 각자 진행한 후 나중에 만나서 합치는 경우가 많다. 이를 자세히 들여다보면 협력은 거의 없다. 협력이 중요하다고 말하고, 실제로 협력을 하지 않는 이유는 무엇일까?

이는 우리가 협력을 제대로 배우지 않았기 때문이다.

스탠퍼드 대학교의 심리학자, 대니얼 슈와르츠의 톱니바퀴 실험(Daniel L. Schwartz. (1995). The emergence of abstract representations in dyad problem solving. The journal of the learning sciences.)을 통해서 우는 협력이란 무엇인지 알아 볼 수 있다.

다섯 개의 톱니바퀴가 가로로 길게 연결되어 있다. 가장 왼쪽에 있는 톱니바퀴를 반시계 방향으로 돌리면 가장 오른쪽 톱니바퀴는 어느쪽으로 돌까?

톱니바퀴 실험의 문제는 위와 같이 마지막 톱니바퀴가 어느 방향으로 돌아가는지를 찾는 문제이다. 이 실험에서는 두 사람이 함께 작업을 하면 문제를 해결하는데 더 적은 시간이 걸리고, 더 적은 시도로 문제를 해결했다는 것을 알 수 있었다.

톱니바퀴 실험 결과 혼자서 작업한 경우 14%만이 추상화 규칙을 찾아냈다. 둘이서 함께 작업한 경우는 58%, 혼자서 작업한 경우보다 4배가 넘는 결과를 보였다. 두 사람이 한팀으로 작업하되 서로 인터렉션을 하지 않고 두 사람이 낸 결과물중 더 나은 것을 선택하는 경우도 26%로의 결과를 보였다.

둘이 함께 작업을 하면 서로 의사소통을 하는 가운데 혼동을 줄이고 좀 더 쉬운 커뮤니케이션을 위해 바퀴에 식별 번호를 붙이는 등과 같은 추상적 개념을 도입한한다. 둘이서 서로 협력하면서 작업을 하면 서로 시각이 다르기 때문에 그 시각을 연결해줄 도구가 필요해진다. 따라서 두 사람은 필연적으로 추상화, 시각화 작업을 하게 된다. 이 추상적 개념이 문제를 해결하는데 큰 역할을 하게 된다. 혼자서 작업을 하게 되면 이 추상화, 시각화 작업을 하지 않게 되고, 이로 인해 문제를 푸는데 어려움을 겪게 된다.

그만큼 어떤 문제를 푸는데, 추상화는 아주 중요한 역할을 한다. 그리고 이 추상화는 혼자서 하는 것보다 둘 이상이 협력을 할 때, 발생한다.

소프트웨어 개발에서도 다음과 같이 추상화를 굉장히 중요시하는 것을 알 수 있다.

  • 전산학의 모든 문제는 또 다른 차원의 간접성(indirection)으로 해결할 수 있다. - 버틀러 램슨
  • 전산학은 추상화의 과학이다. - 알프레도 아호와 제프리 우르만
  • 소프트웨어 공학의 전체 역사는 추상화 수준을 높이는 것으로 특정 지을 수 있다. - 그레디 부치
  • 복잡한 현상에 대한 이해를 발전시켜 나갈 때, 인간 지성에서 가장 강력한 도구는 추상화다. 실세계의 특정한 대상체, 상황, 과정 간의 유사성을 인식하는 데에서, 그리고 이러한 유사성에 집중하고, 차이점을 일시적으로 무시하는 결정에서 추상화가 생겨난다. - 토니 호어

또한 일반적으로 실력이 뛰어난 프로그래머는 보통 정도의 실력을 가진 프로그래머에 비해 커뮤니케이션, 협력 능력이 더 뛰어나다. 실력이 뛰어난 프로그래머는 커뮤니케이션과 협력에 더 오랜 시간을 들이며, 설계나 코딩, 테스팅에 들이는 시간은 통계적으로는 차이가 없다. 즉, 뛰어난 프로그래머는 협력을 통해 시각화, 추상화 작업을 하고, 이 작업이 문제를 해결하는데 큰 역할을 하는 것이다.

추상화를 높이는 가장 효과적인 방법은 다른 시각을 가진 두 사람 이상이 협력하는 것이다. 소프트웨어 개발에서는 짝 프로그래밍이 추상화를 높이는 가장 빠른 방법이다.

짝 프로그래밍은 두 사람이 한 컴퓨터를 사용해 함께 프로그래밍을 하는 것을 말한다. 두 사람은 대화를 통해 추상화를 높이게 되고, 컴퓨터를 통해 추상화한 내용을 구체화하여 검증하게 된다.

익스트림 프로그래머는 작업하면서 프로그래밍 각 단계에 대해 함께 이야기한다. 주의해서 생각하지 않으면 프로그래밍은 특정 프로그래밍 언어로 명령문을 타이핑해 넣는 것에 지나지 않는다고 생각할 수 있다. - 워드 커닝햄

자신의 코드의 추상성을 높이고 싶다면 혼자 고민하지 말고 짝 프로그래밍 등을 사용하여 다른 사람들과 협업을 하고 대화를 해보자. 그림도 그려보고 함께 소스코드도 편집해 보면서 자신의 추상화 능력을 향상시켜 보자. 이런 추상화 능력이 문제를 해결하는 능력으로 이어지게 될 것이다.

협력은 모두가 만나서 일을 나누고, 각자 일을 하고 나중에 합치는 것이 아니다. 협력은 문제를 풀기위해 서로 다른 시각을 가진 사람들이 함께 대화를 하면서, 추상화를 하고 이를 통해 훌륭한 솔루션을 도출해 내는 것이다.

이렇게 추상화를 사용하여 문제를 해결하는 것이 바로 협력이다. 추상화를 높이려는 노력이 협력이다. 다른 사람과 일을 하면서 추상화 작업을 하지 않고 있다면 올바른 협력을 하고 있는 것이 아니다.

우리가 하는 대부분의 업무는 어떤 문제를 해결하는 것이다. 그리고 문제를 해결하는 가장 좋은 방법은 추상화를 높이는 것이다. 다시 한번 자신이 하는 업무를 되돌아 보고, 협력을 하고 있는지(추상화를 사용하고 있는지) 확인해 보자.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts