💡 Intro

  • 주로 협력이라고 하면 초반에 일을 나누고 선을 그어 따로 진행하는 것처럼 생각한다.
  • 실제로 일을 나누는 것은 초반에 하기 어렵다. 왜냐면 그 일이 무엇인지 잘 모르기 때문이다. 그럼에도 불구하고 사람들은 일을 초반에 나누고 따로 진행하면서 협력이 아닌 협력을 한다.
  • 요즘에 ‘함께’라는 것이 중요 키워드다. 회사와 구성원이 함께, 팀원들이 함께 성장하는 것에 관심이 많다.
  • 이 글은 두 번째 파트인 함께 파트이다.

🌩 소프트웨어 관리자의 우선순위

다음 4가지 영역이 소프트웨어 개발의 관리에 영향을 미치는 요소들이다.

  1. 도구: 소프트웨어 개발에 사용하는 도구
  2. 사람: 사람의 능력과 경험
  3. 시스템: 제품의 복잡도, 요구 신뢰성, DB 크기 등등
  4. 관리: 사람을 배정하고 작업을 분배하고 위임. 작업을 모니터링, 동기 고취 환경 개선, 리스트 확인 및 적절한 조치 등등

주로 개발 비용을 개선하려면 도구나 사람을 개선한다. 즉, 더 좋은 도구로 바꾸거나 더 실력있는 사람을 데리고 오는 것이다. 하지만 실제로 개발할 때 문제가 생겼던 부분이나 비용을 크게 개선하는 부분은 관리 부분이다. 역순으로 실제 중요도가 매겨진다.


🌩 협력을 통한 추상화

이때까지 프로그래머에게 중요하다고 생각되지 않았던 영역은 소프트 스킬이라고 한다. “개발만 하는 천재”라는 표현이 익숙하다. 하지만 사실 진짜로 뛰어난 프로그래머는 사회적인 면을 더 언급하여 협력의 중요성을 상기시킨다.

협력을 하면 그 효용성이 떨어진다는 결과가 많다. 같이 할수록 일도 더디게 진행이 되고 혼자서 낼 수 있는 최고의 아웃풋 만큼의 결과가 나오지 않는 경우가 많기 때문이다.

하지만 협력을 하기 위해서는 일에 대해서 추상적으로 표현하고 설명해야 할 필요가 생기기 때문에 작업에 대한 추상화가 진행될 수 있다. 그런 과정 중에게 문제를 해결하기도 한다. 혼자서 작업을 할 때에는 추상화 작업이 덜 필요하기 때문에 작업을 추상적으로 바라보면서 해결을 하기가 어렵다.

다른 두 시각을 가진 두 사람이 협력을 하면 자연스럽게 추상화를 하게 된다. 그것은 작업에 큰 효용을 가지고 온다. 추상화를 높이고 싶다면 다른 사람과 함께 진행하면서 대화해라!


🌩 신뢰는 깎는 공유인가 신뢰를 쌓는 공유인가

  • 신뢰 자산이 높은 조직은 커뮤니케이션 효율이나 생산성이 높다.

흔히 신뢰를 쌓는데 사용되는 방법은 투명서와 공유, 인터랙션이다. 누군가 한 작업물을 공유하면서 피드백을 주고 받으며 상호작용하는 것이다. 그런데 그 모든 공유와 소통을 하면 반드시 신뢰가 쌓이는 것은 아니다.

실험을 해보았을 때 자신이 한 작업물을 하나만 공유하거나(하나 공유), 여러개의 작업물 중 최고만 공유하거나(최고 공유) 한 경우 신뢰는 더욱 떨어졌다. 반대로 자신이 한 작업물을 모두 공유(복수 공유) 했을 때는 신뢰도가 높아졌다. 하나만 공유했을 때 상대의 의견에 지나치게 방어적이게 되면서 자기효능감이 떨어지기 때문이다.

따라서 복수 공유를 하는 것이 신뢰를 쌓는 공유이다. 복수 공유를 하면 인터랙션이 더 많아지고 피드백을 더 잘 수용하게 된다. 그래서 결과물이 더 잘 나오게 된다. 즉, 복수 공유는 신뢰도도 높아지고 성과도 더 좋다.


🌩 객관성의 주관성

