"애자일 정말 가능한 건가요?"

가끔 저를 만나 애자일 도입의 어려움을 토로하는 분들이 있습니다. 사정을 들어보면 쉽지가 않습니다. 조직원들간의 신뢰에는 금이 가 있고, 경영진은 단박에 성과를 내기를 기대하고, 고객은 프로젝트의 성공에 관심이 없는 듯 하고...

그 팀이 애자일을 도입하려 하건 뭐를 하건 하여튼 고전하는 팀들이 있습니다. 그런 팀들을 보면 우연치 않게도 악조건이 겹쳐있는 경우가 많습니다. 이런 악조건 중 흔히 볼 수 있는 것이 "팀 크기가 큰 것"입니다.

"애자일이 효과적이려면 몇 명의 팀원이 적당할까요?"

많은 사람들이 자주 묻는 질문입니다. 좀 더 일반화된 질문도 가능합니다. "몇 명으로 된 팀이 가장 효과적인가요?"

팀 역학의 최고 권위자 중 하나인 리차드 핵맨(Richard Hackman 안타깝게도 얼마전 별세하셨습니다)은 자신의 책에서 최적 지점이 약 5명 근방으로 말하고 있습니다. 물론 정확한 숫자에 대해서는 학계에 설이 많지만 여러 메타분석도 그렇고 그 숫자가 생각만큼 크지 않다(약 10 이하)는 데에는 이견을 달지 않습니다.

팀 크기와 생산성을 그래프로 그리면 뒤집어진 U자형 그래프가 나옵니다. 사람을 추가할수록 생산성이 증가하다가 어느 지점 이후로는 오히려 줄어들게 된다는 것이죠. 소프트웨어 공학의 바이블 중 하나인 "신화적 인월"(The Mythical Man-Month)의 저자 프레드 브룩스는 그래서 다음과 같은 법칙을 이야기하고 있죠.

늦은 소프트웨어 프로젝트에 인력을 추가하면 더 늦어진다
소프트웨어 개발을 업으로 하는 사람이라면 모두 이 법칙에 고개를 끄덕일 수 있습니다. 하지만 그렇다고 모든 팀이 다 똑같다고 말할 수는 없을 겁니다. 즉, 똑같이 10명인 팀도 속을 들여다 보면 제 각각인 경우가 더 흔하겠죠.

그러면 우리는 왜 팀 크기가 비슷한데 왜 이렇게 생산성이 떨어지는가(혹은 높은가) 하는 질문을 해봐야 합니다.

저는 오늘 팀의 협력 근육에 비해 팀 크기가 큰 경우를 이야기 해보려고 합니다. 저는 팀에 협력 근육이라는 게 존재한다고 생각합니다. 쉽게 말해 팀의 협력 역량이라고 할 수 있겠죠. 얼마나 협력을 잘 할 수 있냐 하는 겁니다. 이 변수에 따라 팀이 취할 수 있는 최대/최적 크기가 바뀔 수 있고, 곧 생산성도 바뀔 수 있다고 봅니다.

이 면에서 본다면, 앞서의 "애자일이 효과적이려면 몇 명의 팀원이 적당할까요?" 같은 질문에, 예컨대, "그 팀의 협력 근육에 따라 다르겠죠"로 답할 수 있습니다. 통상 사람이 많을수록 더 많은 협력 근육이 필요합니다 -- 그만큼 협력이 더 체화되어 있어야 합니다.

이 부분을 그래프의 링크 숫자를 예로 들어 설명해 볼까요.

짐 코플리엔(Jim Coplien)은 자신의 연구(Organizational Patterns of Agile Software Development)에서 생산성이 높은 소프트웨어 개발 팀은 역할의 숫자에 비해 소통 강도(Communcation Intensity)가 높은 팀이라고 분석하고 있습니다. 코플리엔은 이 소통 강도를 포화 수준(Saturation Level)으로 표현하기도 하는데,  이론적으로 가능한 소통의 링크 중 몇 퍼센트가 실제 연결되어 있냐를 나타냅니다. 사회연결망 분석에서는 그래프 밀도라고 부르기도 하죠. 예컨대 팀이 다섯 사람이라면 이론적인 연결 링크의 숫자는 C(5,2)가 되어 10개가 됩니다. 포화정도가 60%라면 그 중 6개의 링크만 연결된 것이죠.

사람 숫자가 늘어남에 따라 이론적인 최대 연결 링크 숫자는 기하급수적으로 증가합니다. 예컨대 팀원이 20명이라면 총 190개의 링크가 존재 가능하죠. 그만큼 비슷한 수준의 소통 강도를 맞추기가 힘듭니다.

이런 이유로 더 큰 팀일수록 생산성을 제대로 내기가 쉽지 않습니다. (관련해서는 "작은 팀이 강하다"를 읽어보시길 바랍니다)

협력하는 방법을 배워야 합니다. 그런데 명시적으로 이런 걸 훈련할 기회가 별로 없습니다. 그래서 막상 협력하라고 구호를 외쳐봐야 별 차이가 없습니다. 늘 하던 방식대로 일하는 겁니다.

그러면 어떻게 해야 협력하는 방법을 배울 수 있을까요? 이 질문은 다음 질문으로 바꿔 묻는 것이 더 유용합니다. 어떤 상황 하에서 협력 근육을 키우기 좋을까?

이것에 대한 답은 학습이론에서 쉽게 찾을 수 있습니다. 상호작용, 사회적 학습, 피드백, 반복연습기회 등이 학습이 풍요로워지는 환경입니다.

다니엘 코일은 자신의 책 The Talent Code에서 브라질이 축구를 잘하는 이유 중 하나로 풋살(futsal)을 꼽습니다.  풋살이 축구 기술 훈련에 좋은 이유는 여러가지인데, 특히 팀 크기도 작고 경기장도 작고 등등의 이유로 개인들이 공을 가질 기회가 일반 축구 대비 600% 높다는 연구를 언급하고 있습니다. 풋살은 훨씬 더 피드백이 자주 주어지고 상호작용과 반복연습기회가 많습니다. 좀 극단적으로, 자유투를 하루에 10번 던지는 사람과 1번 던지는 사람을 생각해 보세요.

그러면 봅시다. 인원수 많을 때 적을 때 언제 협력 근육을 키우기가 좋을까요? 적을 때입니다. 왜냐면 반대로 많으면 상호작용(interaction)과 구체적 피드백이 줄어들기 때문입니다. 그래서 큰 팀으로 시작하는 조직은 학습에 불리한 조건에서 시작하는 셈입니다. 가장 학습을 필요로 하는 조직이 이상하게 가장 학습이 불리한 상황에서 시작을 합니다. 그래서 여러번 반복해도 팀의 실력이 늘지 않고 그 자리인 겁니다.

그렇다면 팀 크기 문제에 해법은 무엇일까요? 애자일에서 소프트웨어 개발을 하는 방식과 비슷합니다.

"팀의 크기를 작게 시작해서 협력 역량과 함께 점점 키워나가라."

--김창준