불확실성과 애자일(Uncertainty & Agile)
[!tldr] 한줄 요약 애자일은 불확실성이 클 때 학습과 협력을 통해 적응하는 방법론이며, 쿠네빈 프레임워크의 복합(Complex) 영역에서 탐색→감지→대응 방식으로 작동한다.
핵심 내용
애자일은 불확실성의 산물이다
김창준은 "함께 자라기"에서 이렇게 정의한다:
"애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물"
소프트웨어 개발은 본질적으로 불확실성이 높다. 요구사항이 바뀌고, 기술이 진화하고, 시장이 변한다. 전통적 워터폴 방법론은 "초기에 모든 것을 알 수 있다"는 가정 위에 세워졌지만, 현실은 그렇지 않다.
김창준의 핵심 통찰: 불확실성이 높을수록 학습의 빈도가 잦아야 한다. 6개월 후에 한 번 확인하는 것이 아니라, 매일, 매주 짧은 주기로 피드백을 받아야 한다.
애자일의 두 가지 구동 원리
김창준은 애자일의 핵심을 두 단어로 압축한다:
- 학습(자라기): 불확실성 속에서 지속적으로 배우고 개선하는 과정
- 협력(함께): 고객과 팀원 간의 긴밀한 상호작용
불확실성이 높을수록:
- 혼자보다 함께 — 다양한 관점이 필요하다
- 한 번에 완성보다 점진적으로 — 작게 시도하고 빠르게 배운다
- 계획 고수보다 적응 — 새로운 정보에 따라 방향을 바꾼다
이것이 애자일 선언문(Agile Manifesto)의 4가지 가치와 정확히 대응한다.
협의와 광의의 애자일
광의의 애자일 관점에서, 애자일의 원리는 소프트웨어 개발을 넘어 일상의 불확실성에도 적용된다.
쿠네빈 프레임워크(Cynefin Framework)
데이브 스노든(Dave Snowden)이 1999년에 개발한 의사결정 프레임워크로, 문제의 복잡성에 따라 5가지 영역으로 분류한다. "Cynefin"은 웨일즈어로 "서식지, 익숙한 곳"이라는 뜻이다.
| 영역 | 인과관계 | 접근법 | 소프트웨어 예시 |
|---|---|---|---|
| 명확(Clear) | 명확함 | 감지→분류→대응 (모범 사례) | 정해진 API 호출, CRUD |
| 복잡함(Complicated) | 분석 가능 (Known Unknowns) | 감지→분석→대응 (전문가 분석) | 성능 최적화, 보안 감사 |
| 복합(Complex) | 사후적으로만 파악 (Unknown Unknowns) | 탐색→감지→대응 (실험적 접근) | 신규 서비스 개발, MVP |
| 혼돈(Chaotic) | 파악 불가 | 행동→감지→대응 (즉각 대응) | 서비스 장애, 보안 침해 |
| 무질서(Disorder) | 영역 자체를 모름 | 먼저 영역 파악 | — |
애자일은 "복합(Complex)" 영역에 가장 적합하다. 이 영역에서는 작은 결정이 큰 연쇄 효과를 일으킬 수 있고, 조건과 시스템이 동적으로 변한다. 원인은 사후적으로만 이해할 수 있기 때문에, 미리 완벽한 계획을 세우는 것이 불가능하다.
복합 영역의 접근법 탐색(Probe)→감지(Sense)→대응(Respond)는 애자일의 반복(Iteration)과 정확히 일치한다:
- 탐색: 작은 실험을 시도한다 (프로토타입, MVP, 스파이크)
- 감지: 결과를 관찰한다 (사용자 피드백, 테스트 결과, 데이터)
- 대응: 관찰 결과에 따라 방향을 조정한다 (백로그 재정렬, 피벗)
반복적 실험을 통해 Complex 영역의 문제를 점차 Complicated 영역으로 이동시키는 것이 목표다.
계획 중심 vs 적응 중심
| 계획 중심 (Predictive) | 적응 중심 (Adaptive/Agile) | |
|---|---|---|
| 전제 | 초기에 요구사항을 충분히 알 수 있다 | 요구사항은 계속 변한다 |
| 불확실성 대응 | 더 상세한 사전 계획 | 짧은 주기 피드백과 조정 |
| 학습 시점 | 프로젝트 완료 후 | 진행 중 지속적 학습 |
| 변화 대응 | 변경 관리 절차 | 변화 환영 |
| 적합한 쿠네빈 영역 | 명확/복잡함 (Clear/Complicated) | 복합/혼돈 (Complex/Chaotic) |
계획 중심 접근이 나쁜 것이 아니다. 문제의 영역에 맞는 접근법을 선택하는 것이 핵심이다. 명확한 문제에 애자일을 적용하면 오히려 비효율적이고, 복합적인 문제에 계획 중심을 적용하면 현실과 괴리된다.
애자일 도입의 역설 — 반애자일적 애자일
김창준이 지적하는 가장 큰 폐단: "애자일을 반애자일적으로 도입하는 것"
[!warning] 반애자일적 애자일의 예시
- "3개월 후 애자일 전환을 완료하겠다" — 불확실성을 다루는 방법론을 확실성 위에서 운영
- "이 애자일 코치의 방법을 그대로 따르면 된다" — 우리 팀의 맥락을 무시
- "다른 회사에서 성공한 프랙티스를 그대로 복사" — Complex 영역에서는 다른 곳의 성공이 우리에게 통한다는 보장이 없음
- Jira 보드를 세팅하면 애자일이라고 생각하는 것 — 도구보다 상호작용이 우선
- 데일리 스탠드업을 "상태 보고 회의"로 운영 — 협력이 아닌 관리 도구로 전락
- 회고를 하지만 바뀌는 게 없는 것 — 피드백 루프가 끊긴 상태
- 매 스프린트 같은 방식으로만 일하는 것 — 학습 없는 반복은 워터폴을 2주 단위로 쪼갠 것에 불과
애자일 도입 자체를 애자일하게 해야 한다 — 작게 시도하고, 피드백을 받고, 조정하는 방식으로.
예시
[!example] 쿠네빈으로 보는 스타트업의 여정
- 복합(Complex): 시장에 새 서비스를 출시 — 고객이 원하는 것을 모른다. MVP를 만들고 사용자 반응을 관찰한다 (탐색→감지→대응)
- 복잡함(Complicated): 사용자 패턴이 보이기 시작 — 전문가 분석으로 아키텍처를 설계하고 최적화한다 (감지→분석→대응)
- 명확(Clear): 안정화된 기능 — 정해진 절차와 모범 사례로 운영한다 (감지→분류→대응)
서비스가 성장하면서 문제의 영역이 이동하고, 그에 맞춰 접근법도 달라져야 한다.
[!example] 반애자일 vs 진짜 애자일 도입 반애자일적 도입: 경영진이 "내달부터 전사 스크럼 적용" 공지 → 교육 일괄 진행 → 3개월 후 "왜 안 되지?"
애자일적 도입: 한 팀에서 2주간 실험 → 회고로 맞지 않는 부분 조정 → 다음 팀에 적용할 때 학습 반영 → 점진적 확산
참고 자료
- 함께 자라기(애자일로 가는 길) 후기 및 정리 - zzsza
- 함께 자라기: 애자일로 가는 길 - Outsider's Dev Story
- Uncertainty, Agile and the Cynefin Framework - Palantir
- Cynefin framework - Wikipedia
- 김창준, 함께 자라기: 애자일로 가는 길 (인사이트, 2018)
관련 노트
- 애자일 선언문(Agile Manifesto) - 불확실성 대응의 가치와 원칙을 선언
- 피드백 루프(Feedback Loop) - 불확실성이 높을수록 짧은 피드백 주기가 필요
- 의도적 수련(Deliberate Practice) - 불확실성 속 학습의 구체적 방법
- 몰입(Flow) - 불확실성으로 인한 불안을 난이도 조절로 극복
- 심리적 안전감(Psychological Safety) - 실험과 실패를 허용하는 환경이 적응의 전제
- 회고(Retrospective) - 탐색→감지→대응 사이클의 팀 차원 실천
- 스크럼(Scrum) - 복합 영역에서 작동하는 적응형 프레임워크
- 함께 자라기(Growing Together) - 애자일의 광의적 정의: 학습과 협력의 삶