새로운 개념을 적용하기 위해서는 주변을 설득해야한다. 혹시 본인이 팀장이더라도 설득을 해야한다. 이때 수치를 가지고 설득을 하거나 여러 자료를 사용하기도 한다. 하지만 무엇보다 중요한 것은 설득을 하는 그 상대에 대해서 잘 알고 이야기 해보았는지다. 그렇지 않으면 설득에 성공할 확률은 낮아진다.

어떠한 공동체 내에서 사용하는 단어는 매우 주관적으로 사용이 된다. 누군가가 ‘품질’에 대해서 이야기할 때 그것에 대해 각기 다른 의미를 가지고 있을 것이다. ‘객관성’ 또한 마찬가지이다. 누군가를 설득하려면 객관성이 있어야 한다고 말하는데 이 객관성이라는 것 자체가 주관적인 의미를 담고 있다. 따라서 설득을 하려고 한다면 그 상대를 이해해야 한다. 어떤 사람이며 어떤 가치관을 가지고 있는지 알고 그것을 바탕으로 설득을 해야한다. 그것 없이 객관적인 설득은 어렵다. 결국 결정하는 것은 ‘객관적 사실’이기보다 사람이기 때문이다.

아무리 객관적인 의사결정을 하더라도 감정을 배제할 수는 없다. 인간이 그렇다. 그렇기 때문에 누군가를 설득하고 싶다면 그 상대와 신뢰를 쌓고, 그 사람이 중요하게 생각하는 것과, 어떤 설명 방식을 선호하는지 이해해야 한다.


🌩 효과적인 코칭

  • 코칭 능력이 없을수록 상대를 비난한다.
  • 사람은 스스로 한 약속일수록 지킬 확률이 높아진다.
  • 어떠한 방법을 택해서 해왔는지 물어보면서 상태를 파악한다.
  • 할 수 있는 방향을 제시해서 이행하도록 유도한다.

🌩 하향식 접근의 함정

주로 일을 할 때 탑 다운 형식(추상적 → 구체적)으로 가는 것이 깔끔하게 느껴진다. 하지만 전문가일수록 일을 처리하는 것을 확인해보니 추상화의 정도와 구체적인 정도를 왔다갔다 하면서 일을 처리했다.

비전문가일수록 처음에 설계한 것을 고집하며 따라간다. 전문가는 자신의 초기 계획을 자주 수정하며 바꿔나간다.

보면 프로그램을 이해하는 고수는 상호 참조 전략을 쓴다. 프로그램을 이해한 것을 도메인의 어휘로 바꿔보고 다시 이것을 프로그램의 어휘로 바꾼다. 즉, 추상과 구상의 차원을 자주 오간다. 반면 하수는 둘 중 한족에만 집중한다.

조직에 일을 할 때는 주로 여러 팀이 바통 터치를 하면서 일을 진행한다. 이때 협력이 잘 되게 하려면 바통 터치 모델보다 삼투압 모형으로 가야한다.

삼투압 모형

삼투압 모형은 기존에 발신, 수신인이 정해져 있는 화살 모형의 의사소통이 아니라 은연중에 서로 간에 정보가 스며드는 것이다. 이것이 되려면 우선 물리적으로 가까운 공간에 있어서 대화를 나누는 것이 주변에 잘 스며들어야 한다. 또한 한꺼번에 처리되는 일의 양을 줄여야한다. 따라서 지속적 흐름을 만들고 짧은 시간 내에 탑, 바텀을 오가게 해야한다.


🌩 전문가팀이 실패하는 이유

  • 전문가팀을 모아도 음의 성능을 낼 수 있다. 정보를 공유하고 협력을 잘하기 위한 도움이 필요하며 소셜 스킬이 뛰어나서 정보 공유를 잘하는 팀의 퍼포먼스가 훨씬 뛰어나다.
  • 구글이 어떠한 팀이 뛰어난지 조사해본 결과 다음 3가지 중요 포인트를 발견했다.
    1. 팀에 누가 있는지보다 팀원들이 서로 어떻게 상호작용하고 일을 어떻게 바라보는지가 훨씬 중요하다.
    2. 성공적 팀의 특징을 찾았는데 압도적으로 높은 예측력을 보인 변수는 심리적 안전감이었다.
    3. 팀 토론 등을 통해 심리적 안전감을 높일 수 있다.
  • 심리적 안전감이란 내 생각이나 의견, 질문, 걱정, 혹은 실수가 드러났을 때 처벌 받거나 놀림받지 않을 거라는 믿음이다.
  • 심리적 안전감을 통해서 팀 토론 등으로 개선시킬 수 있다. 또한 새로운 것을 도입할 때 팀 리더와 관리자가 매일매일 팀원들과 마이크로 인터랙션을 하는 형태를 보여주어야 한다. 일상에서 조금씩 신뢰를 쌓는 것이 중요하다.

