WIP 제한

Work in Progress Limit

개념

한 단계에 동시에 올려 둘 수 있는 작업 수의 상한으로, 새로 시작하는 일을 막아 이미 시작한 일을 끝내게 만듭니다.

등장 배경

동시에 여러 건을 붙들고 있으면 일이 많이 되는 것처럼 보입니다. 각자 세 건씩 진행 중이라고 보고하면 팀이 바쁘게 돌아가는 그림이 나옵니다.

페이지덱 개발팀이 그 상태였습니다. 다섯 명이 각자 두세 건을 열어 두어 진행 중 카드가 열두 장이었습니다. 주말까지 일해도 한 주에 완료 칸으로 넘어간 카드는 세 장이었습니다. 카드마다 80퍼센트, 90퍼센트까지 가 있었는데 끝난 것은 셋이었습니다.

시작한 일은 끝나기 전까지 값이 0이라는 점이 문제의 핵심입니다. 90퍼센트 만든 기능은 사용자에게 아무것도 주지 않습니다. 게다가 여러 건을 오가는 동안 시간이 새어 나갑니다. 옮겨 갈 때마다 어디까지 했는지 다시 떠올려야 하고, 그 손실을 컨텍스트 스위칭이라 부릅니다.

WIP 제한은 시작을 막는 규칙입니다. 일의 흐름을 눈에 보이게 하고 진행 중 작업을 제한해 흐름을 개선하는 칸반 아래에서 보드 위에 무엇을 금지할지 정하는 규칙 갈래에 속합니다.

작동 방식

거는 방법은 다섯입니다.

  1. 칸마다 숫자를 적습니다. 상태별 칸에 카드를 늘어놓은 칸반 보드의 칸 제목 옆에 개발 중 3, 코드 리뷰 2처럼 적어 둡니다.
  2. 상한에 닿으면 새 카드를 당기지 않습니다. 개발 중 칸에 세 장이 올라가 있으면 네 번째 카드는 손이 비어 있어도 열 수 없습니다.
  3. 대신 이미 올라간 카드를 밀어 줍니다. 리뷰 칸이 막혀 있으면 개발자가 새 기능을 시작하는 대신 리뷰를 봅니다. 이 전환이 이 규칙이 실제로 만들어 내는 행동입니다.
  4. 숫자를 사람 수보다 적게 시작합니다. 개발자가 다섯이면 개발 중 칸을 셋이나 넷으로 둡니다. 사람 수와 같게 두면 각자 한 건씩 붙들고 아무도 남을 돕지 않는 상태가 그대로 허용됩니다.
  5. 몇 주 돌려 보고 조절합니다. 손이 자주 남으면 하나 올리고, 카드가 한 칸에 오래 머물면 하나 내립니다.

이 규칙이 통하는 이유는 둘입니다. 하나는 산수입니다. 한 장이 걸리는 평균 시간은 진행 중 작업 수를 처리량으로 나눈 값입니다. 진행 중이 열두 장이고 한 주에 세 장을 끝내는 팀에서 한 장은 평균 4주가 걸립니다. 진행 중을 여섯 장으로 줄이면 같은 팀에서 2주가 됩니다. 일하는 속도를 바꾸지 않고 기다리는 시간을 절반으로 줄인 것입니다. 다른 하나는 전환 손실이 줄어드는 것입니다.

숨어 있던 병목이 드러나는 효과도 큽니다. 상한이 없으면 막힌 칸 앞에 카드가 쌓이기만 하고 앞 칸의 사람들은 계속 새 일을 시작합니다. 상한이 있으면 그 앞 칸이 함께 멈춰서, 전체 속도를 혼자 결정하는 병목이 어디인지 모두가 같은 날 알게 됩니다. 리뷰를 한 사람이 도맡고 있었다는 사실이 그렇게 드러납니다.

쓰이는 곳

칸반 보드가 기본 자리입니다. 주기를 끊어 일하는 팀도 같은 규칙을 걸 수 있습니다. 담을 항목을 정하는 일과 몇 개를 동시에 열지 정하는 일은 별개이기 때문입니다.

