칸반 방법: 연속 흐름 및 WIP 제한
칸반 Agile 방식을 기반으로 합니다. 지속적인 흐름 일의, 시간 제한이 있는 반복 없이. Toyota 생산 시스템에서 시작된 Kanban은 다음에 중점을 둡니다. 심상, WIP 제한 (작업 진행 중) e 흐름 최적화.
🎯 무엇을 배울 것인가
- 칸반의 4가지 기본 원칙
- Kanban의 6가지 사례(시각화, WIP 제한, 흐름 관리)
- 효과적인 Kanban 보드를 만들고 사용하는 방법
- WIP 한도: 한도 및 결정 방법
- 흐름 지표: 리드 타임, 주기 시간, 처리량
- 병목 현상을 식별하기 위한 누적 흐름 다이어그램(CFD)
- 칸반(Kanban)과 스크럼(Scrum): 차이점과 사용 시기
칸반의 유래
Kanban(看板, 문자 그대로 일본어로 "카드")은 1940년대에 탄생했습니다. 토요타 생산관리 시스템으로 적시(JIT). 목표: 필요할 때 필요한 것만 생산하여 폐기물과 재고를 줄입니다.
🏭 제조에서 소프트웨어까지
2004년에는 데이비드 J. 앤더슨 소프트웨어 개발에 Kanban을 적용하고, WIP 제한, 흐름 측정 기준 및 지속적인 진화 개선과 같은 개념을 소개합니다.
- 2004년: Anderson은 Microsoft에서 Kanban을 적용합니다.
- 2007년: Corbis에 문서화된 최초의 칸반 시스템
- 2010년: 도서 "Kanban: 기술 비즈니스를 위한 성공적인 진화 변화"
- 오늘: Agile 및 DevOps에 널리 채택된 Kanban
칸반의 4가지 기본 원칙
🔵 1. START WITH WHAT YOU DO NOW
└─ Non serve rivoluzione: inizia dal processo attuale
🔵 2. AGREE TO PURSUE INCREMENTAL, EVOLUTIONARY CHANGE
└─ Cambiamenti piccoli e continui (no big bang)
🔵 3. RESPECT CURRENT ROLES, RESPONSIBILITIES & TITLES
└─ Nessun cambio organizzativo drastico richiesto
🔵 4. ENCOURAGE ACTS OF LEADERSHIP AT ALL LEVELS
└─ Chiunque può proporre miglioramenti
🌱 진화론적 접근
특정 역할과 고정된 의식이 필요한 스크럼과 달리 칸반은 진화론적인: 기존 프로세스 위에 적용되어 점진적으로 개선됩니다.
예:
- Team에서는 이미 임시 프로세스를 사용하고 있나요? → 전류 흐름 지도, 선상 보기
- 2주 후: "진행 중"에 WIP 제한 도입(예: 최대 5개 작업)
- 1개월 후: "코드 검토" 열을 추가하여 해당 단계를 명시적으로 만듭니다.
- 지속적: 리드 타임 측정, 병목 현상 식별, 적응
칸반의 6가지 관행
1. 워크플로 시각화(Visualize)
작업과 흐름을 만드세요 명백하고 눈에 보이는 Kanban 보드를 통해 모든 사람에게 제공됩니다.
KANBAN BOARD - Software Development
┌────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐
│ BACKLOG │ TO DO │IN PROGRESS │CODE REVIEW │ TESTING │ DONE │
│ │ │ (WIP: 5) │ (WIP: 3) │ (WIP: 4) │ │
├────────────┼────────────┼────────────┼────────────┼────────────┼────────────┤
│ │ │ │ │ │ │
│ [Story 50] │ [Story 12] │ [Story 8] │ [Story 5] │ [Story 3] │ [Story 1] │
│ [Story 51] │ [Story 13] │ [Story 9] │ [Story 6] │ [Story 4] │ [Story 2] │
│ [Story 52] │ [Story 14] │ [Story 10] │ [Story 7] │ │ │
│ ... │ │ │ │ │ │
│ │ │ │ │ │ │
│ 100+ items │ 10 items │ 3 items │ 3 items │ 2 items │ 25 items │
└────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘
🔴 WIP LIMIT VIOLATED: "Code Review" ha 3/3 items → BLOCCO!
⚠️ Team deve completare review prima di pullare nuovo lavoro
✅ 좋은 보드
- 기둥은 실제 흐름을 반영합니다.
- WIP 한도 표시
- 필수 정보가 담긴 카드
- 강조된 차단기(🚫)
- 우선순위/유형별 수영레인
- 실시간으로 업데이트됨
❌ 무효 이사회
- 일반 열(할 일/완료)
- WIP 제한 없음
- 세부정보가 없는 카드
- 숨겨진 차단제
- 현실을 반영하지 않네요
- 업데이트되지 않음
2. 진행 중인 작업 제한(WIP 제한)
칸반의 가장 중요한 개념은 다음과 같습니다. 제한 할 수 있는 작업의 수 각 열에서 동시에 "진행 중"입니다.
🎯 WIP를 제한하는 이유는 무엇인가요?
- 집중하다: 멀티 태스킹 감소 = 집중력 향상
- 품질: 작업을 시작하고 포기하는 것보다 완료하는 것이 더 좋습니다
- 처리량: 역설적이게도 WIP를 제한하면 생산량이 증가합니다(리틀의 법칙).
- 병목 현상 가시성: 열이 가득 차면 문제가 드러납니다.
- 협동: 팀은 전체 열을 "비우는" 데 도움을 줍니다(군집).
📊 METODI PER CALCOLARE WIP LIMIT
🔵 METODO 1: Number of People
WIP limit = Numero di persone × 1.5
Es: Team di 5 persone
- In Progress WIP = 5 × 1.5 = 7-8 task max
🔵 METODO 2: Start Conservative
WIP limit = Numero di persone ÷ 2
Es: Team di 6 persone
- In Progress WIP = 6 ÷ 2 = 3 task (molto stretto!)
- Adatta se team si blocca troppo spesso
🔵 METODO 3: Current State + Reduce
1. Conta quanti task sono tipicamente "in progress"
2. Riduci del 20-30%
3. Monitora e adatta
Es: Mediamente 12 task in progress
- Imposta WIP limit = 8-10
- Osserva effetti su lead time
🔴 REGOLA D'ORO: Start low, adjust up
È meglio iniziare con WIP limit troppo basso e alzarlo
che viceversa (limiti alti = status quo)
⚠️ WIP 한도 위반: 어떻게 해야 합니까?
대본: "코드 검토" 열에는 WIP 제한이 3이고 꽉 찼습니다.
❌ 하지 마세요: 한도를 무시하고 작업을 더 추가하세요
✅ 이렇게 하세요:
- 라인을 중지하십시오: 해당 열에 새 작업을 가져오지 마세요.
- 떼: 팀이 협력하여 열을 비웁니다(모두가 코드 검토를 수행함).
- 병목 현상 식별: 왜 그 열이 채워지나요? (예: 단일 코드 검토자?)
- 근본 원인 해결: 시정 조치(예: 더 많은 리뷰어 교육)
3. 흐름 관리
모니터링 및 최적화 흐름 시스템을 통해 업무를 수행합니다. 목적: 부드럽고 예측 가능한 흐름 축적이나 막힘 없이.
🌊 좋은 흐름의 특징
- 부드러운 (부드러운): 업무는 분주하게 진행되지 않고 꾸준히 진행됩니다.
- 예측 가능(예측 가능): 일관된 리드타임
- 빠른 (빠른): 요청부터 배송까지 시간을 최소화하세요
- 차단제 없음: 장애물이 빠르게 제거됨
🚨 RED FLAGS
❌ ACCUMULO (Queue Buildup)
Colonna sempre piena, task si accumulano
└─ Bottleneck! Aumenta capacità o riduci WIP a monte
❌ BLOCKERS FREQUENTI
Task bloccati (🚫) per giorni
└─ Dipendenze non gestite, decisioni lente
❌ LEAD TIME CRESCENTE
Tempo medio per completare task aumenta nel tempo
└─ Sistema sta rallentando, technical debt?
❌ LAVORO "SALTATO"
Task saltano colonne (es: To Do → Done senza Code Review)
└─ Board non riflette processo reale
✅ GOOD FLOW INDICATORS
✅ Work moves steadily left-to-right
✅ Lead time stabile o in diminuzione
✅ WIP limits rispettati
✅ Throughput consistente (es: 10 task/settimana)
4. 정책을 명시적으로 만드세요
명확하게 정의 규칙 작업이 한 곳에서 이동할 수 있는 경우 열을 다른 열로 변환합니다(각 단계에 대한 완료 정의).
📋 PULL POLICIES (Quando posso muovere una card?)
To Do → In Progress:
✅ Acceptance criteria chiari
✅ Dependencies risolte
✅ Assegnata a developer
✅ WIP limit "In Progress" non raggiunto
In Progress → Code Review:
✅ Codice compilato senza errori
✅ Unit tests scritti e passati
✅ Self-review completato
✅ WIP limit "Code Review" non raggiunto
Code Review → Testing:
✅ Almeno 2 reviewers hanno approvato
✅ Tutti i commenti risolti
✅ Merged su branch principale
✅ WIP limit "Testing" non raggiunto
Testing → Done:
✅ Test plan eseguito
✅ Nessun bug P0/P1 aperto
✅ Product Owner ha accettato
✅ Deployato in staging
5. 피드백 루프
시스템 검사 및 조정을 위해 정기적인 피드백 루프를 구현합니다.
🔄 칸반 회의
- 일일 스탠드업: 15분, 보드를 오른쪽에서 왼쪽으로 걷습니다.
- 채움: 보드에 작업을 추가하는 시기(예: 매주)
- 배송 계획: 배송 약속(예: 격주)
- 서비스 제공 검토: 측정항목 및 성능(월별)
- 운영 검토: 시스템 개선(분기별)
📊 검토할 측정항목
- 리드타임 추세
- 컬럼당 사이클 시간
- 처리량(작업/주)
- 흐름 효율성
- 차단제 빈도
- WIP 배포
6. 공동으로 개선
과학적 모델과 실험 방법을 사용하여 카이젠 (지속적인 개선).
🔬 과학적 접근
- 가설: "WIP 한도를 8에서 5로 줄이면 리드타임이 줄어들 것입니다."
- 실험: 2주 동안 변화를 시도해보세요
- 측정하다: 리드타임 전후 비교
- 그는 다음과 같이 결정합니다. 개선되면 유지하고, 그렇지 않으면 롤백
Kanban 지표: 리드 타임, 주기 시간, 처리량
1. 리드타임
정의: 작업이 시스템에 입력된 시점부터 완료될 때까지의 총 시간입니다.
📅 STORY #123: "Add forgot password feature"
Timeline:
├─ Day 1: Task aggiunto al Backlog
├─ Day 3: Task pullato in "To Do"
├─ Day 5: Development inizia ("In Progress")
├─ Day 8: Code review ("Code Review")
├─ Day 9: Testing ("Testing")
└─ Day 10: Done
📊 LEAD TIME = 10 giorni (da entry a done)
📊 CYCLE TIME = 5 giorni (da "In Progress" a "Done")
Lead Time include il tempo di attesa in backlog/queue
Cycle Time è solo il tempo di lavoro attivo
📈 리드 타임
- 고객 대면 시간
- 요청부터 배송까지
- 대기 대기열 포함
- 외부 약속 측정항목
- 목표: 지속적으로 줄이기
⏱️ 사이클 시간
- 실제 근무시간
- 처음부터 끝까지
- 대기/큐 제외
- 팀 효율성 지표
- 목표: 낮고 안정적으로 유지
2. 처리량
정의: 단위 시간당 완료된 작업 수(예: 작업/주)입니다.
Tasks Completed per Week
↑
14 │ ●
12 │ ● ●
10 │ ● ● ●
8 │ ● ●
6 │
4 │
2 │
0 └───────────────────────────────→ Weeks
W1 W2 W3 W4 W5 W6 W7
Average Throughput: 10 task/week
Min: 8, Max: 14
📊 INSIGHTS:
- Team completa mediamente 10 task/settimana
- Usare per forecast: "80% confidence: 8-12 task/settimana"
- Variabilità relativamente bassa (good!)
3. 누적 흐름도(CFD)
Il CFD Kanban에서 가장 강력한 차트입니다. 작업의 누적을 보여줍니다. 시간이 지남에 따라 각 열에
Cumulative Tasks
↑
60 │ ┌─ DONE
│ ┌────┘
50 │ ┌────┘ ├─ TESTING
│ ┌────┘ ├─ CODE REVIEW
40 │ ┌───┘ ├─ IN PROGRESS
│ │ ├─ TO DO
30 │ │ └─ BACKLOG
│ │
20 │ │
│ │
10 │ │
│ │
0 └─┴────────────────────────────────→ Time
W1 W2 W3 W4 W5 W6
✅ HEALTHY CFD:
- Bande parallele (flusso costante)
- Larghezza banda = WIP in quella fase
- Pendenza = velocità di completamento
🚨 PROBLEMI VISIBILI:
- Banda "TO DO" si allarga → Accumulo! Bottleneck downstream
- Banda "CODE REVIEW" molto larga → WIP limit troppo alto o processo lento
- Bande irregolari → Flusso instabile
칸반과 스크럼: 상세 비교
| 나는 기다린다 | 칸반 | 스크럼 |
|---|---|---|
| 반복 | 지속적인 흐름, 스프린트 없음 | 스프린트 기간 제한(1~4주) |
| 역할 | 정해진 역할 없음 | PO, 스크럼 마스터, 개발팀 |
| 회의 | 선택사항, 필요한 경우 | 5개의 의무적인 행사 |
| 약속 | 범위에 대한 약속 없음 | 스프린트 약속 |
| 우선 사항 | 지속적으로 바뀔 수 있어요 | 스프린트 중에 수정됨 |
| WIP 한도 | 명시적 및 필수 WIP 한도 | 암시적(용량 스프린트) |
| 측정항목 | 리드타임, 사이클타임, CFD | 속도, 번다운 |
| 판자 | 연속적이고 항상 표시됨 | 모든 스프린트 재설정 |
| 변화 | 진화적, 점진적 | 완전한 채택이 필요합니다 |
| BestFor | 지원, 유지 관리, 죄송합니다. | 제품 개발, 프로젝트 |
칸반을 사용해야 하는 경우
✅ 칸반은 다음과 같은 경우에 이상적입니다.
- 지원 및 유지 관리: 작업 항목이 지속적으로 도착함(배치 없음)
- 운영/DevOps: 사고 관리, 배포 파이프라인
- 성숙한 애자일 팀: 그들은 스크럼보다 더 많은 유연성을 원합니다
- 가변 우선순위로 작업: 빈번한 긴급 상황(예: 심각한 버그)
- 다양한 이해관계자: 다양한 소스로부터의 요청
- 지속적인 전달: 매우 빈번한 배포(심지어 매일)
⚠️ Kanban은 다음과 같은 경우에 어려울 수 있습니다.
- Agile을 처음 접하는 팀: 스크럼보다 구조가 덜하고 규율이 필요함
- 마감일이 고정된 프로젝트: 스프린트는 속도와 이정표를 제공합니다
- 규율 없이 분산된 팀: 동기화하려면 의식이 필요합니다
- 약속에 익숙한 이해관계자: 그들은 "무엇이 준비된 스프린트 X"를 선호합니까?
스크럼반: 두 세계의 최고
스크럼반 Scrum과 Kanban을 결합하여 두 가지 장점을 모두 활용합니다.
🔵 DA SCRUM:
├─ Sprint time-boxed (1-2 settimane)
├─ Sprint Planning meeting
├─ Sprint Review/Demo
├─ Retrospective
└─ Ruoli opzionali (PO, SM)
🟢 DA KANBAN:
├─ Kanban board con visualizzazione flusso
├─ WIP limits espliciti
├─ Pull system
├─ Metriche: Lead Time, CFD
└─ Nessun commitment fisso su scope
✅ QUANDO USARE SCRUMBAN:
- Team Scrum che vuole più flessibilità
- Kanban team che vuole ritmo regolare
- Supporto + development misti
- Transizione graduale Scrum → Kanban
칸반 구현: 단계별 가이드
🚀 Kanban 채택을 위한 로드맵
1~2주차: 보기
- 현재 워크플로우를 실제로 있는 그대로 매핑합니다.
- 물리적 또는 디지털 보드 생성(Trello, Jira 등)
- 실제 단계를 반영하는 열 정의
- 현재 작업 항목으로 보드 채우기
3~4주차: WIP 한도
- 일반적으로 각 열에 몇 개의 작업이 있는지 살펴보세요.
- 초기 WIP 한도 설정(보수적)
- 의미와 중요성에 대해 팀 교육
- 위반 및 차단 모니터링
2개월차: 흐름 관리
- 일일 스탠드업 구현(보드 걷기)
- 차단 요소 식별 및 보기
- 리드타임 측정 시작
- 수동으로 또는 도구를 사용하여 첫 번째 CFD 생성
3개월 이상: 최적화
- 명시적 정책 정의(각 열에 대한 DoD)
- 정기적인 피드백 루프 도입
- 개선을 위한 통제된 실험(Kaizen)
- 데이터를 기반으로 시스템 확장 또는 조정
결론
칸반은 방법이다 강력하고 유연함 워크플로를 관리하고, 특히 다음과 같은 상황에 적합합니다. 높은 가변성 e 지속적인 전달. 성공의 열쇠는 WIP 한도를 준수하는 규율과 측정 기준을 일관되게 사용하여 개선.
💡 핵심 포인트
- Kanban은 시간 제한이 있는 반복이 아닌 지속적인 흐름을 기반으로 합니다.
- WIP 한도는 Kanban의 핵심입니다: 초점 및 병목 현상 가시성
- 주요 지표: 리드 타임, 주기 시간, 처리량, CFD
- 진화적인 접근 방식: 지금 하고 있는 일부터 시작하여 점진적으로 개선하세요.
- Kanban은 Scrum보다 덜 규범적이므로 더 많은 규율이 필요합니다.
- 우선순위가 다양한 지원, 운영 및 팀에 적합
- Scrumban은 Scrum과 Kanban보다 더 나은 결합을 제공합니다.
📚 다음 기사
다음 기사에서는 살펴보겠습니다. XP, 린 및 DevOps: 극단적인 기술적 관행 (TDD, 페어 프로그래밍, CI/CD), 낭비 제거 및 지속적인 제공을 위한 DevOps 문화입니다.







