과달라하라나 선전의 계약 제조업체 시설에 어느 화요일이든 들어가면 완벽하게 실행된 재앙을 목격할 수 있습니다. 생산 라인은 움직이고, 픽 앤 플레이스 기계는 윙윙거리며, 작업자들은 여행자 문서를 정확히 따릅니다. 그러나 라인 끝에서는 빨간색 불량품 통이 흔들리거나 과열되거나 단순히 부팅을 거부하는 유닛들로 가득 찹니다.
작업자들이 조립에 실패하는 것이 아니라 시스템이 동기화에 실패하고 있는 것입니다.
한 가지 일반적인 시나리오에서, 기계 팀은 히트 싱크를 수정하기 위해 엔지니어링 변경 명령(ECO)을 발행하고, 패키징 팀은 새로운 폼 인서트를 위한 별도의 ECO를 발행하며, 펌웨어 팀은 팬 속도를 낮추는 패치를 배포합니다. 이 세 가지 변경 사항이 명확한 연계 없이 공장에 도착하면 라인 감독자는 승인 절차를 통과하는 대로 이를 구현합니다. 결과적으로 2,000개의 유닛이 오래된 작은 히트 싱크를 포함하면서도 새로운 저속 팬 프로필로 작동하게 됩니다. 그 결과 현장에서 열 차단이 발생하는데, 이는 펌웨어 변경의 "효력 발생일"이 "승인 시"로 설정된 반면 기계 변경은 "재고 소진 시"로 설정되었기 때문입니다.
엔지니어링은 보통 잘 작동합니다. 마찰은 엔지니어링을 연속 흐름으로 처리하는 반면 제조는 불연속 스냅샷으로 이루어진다는 데서 발생합니다. 자재 명세서(BOM)를 소프트웨어 저장소처럼 다루면 혼란이 초래됩니다. git revert는 비용이 들지 않지만, 플라스틱 사출 금형 도구를 되돌리거나 수정 문자가 스텐실과 맞지 않아 5,000개의 인쇄 회로 기판을 폐기하는 것은 수십만 달러의 실수입니다. 예정된 빌드 중 여러 ECO가 충돌하는 것은 "소프트" 수율 손실의 가장 흔한 원인입니다. 유닛을 잘못 만든 것이 아니라 일정이 충돌해서 잘못된 유닛을 만든 것입니다.
"최신 개정판"의 함정
현대 하드웨어 개발에는 파일의 "최신" 버전이 빌드되어야 한다는 위험한 가정이 있습니다. 제품 수명 주기 관리(PLM) 시스템에서는 파일이 "승인"되었더라도 "구현"되기까지는 시간이 걸립니다. 그 간극에서 돈이 사라집니다.
오스틴 사무실에 앉아 있는 엔지니어는 새 브래킷 디자인이 시스템에서 승인된 것을 보고 다음 생산 유닛에 적용될 것이라 가정합니다. 그러나 공장 현장은 디지털 상태가 아니라 물리적 재고를 기준으로 운영됩니다. 창고에 4,000개의 오래된 브래킷이 있다면 공장의 기본 논리는 낭비를 피하기 위해 이를 먼저 사용하는 것입니다. ECO가 명시적으로 "정리 및 폐기" 조치를 강제하지 않는 한, "최신" 개정판은 서버에만 존재할 뿐 라인에는 존재하지 않습니다.
이 단절은 "편차 면제"가 도입될 때 치명적이 됩니다. 공급망 관리에서 종종 필요한 악인 면제는 일시적으로 규칙을 어길 수 있는 공식 허가입니다—예를 들어 부족한 상황에서 대체 커패시터를 사용하거나 배송 기한을 맞추기 위해 외관 검사를 생략하는 경우입니다. 위험은 이러한 면제가 행정 서류로 취급되고 엔지니어링 변경으로 다뤄지지 않을 때 발생합니다.
면제는 사실상 만료일이 있는 임시 ECO입니다. 브로커에서 조달한 부품 사용 편차를 승인했지만 그 편차를 PLM 내 특정 일련 번호 범위와 연결하지 않으면 시한폭탄을 만든 것입니다. 6개월 후 해당 부품이 고장 나면 어떤 유닛에 있는지 알 수 없습니다. 나쁜 유닛만 리콜할 수 없는데 데이터가 없기 때문입니다. 특정 구현 게이트가 없으면 공장은 선반에 있는 것을 기본으로 사용하며, "희망"은 추적 로그에서 유효한 필드가 아닙니다.
펌웨어는 구성 요소이지 분위기가 아니다
개정 충돌의 가장 빈번한 희생자는 펌웨어입니다. 소프트웨어 팀은 지속적 통합에 익숙하며 코드를 시간이 지남에 따라 개선되는 살아있는 존재로 봅니다. 제조는 코드를 나사나 저항기와 다르지 않은 부품으로 봅니다. 펌웨어 바이너리에 명확한 부품 번호와 BOM에서 관리되는 개정 번호가 없으면 라인 작업자에게는 존재하지 않는 것과 같습니다.

