먼저 결론부터. 창고가 2시간 안에 모의 리콜을 끝내지 못한다면, 문제는 훈련 당일에 있던 게 아니다. 그 전 18개월에 있었다.

지난달 나는 남부 캘리포니아의 한 냉동식품 창고에서 모의 리콜에 참관했다. 수요일 9:00 a.m. 코디네이터가 모의 통지를 발령했다. 냉동 새우 1개 로트, 리스테리아균 의심, 2시간 안에 모든 케이스를 특정하라. 11:00가 되자 3개의 팔레트가 여전히 로트와 대조되지 않았고, 고객 연락처는 3년 전 것이라——없는 번호였다. 작업이 끝난 건 오후 4시였다.

나는 그 창고 매니저에게 말했다. 그런 프로세스라면 실제 사고가 나도 FDA의 24시간 규정은 아마 통과할 것이다. 하지만 첫 2시간은 죽을 만큼 무서울 것이다.

왜 2시간인가. FDA 식품 추적성 규정인 FSMA 204에 따르면, FDA가 기록 제출을 요청하면 24시간 안에 정렬 가능한 전자 스프레드시트를 제출해야 한다——스프레드시트다, PDF도 종이 장부도 아니다. 그게 법적인 시계다. 2시간 시계는 자기 자신의 것이다. 2시간 안에 모든 대상 로트를 특정하면 고객 통지, 격리, 제품 출하 보류, 보고서 작성 시간이 남는다. 2시간을 놓치면 그 뒤의 모든 것이 연쇄적으로 무너진다.

타이밍에 대해 한마디. FDA는 FSMA 204 준수 기한 연기를 제안했다——당초 2026년 1월이었으나 현재는 2028년 7월로 연기가 제안되어 있으니, 최신 정보는 FDA 웹사이트에서 확인하기 바란다. 기한은 움직였고, 규정은 움직이지 않았다. 추적성 로트 코드, 핵심 데이터 요소, 중요 추적 이벤트, 2년간 기록 보관——어느 것도 없어지지 않는다. 연습하기에 지금보다 좋은 때는 없다.

7일 전: 체크리스트를 확정하라

훈련 당일이 혼란에 빠질 때, 원인은 거의 예외 없이 준비에 있다. 훈련 7일 전, 나는 고객에게 이 체크리스트를 확정하게 한다.

전권을 가진 리콜 코디네이터를 1명 지명한다. 훈련 당일 모든 지시는 그 사람에게서 나온다——합창은 없다. 코디네이터는 모의 통지 템플릿을 미리 받는다. SKU, 로트 번호, 의심 원인, 발생 시각이다. 통지가 발령되는 정확한 순간을 아는 사람은 코디네이터와 나뿐이다.

로트 선택이 중요하다. "지난달 들어와서 한 번도 움직이지 않은 '깨끗한' 로트"를 고르지 마라——그건 연극이다. 정말 '살아온' 로트를 골라라. 최소 2번은 출하되었고, 가능하면 고객 반품 1건이 섞여 있는 것으로. 식품 추적성 목록(잎채소, 토마토, 연성 치즈, 껍질 달걀, 견과류 버터, 해산물)에 있는 품목을 취급한다면 그중에서 골라라. 실제 사고는 거기서 시작된다.

다음은 데이터 리허설. 전날 코디네이터가 WMS에서 혼자 돌린다——IT에 도움을 청하지 않고. 이 로트가 지금 어디에 있고, 어떤 로케이션에, 얼마나 있는지. 지난 90일간의 입출고 기록을 한 번에 내보낼 수 있는지. 코디네이터가 혼자 해내지 못하면 훈련 당일은 시간 초과한다. 사전 점검의 목적이 바로 그거다.

사소한 것 몇 가지. "RECALL HOLD" 스티커를 한 묶음 인쇄하고 격리 바리어를 설치한다. 고객 연락처 목록을 종이에 인쇄하고 시스템 다운 상황을 가정하고 훈련한다——종이 목록으로 연락이 안 되면 공백을 찾은 것이다. 그리고 경리팀에 미리 경고한다. 훈련 중 긴급 주문 예외는 없다고.

