불확실성과 애자일(Uncertainty & Agile)

[!tldr] 한줄 요약 애자일은 불확실성이 클 때 학습과 협력을 통해 적응하는 방법론이며, 쿠네빈 프레임워크의 복합(Complex) 영역에서 탐색→감지→대응 방식으로 작동한다.

핵심 내용

애자일은 불확실성의 산물이다

김창준은 "함께 자라기"에서 이렇게 정의한다:

"애자일은 불확실성이 클 때 우리가 어떻게 해야 하는지를 고민한 결과물"

소프트웨어 개발은 본질적으로 불확실성이 높다. 요구사항이 바뀌고, 기술이 진화하고, 시장이 변한다. 전통적 워터폴 방법론은 "초기에 모든 것을 알 수 있다"는 가정 위에 세워졌지만, 현실은 그렇지 않다.

김창준의 핵심 통찰: 불확실성이 높을수록 학습의 빈도가 잦아야 한다. 6개월 후에 한 번 확인하는 것이 아니라, 매일, 매주 짧은 주기로 피드백을 받아야 한다.

애자일의 두 가지 구동 원리

김창준은 애자일의 핵심을 두 단어로 압축한다:

불확실성이 높을수록:

  1. 혼자보다 함께 — 다양한 관점이 필요하다
  2. 한 번에 완성보다 점진적으로 — 작게 시도하고 빠르게 배운다
  3. 계획 고수보다 적응 — 새로운 정보에 따라 방향을 바꾼다

이것이 애자일 선언문(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)과 정확히 일치한다:

반복적 실험을 통해 Complex 영역의 문제를 점차 Complicated 영역으로 이동시키는 것이 목표다.

계획 중심 vs 적응 중심

계획 중심 (Predictive)적응 중심 (Adaptive/Agile)
전제초기에 요구사항을 충분히 알 수 있다요구사항은 계속 변한다
불확실성 대응더 상세한 사전 계획짧은 주기 피드백과 조정
학습 시점프로젝트 완료 후진행 중 지속적 학습
변화 대응변경 관리 절차변화 환영
적합한 쿠네빈 영역명확/복잡함 (Clear/Complicated)복합/혼돈 (Complex/Chaotic)

계획 중심 접근이 나쁜 것이 아니다. 문제의 영역에 맞는 접근법을 선택하는 것이 핵심이다. 명확한 문제에 애자일을 적용하면 오히려 비효율적이고, 복합적인 문제에 계획 중심을 적용하면 현실과 괴리된다.

애자일 도입의 역설 — 반애자일적 애자일

김창준이 지적하는 가장 큰 폐단: "애자일을 반애자일적으로 도입하는 것"

[!warning] 반애자일적 애자일의 예시

  • "3개월 후 애자일 전환을 완료하겠다" — 불확실성을 다루는 방법론을 확실성 위에서 운영
  • "이 애자일 코치의 방법을 그대로 따르면 된다" — 우리 팀의 맥락을 무시
  • "다른 회사에서 성공한 프랙티스를 그대로 복사" — Complex 영역에서는 다른 곳의 성공이 우리에게 통한다는 보장이 없음
  • Jira 보드를 세팅하면 애자일이라고 생각하는 것 — 도구보다 상호작용이 우선
  • 데일리 스탠드업을 "상태 보고 회의"로 운영 — 협력이 아닌 관리 도구로 전락
  • 회고를 하지만 바뀌는 게 없는 것피드백 루프가 끊긴 상태
  • 매 스프린트 같은 방식으로만 일하는 것 — 학습 없는 반복은 워터폴을 2주 단위로 쪼갠 것에 불과

애자일 도입 자체를 애자일하게 해야 한다 — 작게 시도하고, 피드백을 받고, 조정하는 방식으로.

예시

[!example] 쿠네빈으로 보는 스타트업의 여정

  1. 복합(Complex): 시장에 새 서비스를 출시 — 고객이 원하는 것을 모른다. MVP를 만들고 사용자 반응을 관찰한다 (탐색→감지→대응)
  2. 복잡함(Complicated): 사용자 패턴이 보이기 시작 — 전문가 분석으로 아키텍처를 설계하고 최적화한다 (감지→분석→대응)
  3. 명확(Clear): 안정화된 기능 — 정해진 절차와 모범 사례로 운영한다 (감지→분류→대응)

서비스가 성장하면서 문제의 영역이 이동하고, 그에 맞춰 접근법도 달라져야 한다.

[!example] 반애자일 vs 진짜 애자일 도입 반애자일적 도입: 경영진이 "내달부터 전사 스크럼 적용" 공지 → 교육 일괄 진행 → 3개월 후 "왜 안 되지?"

애자일적 도입: 한 팀에서 2주간 실험 → 회고로 맞지 않는 부분 조정 → 다음 팀에 적용할 때 학습 반영 → 점진적 확산

참고 자료

관련 노트