요청서를 보낸 뒤 수량이나 배송지가 바뀌면 현재 문서를 고치는 것만으로는 일이 끝나지 않는다. 공급처가 보고 있는 것은 이전 내용이기 때문이다. 이 프로젝트에는 바뀐 부분을 눈에 띄게 표시하고 보낸 당시 내용과 변경 요청 글을 함께 남기자는 요구가 있었다. 나는 여기서 보기 좋은 변경 색상보다 먼저, 서로 다른 시점의 문서를 어떤 기준으로 보존할지 정해야 한다고 본다. 직원의 다음 행동과 대표의 사후 확인이 같은 기록을 읽어야 하기 때문이다.

현재 문서를 과거 원본으로 삼지 않는다

이미 전달한 내용이 무엇인지 기록이 없다면 오늘의 문서를 어제 보낸 원본이라고 가정할 수 없다. 그 사이 값이 바뀌었을 수 있다. 보관된 기능 기록은 이전 전달본이 없는 오래된 문서에 대해 사용자의 확인을 요구하는 경계를 설명한다. 새 기능이 생겼다는 이유로 과거에 없던 전달 증거를 만들어 내지 않으려는 판단이다. 데이터가 부족한 상태도 기록으로 남겨야 한다.

새로 보관하는 전달본은 문서의 버전과 해당 내용을 묶어 두고 다음 수정과 분리한다. 현재 업체 정보가 바뀌었다고 이미 보낸 문서의 상대 이름이나 배송지가 새 값으로 바뀌면 과거 상황을 다시 볼 수 없다. 이미지 파일을 보관하는 일과 어느 버전에서 만든 이미지인지 연결하는 일도 함께 필요하다. 원본 그림만 있고 문서와 시점을 찾을 수 없다면 나중에 대조할 때 다른 자료를 집을 수 있다.

색상은 차이가 있다는 신호이고 이유는 별도다

전달본과 현재 값을 비교해 바뀐 품목, 수량, 배송지나 요청일을 표시할 수 있다. 여기서 같은 값을 다른 형식으로 쓴 경우와 실제 업무 값이 달라진 경우를 구분해야 한다. 변경 강조는 검토할 위치를 알려 주는 도구이지 그 변경이 허용된다는 승인은 아니다. 이미 출고나 수령 기록이 있다면 수량을 줄이는 일이 실제 이행 기록과 충돌할 수도 있다.

따라서 변경 사유와 후속 상태를 확인하고 막아야 할 조건을 정한다. 현재 값을 보낸 내용에 억지로 맞춰 차이를 없애거나 이미 기록된 수령을 조용히 지우는 방식은 피해야 한다. 그 차이가 왜 생겼고 어떤 새 요청으로 전달해야 하는지를 남기는 편이 정확하다. 대표가 나중에 문제를 확인할 때도 빨간색 표시만 보는 것보다 당시 판단과 후속 조치를 읽을 수 있어야 한다.

변경 요청 글을 만들었다고 전달된 것은 아니다

변경된 내용을 글로 준비하면 직원이 다시 설명하는 수고를 줄일 수 있다. 하지만 글 복사, 이미지 저장과 실제 발송은 별개의 사건이다. 자동으로 생성한 변경 안내를 클립보드에 넣었다는 이유로 공급처가 받았다고 표시하면 안 된다. 원래 문서를 보낸 시점과 변경 요청을 보낸 시점도 다를 수 있다. 기록이 그 차이를 보존해야 같은 버전의 확인인지 판단할 수 있다.

보관된 구현에서는 준비된 변경과 전달 완료 표시를 나누는 경로를 확인할 수 있다. 이를 실제 업무에 적용한다면 어느 버전을 언제 어떤 방식으로 전달했는지와 전달 확인을 누가 남겼는지 정할 것이다. 외부 서비스의 수신 확인까지 제공하지 않는다면 그 표시를 업체가 읽었다는 뜻으로 확대하지 않는다. 프로그램이 알 수 있는 사실과 직원이 확인한 사실의 출처를 나눠 두는 것이 중요하다.

한 번의 수정이 여러 문서를 바꿀 때

회사 맞춤 프로그램은 한 번 입력한 내용을 관련 문서에 이어 주므로 편리하다. 그만큼 이미 확정하거나 전달한 문서를 어디까지 자동 갱신할지 정해야 한다. 작성 중 초안과 외부에 보낸 기록에 같은 갱신 규칙을 적용하면 과거를 잃는다. 연결은 유지하되 후속 이력이 있는 문서는 새 정정 절차로 넘기는 편이 실제 업무를 설명하기 쉽다. 자동화의 범위는 연결이 많아질수록 더 분명해야 한다.

검토할 때는 전달 전 수정, 전달 후 주소 변경, 부분 출고 뒤 수량 변경과 예전 전달본이 없는 문서를 합성 사례로 만든다. 현재 내용과 보관된 원본이 각각 남는지, 같은 요청을 다시 실행해 버전이 중복되지 않는지 살핀다. 이번 글은 선택한 변경·이미지 보관 코드와 당시 기록을 읽은 설명이다. 실제 업체에 변경 요청을 보내지 않았으며 보관에서 제외된 원본 이미지를 재확인하지 않았다. 바꾸기 쉬운 프로그램일수록 무엇이 바뀌었고 무엇은 당시 모습으로 남아야 하는지 설명할 수 있어야 한다.