🌩 쾌속 학습팀

IT 업계에 있다보면 빠르게 기술적 변화를 해야하는 경우가 많다. 그런데 학습 속도는 이 사람이 기존에 얼마나 연차가 높고 수술 성공률이 높았는지와는 상관이 없다.

빠른 학습을 하는 팀의 리더는 기술적 탁월함만을 지닌 리더가 아니라 학습 환경을 만들 수 있는 리더였다. 팀원을 선발할 때 협동적으로 하고, 선발 기준도 얼마나 협력을 잘하는지 등을 보고 뽑는다. 또한 새로운 것에 대해서 기술적 도전보다 조직적 도전으로 받아드려서 개개인이 새로운 기술을 익힌다는 것보다 함께 일하는 새로운 방법을 만든다고 생각하도록 했다.

빠르게 학습하지 못하는 팀은 냉소적이었다. 또한 냉소주의는 전염성이 강하다. 학습 속도가 빠른 팀은 이 팀원이 된 것을 자랑스럽게 생각하고 자부심을 느낀다. 학습이 빠른 팀은 심리적으로 보호가 되어 있었다. 새로운 것을 제안하고 시도하는데 열려 있다.

현실에서는 팀이 없거나 내가 팀장이 아닌 경우가 많다. 이럴 때는 나의 학습 환경을 만드는 것에서 출발해야 한다. 학습과 일을 분리하지 말고 하나로 만들어야 한다. 계획만 짜지 말고 지금 당상 시도해서 업무를 개선하는 것을 시도해 보아야한다. “작지만 유용한 프로그램들을 매일 작성할 것을 추천한다.”


🌩 프로젝트 확률론

여러 명이 자기의 작업을 가지고 진행을 할 때 특정 날짜까지 모두 완료할 수 있는(AND 조건) 확률은 매우 낮다. 애자일로 일을 진행하면 애자일은 좋은 일에 대해서는 ‘그리고’ 확률을 ‘또는’ 확률로, 나쁜 일에 대해서는 ‘또는’ 확률을 ‘그리고’ 확률로 바꾼다. 좋은 것을 알았으면 그것을 공유하여 또는 확률로 바꾸고 나쁜일에 대해서는 여러 사람이 중복 검토를 해서 구멍이 나지 않도록 그리고 확률로 바꾸는 식으로 진행을 한다.


🛋 느낀 점

  • 어떠한 조직이 성공적인 성과를 내는 데에 가장 중요한 것은 도구도, 각 사람의 역량도 아닌 ‘관리’이다. 여기서 관리라고 하는 것은 사람에게 일을 효과적으로 분배하고 동기를 고취시키는 것이다.
  • ‘객관성 자체가 주관적이다.’, ‘감정을 배제하고는 결정을 내릴 수 없다.’ 등등의 문장들이 와 닿았다. 항상 동의했던 말이다. 결국 사람이 사람과 소통하는 것이고 무엇보다 중요한 것은 사람대 사람간의 신뢰이다!!
  • 고독한 영웅적인 천재는 조직에 이득이 되지 않을 수 있다.. 💡
  • 조직원들에게 신뢰적인 안정감을 주는 것, 그래서 더 좋은 의견을 마음껏 내세울 수 있는 것이 중요하다. (다음 팀 프로젝트에서는 이 부분을 더욱 신경써보고 싶다.)
  • 왜 협력하는 것이 더 좋은가? 에 대한 질문에 그냥 좋은게 좋은거지 라고 생각했다. 하지만 여기서 확실한 이유를 말해준다. 두 명 이상의 사람이 협력하려면 서로 다른 시각을 가진 것을 설명하기 위해서 추상성을 더해 설명해야 한다. 이 과정에서 많은 해결책이 나올 수 있다 !!!