48시간 전에는 리콜 팀에게만 브리핑한다——현장 전체에게는 하지 않는다. 훈련에는 서프라이즈가 필요하다. 그렇지 않으면 연기의 리허설이 된다.

2시간을 15분 블록으로 쪼개기

훈련 당일 나는 2시간을 8개의 15분 블록으로 쪼개고, 각 블록에 딱 하나의 산출물을 배정한다. 10분만 초과해도 기록에 남긴다——FDA는 기다려주지 않는다.

0:00–0:15, 개시. 코디네이터가 모의 통지를 발령하고 팀이 지정 장소에 집결한다. 첫 번째 조치는 해당 SKU의 모든 로트를 WMS에서 보류 상태로 전환하는 것이다. 먼저 전부 동결하고, 그 다음 깨끗한 로트를 하나씩 해제한다——순서를 뒤집으면 그 15분 안에 누군가 의심 제품 팔레트를 한 장 더 출하할 수도 있다. 산출물: 보류 스크린샷 또는 시스템 로그.

0:15–0:30, 데이터 추출. 세 가지를 내보낸다. 해당 로트의 현재 재고 상세(로케이션, 수량, 상태), 지난 90일간의 출고 기록(일자, 고객, 주문 번호, 수량), 해당 로트의 입고 기록(공급업체, 입고일, 입고 로트 번호). 산출물: 세 테이블 전부. 많은 창고가 여기서 멈춘다——WMS에 로트 항목이 없고 SKU와 수량만 있기 때문이다. 해당된다면 멈추고 시스템을 먼저 고쳐라.

0:30–0:45, 실물 대조. 2인 1조로 재고 상세를 들고 로케이션에 가서 센다. 수가 시스템과 안 맞는다고? 적어 둬라——그게 이번 훈련에서 가장 값진 발견이다. 대상 로트가 있다고 확인된 로케이션에는 전부 보류 스티커를 붙인다. 냉동고 메모: 저온에서는 라벨이 떨어진다. 저온용 테이프를 가져가라. 산출물: 카운트 차이 시트.

0:45–1:00, 양방향 추적. 역방향: 공급업체, 입고일, 입고 로트 번호——게다가 같은 트럭에 무엇이 함께 실렸는지(혼적은 교차 오염의 전형적인 벡터다). 순방향: 어느 고객에게 출하했고, 각각 얼마씩, 어느 운송사가 운반했는지. 산출물: 1페이지짜리 로트 이동 지도.

1:00–1:15, 고객 통지 시뮬레이션. 대본을 들고 실제로 전화한다. "안녕하세요, [warehouse]입니다. 모의 리콜 훈련 중입니다. [date]에 출하된 [product], 로트 [number]가 대상 범위에 들어갑니다——수령 수량은 얼마고, 아직 재고를 보유하고 계신가요?" 누가 받았고, 얼마나 빨리, 보유량을 말할 수 있었는지 기록한다. 없는 번호 하나하나가 실제 리콜에서의 노출이다.

1:15–1:30, 로케이션 보고서 취합. 세 바구니: 아직 건물 안에 있는 것, 고객에게 출하된 것, 미대조 차이. 중요한 숫자는 하나다. 리콜 커버리지——특정된 수량을 로트 총수량으로 나눈 것. 내 기준은 98%가 합격, 95% 미만이 불합격이다.

1:30–1:45, 격리 훈련. 의심 팔레트를 격리 구역으로 옮기거나, 그 자리에서 표지판과 함께 펜스로 둘러싼다. 전부 사진으로 찍는다. 산출물: 격리 완료 사인오프.

1:45–2:00, 마무리. 코디네이터가 15분 동안 잠정 보고서를 기안한다. 블록별 계획 대비 실적 시간, 커버리지율, 이슈 목록. 당일 안에 존재해야 한다——다음 주에 쓴 상세는 잊힌 상세다.

핸드 스캐너로 카톤의 로트 바코드를 스캔하는 창고 작업자

