지속 가능한 속도

Sustainable Pace

개념

다음 주에도 같은 속도를 낼 수 있는 강도를 상한으로 삼아 계획을 세우는 원칙입니다.

등장 배경

마감이 다가올 때 시간을 더 쓰면 그 주에 나가는 양은 실제로 늘어납니다. 문제는 그다음입니다. 밀어 넣은 주에 벌어들인 시간이 이어지는 두세 주에서 빠져나가는데, 그쪽은 야근 기록처럼 한 줄로 남지 않습니다. 결함이 늘고 리뷰가 느려지고 사람이 아프고, 각각이 다른 원인으로 기록됩니다.

페이지덱이 분기 말 출시 앞에서 그렇게 했습니다. 2주 동안 밤까지 일해 날짜를 맞췄고 출시는 됐습니다. 이어진 두 주에 들어온 결함이 평소의 세 배였고, 두 사람이 병가를 썼고, 한 사람이 규원에게 면담을 요청했습니다.

지현이 시간을 세어 봤습니다. 2주 동안 더 쓴 시간은 넷이 합쳐 120시간이었습니다. 그다음 두 주에 결함을 고치는 데 쓴 시간이 90시간, 병가로 빠진 시간이 60시간이었습니다. 벌어들인 것보다 잃은 것이 많았는데, 두 숫자가 같은 표에 놓인 적이 없어 아무도 몰랐습니다. 지속 가능한 속도는 이 계산을 미리 해 두고 상한을 정하는 규칙입니다.

작동 방식

기준을 이번 주에 낼 수 있는 최대가 아니라 다음 주에도 낼 수 있는 값으로 잡습니다. 정할 것은 다섯 가지입니다.

  1. 상한을 숫자로 적습니다. 주당 시간으로 적는 것이 가장 단순하지만 시간만 보면 틀립니다. 같은 40시간이라도 회의로 쪼개진 주와 통으로 남은 주는 다릅니다. 그래서 시간과 함께 다음 주에도 이 강도를 되풀이할 수 있는지를 팀이 직접 판정하게 둡니다. 회의가 절반인 주에 40시간을 채운 사람이 더 지쳐 있는 일이 흔합니다. 두 사람이 한 화면을 보며 함께 코드를 쓰는 페어 프로그래밍을 하는 팀은 이 판정이 쉽습니다. 옆 사람 상태가 보이기 때문입니다.
  2. 실측으로 확인합니다. 판정이 느낌에 기대면 무너지므로 숫자를 함께 봅니다. 한 주기에 끝낸 작업량인 벨로시티의 편차, 새 결함 수, 병가와 연차 사용, 리뷰가 시작되기까지 걸린 시간 넷이 흔히 쓰입니다. 앞의 것이 오르고 뒤의 것이 늘면 상한을 이미 넘긴 상태입니다.
  3. 예외를 절차로 만듭니다. 야근을 금지하면 기록되지 않는 야근이 생깁니다. 대신 누가 승인하고 무엇으로 보상하며 원인을 어디에 적을지를 정해 둡니다. 원인을 적게 하는 것이 이 절차의 목적이고, 같은 원인이 세 번 적히면 개인의 노력으로 풀 문제가 아닙니다.
  4. 쓴 만큼 회수합니다. 밀어 넣은 주가 있으면 다음 주기에 담는 양을 줄입니다. 줄이지 않으면 회복이 일어나지 않고, 회복 안 된 속도가 새 기준으로 굳습니다.
  5. 협상 순서를 정해 둡니다. 날짜가 밀릴 것 같을 때 무엇을 먼저 조정할지 미리 합의합니다. 범위를 줄이거나 날짜를 미루거나 사람을 더하는 셋 가운데 고르고, 시간을 늘리는 것은 목록에 넣지 않습니다. 목록에 없으면 논의가 다른 방향으로 갑니다.

쓰이는 곳

가장 자주 걸리는 자리는 주기마다 담는 양을 정하는 회의입니다. 지난 주기에 밀어 넣어서 나온 숫자를 이번 주기 기준으로 쓰면 그 숫자는 계속 밀어 넣어야 맞춰집니다. 그래서 밀어 넣은 주기의 결과는 기준에서 빼거나 표시해 둡니다. 이 원칙이 가장 자주 무너지는 자리이기도 합니다. 한 번 예외를 두면 그 예외가 다음 기준이 됩니다.

