「제가 없으면 안 돌아갑니다」는
문서를 안 써서가 아닙니다.
문서는 대개 있습니다. 문제는 그 문서가 맞는지 아무도 모른다는 것입니다. 제가 쓰는 방식은 인수인계를 문서가 아니라 자동 점검으로 다루는 것입니다. 그렇게 만든 자리와, 그래도 새는 자리를 하루치로 적었습니다.
「지금 무엇이 막혀 있는가」는 한 곳에만 있습니다
인수인계 문서가 여럿이면 어느 것이 최신인지 다시 물어야 합니다. 그래서 진입점은 하나입니다 — 526줄짜리 문서 한 장. 여러 번에 나눠 작업해도, 사람이 바뀌어도 그 한 장만 봅니다.
작업할 때마다 문서를 새로 하나씩 만들면 당장은 편하고 나중에 비쌉니다. 읽는 사람은 다섯 장을 대조해서 어느 것이 살아 있는지 판정해야 하고, 그 판정을 매번 다시 합니다.
문서에 적힌 숫자를 실제와 맞대어 봅니다
문서에 「점검 40가지」라고 적어두면, 41가지가 되는 순간 그 문장이 거짓이 됩니다. 아무도 안 고치고, 다음 사람은 그 수를 근거로 판단합니다.
그래서 그 문서의 숫자 자리 6곳은 실제를 직접 세어 맞대어 봅니다. 어긋나면 저장이 막힙니다. 이 규칙은 세 번 낡은 뒤에 만들었습니다 — 습관으로는 안 됐습니다.
오늘도 한 번 걸렸습니다. 점검을 늘렸다고 생각해 문서를 먼저 고쳤는데, 실제로는 있던 점검을 넓힌 것이라 수가 그대로였습니다. 기억이 아니라 대조가 잡았습니다.
도구는 「언제 도는가」와 함께 적어둡니다
점검 도구를 만들어놓고 아무 데서도 안 부르면, 그건 있는데 없는 것입니다. 다음 사람은 파일 목록에서 그것을 보고 「돌고 있겠지」라고 읽습니다.
오늘 새 점검을 만들었을 때 그것을 감시하는 점검이 잡았습니다 — 「목록에 없다. 언제 도는지 아무도 모른다」. 만든 사람은 알지만, 만든 사람이 계속 있을 거라는 가정이 문제입니다.
장부는 한쪽으로만 늙습니다
찾은 문제를 장부에 적습니다. 지금 55건이 있고 37건이 닫혔습니다. 여기까지는 잘 돌아갑니다.
오늘 열린 항목을 라이브로 하나씩 대조해봤습니다. 3건이 이미 해소돼 있었습니다. 전부 그날 고친 것인데 장부는 그대로였습니다 — 고치는 사람과 장부를 닫는 사람이 같은데도 그렇습니다.
반대 방향 점검은 둘 있습니다 — 「물린 것이 되살아났나」와 「확인된 것이 사라졌나」. 그런데 「열려 있다고 적힌 것이 이미 해결됐나」는 아무도 안 봅니다. 고칠 때는 「됐다」로 끝나고, 다음 사람은 「아직 열려 있네」로 읽습니다.
점검을 확인하는 장치도 낡습니다
점검 74가지가 정말 걸러내는지 시험합니다 — 일부러 잘못된 것을 심어 잡히는지 봅니다. 72가지 방법으로.
그런데 잘못을 심으려면 정해진 자리를 찾아야 하고, 그 자리가 바뀌면 심는 것부터 실패합니다. 오늘 셋이 그렇게 됐고, 그중 하나는 제가 만들어놓고 두 번 만에 제 손으로 망가뜨린 것이었습니다.
그 사이 점검은 계속 통과했습니다 — 점검 자체는 살아 있었으니까요. 「불성립」을 통과와 따로 세지 않았다면 영영 안 보였을 것입니다. 인수인계에서 가장 위험한 것은 틀린 문서가 아니라 «맞는지 확인되지 않은 문서»입니다.
고친 기록이 없으면 「언제 손댔는지」만 남습니다
어떤 서버에는 고친 이력이 안 남습니다. 누가 언제 무엇을 고쳤는지 알 방법이 파일의 «마지막으로 손댄 시각» 뿐입니다. 오늘 올리기 직전 대조에서 드러났습니다 — 서버 쪽이 더 최신인 파일이 둘 있었고, 그대로 덮었으면 되돌릴 곳이 없었습니다.
「제가 없으면 안 돌아갑니다」의 절반은 이런 자리에서 옵니다. 고친 사람만 아는 변경이 쌓이고, 그 사람이 자리를 비우면 아무도 그것이 왜 그런지 모릅니다. 문서를 더 쓰는 것보다 흔적이 자동으로 남게 하는 것이 먼저입니다.
인수인계는 문서가 아니라 맞대어 보기입니다
여섯 자리 중 넷은 문서가 있는데도 생겼습니다. 문서는 쓰인 시점에 맞았고, 그 뒤로 아무도 틀렸다고 말해주지 않았습니다. 문서는 늙지만 스스로 늙었다고 말하지 않습니다.
자리를 비울 수 있게 만드는 순서는 이렇습니다 — 들어오는 문을 하나로, 문서의 숫자를 실제와 맞대어 보고, 도구는 「언제 도는가」와 함께 적어두고, 그리고 닫는 쪽에도 점검을 두는 것입니다. 마지막이 제일 자주 빠집니다.