훈련이 항상 시간 초과하는 이유

수년간 해보니 막히는 지점은 항상 똑같다——게다가 전부 '평범한 날'의 병이다.

첫째, WMS에 로트 항목이 없거나, 항목은 있는데 아무도 입력하지 않는다. 많은 창고가 대충 서둘러 오픈했다. 입고에서는 SKU만 스캔하고 로트와 유통기한은 종이쪽지에 적는다. 쪽지를 잃으면 로트도 잃는다. FSMA 204는 모든 후속 이벤트를 관통하는 추적성 로트 코드를 요구한다——입고 스캔을 건너뛰면 그 뒤는 전부 추측이다.

둘째, 로트 혼재 적치다. 한 팔레트에 2개 로트, 혹은 보충 물량을 예전 로트의 로케이션에 바로 쏟아붓는다. 상온 창고에서는 흔하고 냉동고에서는 더 심하다——영하 20도에서 1분 더 있고 싶은 사람이 없기 때문이다. 수를 셀 때가 되면 수량은 맞고 로트는 안 맞는다.

셋째, 반품의 재고 복귀다. 고객이 팔레트를 반품하면 입고에서 원래 로케이션에 넣고 시스템은 원래 로트로 표시한 채다. 실제 리콜에서는 그 팔레트가 건물로 돌아와 있는데 '출하됨'으로 표시된다——커버리지 계산은 영원히 안 맞는다.

넷째, 고객 연락처 목록이 3년 전 그대로다. 영업팀은 두 번 바뀌었고 입고 도크 전화번호는 아무도 업데이트하지 않았다. 훈련에서는 없는 번호, 실제에서도 없는 번호다.

다섯째, 상품이 3PL에 맡겨져 있다면 그 데이터는 이메일에 답장해줄 때 온다. 훈련 전에 확인하라. 당신의 3PL이 로트 단위 재고와 출고 데이터를 30분 안에 줄 수 있는가. 안 되면 그 SLA를 계약서에 넣어라.

제약 창고는 다른 룰북으로 움직인다(DSCSA). 단위 수준 직렬화——GTIN, 일련번호, 로트, 유효기한을 2D 바코드에 넣어——입고, 피킹, 포장, 출하에서 스캔하고, 리콜이나 의심 제품 조사가 오면 추적 데이터를 바로 꺼낼 수 있게 한다.

단체 사진으로 훈련을 끝내지 마라

훈련 뒤의 정석은 점심이 아니라——디브리프 보고서다. 내 보고서에는 이 항목들이 필수이며 예외는 없다.

기본 사항: 일자, 참가자, SKU와 로트, 통지 시각. 8개 블록 전체의 계획 대비 실적 시간——10분 이상 초과한 것은 전부 플래그. 리콜 커버리지: 특정된 수량, 총수량, 비율. 내 기준선은 98%다.

다음은 이슈 목록을 3단계로. 치명적(WMS에 로트 항목이 없음), 중대(연락 불가, 격리 구역이 너무 좁음), 경미(라벨 떨어짐, 프로젝터 고장). 모든 항목에 수정 조치, 담당자, 기한을 붙인다——담당자 없이, 기한 없이, 개선도 없다.

다음 훈련 일자를 잡는다. 식품 창고는 최소 연 2회. 커버리지가 95% 미만이면 3개월 안에 1회 추가한다. 그 주기를 품질 매뉴얼에 넣는다.

비용 제로 습관 하나. 매달 전날 출하된 로트 하나를 골라 수퍼바이저에게 15분을 주고 그것을 찾아내게 하고, 누가 받았는지 말하게 한다. 부족하다고? 훈련은 건너뛰고 입고를 먼저 고쳐라.

모의 리콜이 시험하는 건 그 2시간이 아니다. 훈련 전 300일간의 입고 스캔과 로트 규율을 지킨 적치가 제대로 되었는지를 시험하는 것이다. 훈련 당일이 돌아가는 건, 평범한 날들이 돌아갔기 때문이다.

영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.