“팬텀 펌웨어” 시나리오를 고려해 보십시오. 개발자가 중요한 버그를 수정하기 위해 버전 2.1을 저장소에 푸시합니다. 그러나 공장 프로그래머들은 테스트 서버의 특정 폴더에 있는 바이너리를 플래싱하고 있습니다. ECO 프로세스가 테스트 엔지니어에게 새 체크섬을 검증하고 프로그래머 이미지를 업데이트하라고 명시적으로 지시하지 않으면, 공장은 영원히 버전 2.0을 플래싱할 것입니다. 단위들은 기능 테스트를 통과할 것입니다. 왜냐하면 테스트 한계가 새 버전 문자열을 찾도록 업데이트되지 않았을 가능성이 높기 때문입니다.
여기에는 나중에 이러한 문제를 해결하기 위해 무선 업데이트(OTA)에 의존하려는 유혹이 있습니다. 이것은 위험한 버팀목입니다. 부트로더 버전이 애플리케이션 파티션 맵과 일치하지 않아 부팅 즉시 장치가 벽돌이 되는 경우 OTA는 장치를 고칠 수 없습니다. 게다가 현장 업데이트에 의존하면 실패 진단 능력이 파괴됩니다. 고객이 벽돌이 된 장치를 가지고 지원팀에 전화했을 때, RMA 팀이 시리얼 번호만으로 공장에서 원래 플래싱된 코드를 알 수 없다면, 그들은 눈을 감고 있는 셈입니다. 하드웨어 결함을 쫓는지 소프트웨어 버그를 쫓는지 알 수 없습니다. 바이너리에 부품 번호가 없으면 라인 작업자에게는 존재하지 않는 것이고, 지원팀에도 전혀 도움이 되지 않습니다.
처분 매트릭스

어떤 ECO에서든 가장 중요한 필드는 변경 사항의 설명이 아니라 기존 자재의 “처분”입니다. 여기서 변경의 재정적 현실이 계산됩니다. 새 개정을 도입할 때는 네 가지 상태의 자재를 고려해야 합니다: 재고(창고 내), 주문 중(공급업체로부터 입고 중), 진행 중 작업(라인에서 작업 중), 완제품(부두에 보관 중).
각 범주에 대해 이진 선택을 해야 합니다: 그대로 사용, 재작업, 공급업체 반품, 또는 폐기. 이것이 처분 매트릭스입니다. 많은 엔지니어링 매니저들이 이 부분을 비워두거나 모호하게 작성하며 “가능하면 재작업”과 같은 문구를 씁니다. 이것은 직무 유기입니다. “재작업”은 노동 시간, 분해, 다른 부품 손상 가능성, 재테스트를 의미합니다. 종종 단위를 개봉, 분해, 납땜 해제, 재플래싱하는 비용이 장치의 마진을 초과합니다.
수학적으로 계산해야 합니다. 작업자가 섬세한 재작업을 시도하는 동안 3일간 라인 다운 시간을 지불하는 것보다 $5,000개의 원자재 PCB를 폐기하는 것이 더 저렴한 경우가 많습니다. 재작업은 거의 항상 환상이며, 폐기는 명확성의 대가입니다.
클린 브레이크 프로토콜
피를 멈추려면 “클린 브레이크”를 강제해야 합니다. 새 개정이 오래된 개정과 섞여서 롤링 변경되는 것은 100% 형태, 적합성, 기능이 교환 가능한 부품(예: 다른 공급업체의 나사)에서만 허용됩니다. 그 외 모든 경우에는 확실한 절단이 필요합니다.
이는 미끄러운 달력 날짜가 아니라 특정 로트 코드나 시리얼 번호로 절단 시점을 정의하는 것을 의미합니다. “개정 B는 SN: 100500부터 시작”이라는 지침은 공장이 라인을 분리할 수 있게 합니다. 개정 A의 생산을 마치고 라인을 정리하며, 오래된 재고를 제거하고 새 설정으로 개정 B를 시작할 수 있습니다.
이는 규율을 요구합니다. 새 부품이 도착할 때까지 2일간 빌드를 지연하는 것을 의미할 수 있으며, “하이브리드” 괴물을 만드는 것보다 낫습니다. 그러나 그 지연은 리콜보다 저렴합니다. 절단점을 통제하지 않으면 절단점이 당신의 마진을 통제할 것입니다.
