저는 제 아이디어를 최대한 평이하고 명확하게 설명하는 Canon 시리즈를 시작했습니다 — 비유도, 설득도 없이, 오직 사실만. Canon TDD로 시작했고, 이어서 Canon JUnit, Canon XP, Canon Make-The-Change-Easy로 계속할 예정입니다.
무언가의 성장은 로지스틱 곡선(logistic curve)을 그립니다. 소프트웨어 제품을 예로 들면, 곡선 전체에 걸쳐 우리는 변경 사항을 출시하고, 고객을 유치하고, 그 고객에게 요금을 청구합니다. 하지만 이 곡선의 매끄러움은 위험한 착각입니다. 곡선의 시작, 중간, 마지막 구간은 겉보기에 비슷해 보여도 완전히 다른 접근법을 요구합니다.
창발(Emergence)
Canon 시리즈는 이론 없이 실질적인 내용만 다루겠다고 약속했습니다. 그런데 3X(Explore/Expand/Extract) 이야기를 설명하려면 아주 작은 이론 하나가 필수적입니다. 이 이론은 앞으로 설명에 쓸 용어를 소개해줍니다.
그 S자 곡선은 하나의 공식으로 표현됩니다. 하지만 이 공식은 아직 어린 것을 성장시키려 할 때는 그다지 도움이 되지 않습니다. 대신 우리는 S자 곡선을 두 개의 피드백 루프 사이의 줄다리기(비유라 죄송합니다만)로 볼 수 있습니다.
S자 곡선을 만들려면, 먼저 왼쪽의 강화 루프(reinforcing loop)가 작동하게 해야 합니다. 여러분의 아이디어(제품/회사/운동, 무엇이든)가 성장할수록 더 성장하기 쉬워집니다. 그러다 나중에는 오른쪽의 억제 루프(inhibiting loop)가 넘겨받아 성장을 늦추고 결국 상한선을 만듭니다.
성공한 아이디어는:
- Explore(탐색): 새로운 성장 루프를 찾습니다(반드시 새로워야 합니다 — 그렇지 않으면 이미 누군가 그 루프를 돌리고 있을 테니까요).
- Expand(확장): 아이디어가 규모를 키울 만큼 충분히 오래 그 루프를 작동시키면서, 그 과정에서 치명적일 수 있는 억제 루프들을 모두 피해갑니다.
- Extract(추출): 궁극의 억제 루프가 작동하기 시작하면서 성장이 마무리됩니다.
- (보너스) 첫 번째 곡선에서 얻은 자원을 활용해, 자신만의 성장 루프를 가진 새로운 곡선을 찾는 탐색을 다시 시작합니다.
3X
도식으로 표현하면 이 진행은 이렇게 보입니다.
3X(Explore/Expand/Extract)의 핵심 주장은, 이 세 단계가 서로 아무리 비슷해 보여도 각각 다음 요소들에 대해 완전히 다른 접근법을 요구한다는 것입니다:
- 재무(Finance)
- 팀 규모(Team size)
- 프로젝트 관리(Project management)
- 인력(Personnel)
- 기술(Technology)
- 리스크 관리(Risk management)
- 실행(Implementation)
- 마케팅(Marketing)
- 세일즈(Sales)
한 단계에서 통했던 접근법을 다른 단계의 아이디어에 그대로 적용하면 아이디어가 죽습니다.
Explore(탐색)
- 리스크: 아무도 신경 쓰지 않습니다. 연료 부족으로 아이디어가 죽습니다.
- 목표: 성장 루프를 찾는 것. 새로운 루프는 예측할 수 없으므로 실험을 통해 찾아야 합니다.
- 전략: 빠른 실험, 최대한의 창의성, 개념적 조합(conceptual blending).
- 전술: 아주 작은 팀, 의존성 없음, 실패는 빠르게 버리기.
- 종료 조건: 하나의 실험이 다른 것들보다 확연히 잘 작동할 때.
Expand(확장)
- 리스크: 규모를 키울 수 없습니다.
- 목표: 맹렬히 확장하면서 치명적인 장애물을 피하는 것.
- 전략: 다음에 새로 떠오르는 성장 병목에 집중.
- 전술: 성장 속도를 조절하고, 핵심이 아닌 기능은 버리고, 지금 당장은 충분한 수준으로만 확장.
- 종료 조건: 성장의 원인과 결과가 예측 가능해질 때.
Extract(추출)
- 리스크: 지속할 수 없습니다.
- 목표: 이윤이 나는 성장.
- 전략: 성장하는 동안 안전하게 최적화.
- 전술: 작고 안전한 실험, 성공한 것은 확대 적용, 비용 최적화.
- 종료 조건: 더 이상 투자 대비 수익이 나지 않을 때.
모든 것을 종합하면
3X의 까다로운 점은, 서로 다른 단계에 있는 프로젝트들을 각 단계에 맞는 스타일로 관리하는 것입니다. 청구서를 지불하고 여러 Explore 프로젝트들의 포트폴리오에 자금을 대주는 Extract 제품들이 있을 겁니다. 어떤 프로젝트가 Expand 단계에 진입하면, 수익성 있는 Extract 활동보다도 우선순위를 두고 다뤄야 합니다. (말은 쉽지만 실제로 실행하기는 거의 불가능해 보입니다.)
대부분의 팀은 전략 문제를 겪는 게 아닙니다. 적응(adaptation) 문제를 겪고 있습니다.
여러분의 계획은 애초에 현실과 부딪히고도 살아남을 수 없었습니다. 문제는 그런 순간이 왔을 때 여러분의 조직이 구부러지느냐, 부러지느냐입니다.
저는 팀들이 구부러지도록 돕습니다. Adapt to Thrive.
지금 몇 건의 맞춤형 강연과 자문 계약을 예약받고 있습니다. 저는 여러분의 구성원들을 인터뷰하고, 실제 소프트웨어 플로우를 측정한 뒤, 진실과 함께 무엇을 해야 할지를 전달합니다.
여러분의 팀에 맞는지 궁금하다면, 팀에 대해 알려주세요.
핵심 요약 (20줄)
- Kent Beck은 비유나 설득 없이 사실만으로 아이디어를 설명하는 Canon 시리즈를 이어가며, 이번 편은 Canon 3X(Explore/Expand/Extract)를 다룬다.
- 소프트웨어 제품을 포함한 모든 것의 성장은 로지스틱(S자) 곡선을 그리지만, 곡선의 매끄러움은 위험한 착각이라고 지적한다.
- S자 곡선의 시작·중간·끝 구간은 겉보기엔 비슷해도 서로 완전히 다른 접근법을 요구한다.
- S자 곡선은 강화 루프(reinforcing loop)와 억제 루프(inhibiting loop) 두 피드백 루프의 줄다리기로 설명할 수 있다.
- 먼저 강화 루프가 작동해 아이디어가 성장할수록 더 성장하기 쉬워지고, 이후 억제 루프가 넘겨받아 성장을 늦추고 상한선을 만든다.
- 성공한 아이디어의 3단계는 Explore(새 성장 루프 탐색), Expand(치명적 장애물을 피하며 확장), Extract(억제 루프가 작동하며 성장을 마무리)로 구성된다.
- 보너스 4단계로, 첫 곡선에서 얻은 자원을 활용해 새로운 성장 루프를 가진 다음 곡선을 다시 탐색하는 단계가 있다.
- 3X의 핵심 주장은 재무·팀 규모·프로젝트 관리·인력·기술·리스크 관리·실행·마케팅·세일즈 등 모든 영역에서 각 단계마다 다른 접근이 필요하다는 것이다.
- 한 단계에서 통했던 접근법을 다른 단계의 아이디어에 그대로 적용하면 아이디어가 죽는다고 경고한다.
- Explore 단계의 리스크는 "아무도 신경 쓰지 않아 연료 부족으로 죽는 것"이며, 목표는 실험을 통해 새 성장 루프를 찾는 것이다.
- Explore의 전략은 빠른 실험과 최대한의 창의성이며, 전술은 아주 작은 팀으로 의존성 없이 실패를 빠르게 버리는 것이다.
- Expand 단계의 리스크는 "규모를 키울 수 없는 것"이며, 목표는 치명적 장애물을 피하며 맹렬히 확장하는 것이다.
- Expand의 전략은 새로 떠오르는 성장 병목에 집중하는 것이고, 전술은 성장 속도 조절과 핵심 외 기능 제거다.
- Extract 단계의 리스크는 "지속할 수 없는 것"이며, 목표는 이윤을 남기며 성장하는 것이고 전략은 안전한 최적화다.
- Extract의 전술은 작고 안전한 실험, 성공 사례 확대, 비용 최적화이며, 종료 조건은 더 이상 투자 대비 수익이 나지 않을 때다.
- 3X를 실제로 다루기 어려운 이유는 서로 다른 단계에 있는 프로젝트들을 동시에 각 단계에 맞는 스타일로 관리해야 하기 때문이다.
- 수익성 있는 Extract 제품이 여러 Explore 프로젝트 포트폴리오의 자금을 대는 구조가 일반적이며, Expand 단계 프로젝트는 수익성 있는 Extract 활동보다도 우선해야 한다.
- Kent Beck은 대부분의 팀이 겪는 문제는 전략 문제가 아니라 적응(adaptation) 문제라고 진단한다.
- 어떤 계획도 현실과 부딪히고 원형 그대로 살아남을 수 없으며, 관건은 조직이 그 순간에 구부러지는지 부러지는지다.
- Kent Beck은 팀이 현실에 맞춰 "구부러지도록" 돕는 자문·강연 서비스를 제공하며, 구성원 인터뷰와 실제 소프트웨어 플로우 측정을 기반으로 진단을 내린다고 소개한다.