나머지 세 자리는 이렇습니다.

  1. 출시 직전 — 이 원칙이 가장 시험받는 자리입니다. 협상 순서가 실제로 지켜지는지가 이 원칙이 문서인지 규칙인지를 가릅니다.
  2. 장애 대응 뒤 — 새벽에 불려 나간 사람이 다음 날 정상 근무를 하면 그 주는 두 주 분량이 됩니다. 대응 시간을 다음 날 근무에서 빼는 규칙을 함께 두는 팀이 많습니다.
  3. 사람이 나가는 자리 — 퇴사 면담에서 반복해 나오는 말이 이 원칙이 무너진 기간과 겹치는지 봅니다. 지속된 과부하로 의욕과 에너지가 고갈된 상태를 번아웃이라고 부르는데, 개인의 문제로 다루면 다음 사람에게 같은 일이 생깁니다.

예외를 인정하지 않는 원칙은 아닙니다. 서비스가 멈춘 밤에 정시에 퇴근하는 팀은 없습니다. 구분할 것은 진짜 응급과 계획 실패입니다. 응급이 분기에 한 번이면 응급이고, 매달이면 계획 문제이거나 구조 문제입니다.

실무 용례

"이번 주기는 지난번보다 적게 담읍시다. 2주 동안 밀어 넣은 뒤라서요."

회복 기간을 계획에 반영하자는 제안입니다.

"날짜를 맞추려면 범위를 줄이거나 날짜를 미뤄야 합니다. 시간을 늘리는 건 선택지에 없어요."

협상 목록을 확인하는 말입니다.

"새벽에 세 시간 대응했으니 오늘은 오후에 나오세요."

쓴 시간을 회수하는 규칙을 적용하는 자리입니다.

페이지덱은 그 분기 이후로 세 가지를 정했습니다. 밀어 넣은 주기의 결과는 기준에서 빼고, 야근은 규원의 승인과 대체 휴무로만 하고, 원인을 한 줄로 적게 했습니다. 지현이 그 기록을 분기마다 모읍니다.

첫 분기에 모인 원인 일곱 건 가운데 네 건이 같았습니다. 외부 검수 일정이 항상 마지막 주에 몰린다는 것이었습니다. 다음 분기에 검수를 두 번으로 나누자 야근 기록이 일곱 건에서 두 건이 됐습니다. 고친 것은 근면이 아니라 일정 구조였습니다.

흔한 오해

열심히 하지 말자는 원칙으로 보는 경우가 가장 많습니다. 강도에 상한을 두자는 말이니 그렇게 읽힙니다. 하지만 이 원칙이 정하는 것은 총량이 아니라 지속 가능한 지점입니다. 한 주에 최대를 내는 팀과 열두 주에 걸쳐 꾸준히 내는 팀 가운데 분기 합계가 큰 쪽은 대개 뒤쪽입니다. 앞쪽에는 회복 기간과 결함 수정 기간이 뒤따르기 때문입니다. 느슨함으로 읽으면 이 원칙을 도입하려는 제안이 성과를 포기하는 제안처럼 들리고, 그러면 아무도 제안하지 않습니다. 설명할 때 분기 합계를 함께 보여 주는 편이 빠릅니다.

주 40시간 규칙이라고 보는 것도 흔합니다. 숫자 하나를 정하면 판정이 쉬워지니 그렇게 정리하고 싶어집니다. 그런데 지속 가능한 지점은 사람마다 다르고 같은 사람도 시기마다 다릅니다. 시간 하나로 못 박으면 40시간 안에서 지쳐 가는 사람이 규칙상 문제없는 상태가 되고, 45시간이 아무렇지 않은 사람은 규칙을 어긴 사람이 됩니다. 기준은 시간이 아니라 다음 주에도 되풀이할 수 있는지입니다. 시간은 그 판정을 돕는 재료 하나입니다.

같이 보면 좋은 페이지

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