보드를 가로로 나눈 줄마다 따로 걸기도 합니다. 장애 대응과 신규 기능이 같은 칸을 두고 경쟁하면 급한 쪽이 늘 이깁니다. 줄을 나눠 장애 대응은 두 장, 신규 기능은 세 장으로 정해 두면 급한 일이 전체를 삼키는 것을 막습니다.

효과 확인은 지표로 합니다. 손을 대기 시작한 뒤 끝날 때까지인 사이클 타임, 요청이 들어온 순간부터 재는 리드 타임, 그리고 상태별 카드 수를 시간축에 쌓아 그린 누적 흐름도를 봅니다. 상한을 내린 뒤 리드 타임이 줄었으면 작동한 것입니다.

사람에게 거는 방식도 있습니다. 한 사람이 동시에 두 건 이상 열지 않기로 정하면 칸 단위 상한보다 지키기 쉽습니다.

맞지 않는 자리도 있습니다. 항목 크기가 극단적으로 다르면 개수 제한이 뜻을 잃습니다. 반나절짜리 카드와 3주짜리 카드가 같은 한 장으로 세어지기 때문입니다. 그때는 상한을 손보기 전에 항목을 고른 크기로 쪼개는 일이 먼저입니다.

실무 용례

"개발 중이 이미 세 장이에요. 새로 열지 말고 리뷰부터 봐 주세요."

상한에 닿았을 때의 행동을 지정하는 말입니다.

"상한을 넷에서 셋으로 내려 봅시다. 카드가 한 칸에 너무 오래 있어요."

숫자를 조절해 흐름을 바꾸려는 제안입니다.

"리뷰 칸이 계속 막히는데, 상한 때문이 아니라 리뷰하는 사람이 한 명이라서예요."

상한이 드러낸 병목을 짚는 경우입니다.

페이지덱에서는 태오가 개발 중 칸을 셋으로 내려 보자고 제안했고 처음 두 주는 팀이 불편해했습니다. 손이 비는데 새 일을 못 여는 시간이 하루 한두 시간씩 생겼기 때문입니다. 넷째 주부터 한 주 완료 카드가 세 장에서 일곱 장으로 늘었습니다. 남은 시간이 리뷰와 검수 대기 카드로 갔고, 쌓여 있던 것이 한꺼번에 빠져나갔습니다.

지현은 그 뒤로 완료 카드 수와 함께 진행 중 카드 수를 매주 적습니다. 진행 중이 슬며시 늘어나는 주가 있고, 그때가 상한이 무시되기 시작한 시점입니다.

흔한 오해

상한이 생산성을 떨어뜨린다고 보는 경우가 가장 많습니다. 일할 수 있는 사람에게 일하지 말라고 하는 규칙처럼 보이기 때문입니다. 하지만 이 규칙이 줄이는 것은 시작하는 개수이고 늘리는 것은 끝나는 개수입니다. 시작한 것이 열둘이든 여섯이든 팀이 한 주에 끝내는 양은 사람 수와 실력에 달려 있는데, 열둘을 동시에 붙들면 그 양이 열두 장에 흩어져 아무것도 완료 칸에 닿지 않습니다. 여섯으로 줄이면 같은 양이 여섯 장에 모여 절반쯤이 끝납니다. 재는 값을 시작 개수에서 완료 개수로 바꾸면 이 규칙이 무엇을 하는지 보입니다.

손이 비면 새 일을 시작해야 한다고 여기는 것도 흔합니다. 노는 사람이 있는 상태를 낭비로 읽는 습관이 오래됐습니다. 그런데 흐름을 만드는 것은 그 남는 시간입니다. 여유가 생긴 사람이 다음 카드를 끌어가는 풀 시스템에서 그 사람이 당기는 것은 새 일이 아니라 앞에 밀려 있는 일입니다. 모두가 100퍼센트 바쁜 팀에서는 막힌 카드를 도울 사람이 없어서 그 카드가 며칠씩 서 있고, 그 며칠이 전체 리드 타임에 그대로 더해집니다. 사람의 여유와 일의 흐름 중 무엇을 채울지가 이 규칙이 묻는 질문입니다.

같이 보면 좋은 페이지

  • 칸반

    이 규칙이 어느 묶음의 하나인지 먼저 봅니다

  • 풀 시스템

    이 규칙과 한 몸으로 움직이는 짝입니다

연관 용어

마지막 업데이트 2026-09-16