자동화를 만들 때 가장 듣기 싫은 단어는 "가끔"이다.
사람 손을 거치지 않고 글을 올려주는 도구를 만든 적이 있다. 백 번 중 아흔아홉 번은 매끄럽게 돌아갔다. 문제는 나머지 한 번이었다. 아무 이유 없이, 예고도 없이, 어느 순간 멈춰 서 있었다.
재현이 되지 않는 버그는 디버깅이 아니라 잠복근무에 가깝다. 같은 걸 열 번 돌리면 열 번 다 잘 된다. 보고 있으면 안 터지고, 안 보고 있으면 터진다. 사람이 지켜보지 않는 새벽에만 골라서 실패하는 것 같았다.
한참을 들여다본 끝에 원인은 어이없을 만큼 사소했다. 자동화가 화면을 조작하는 동안, 어쩌다 한 번씩 작은 경고창 하나가 화면 위에 떠올랐다. 그 창이 떠 있는 동안에는 내가 내리는 그 어떤 명령도 받아들여지지 않았다. 도구는 멈춘 게 아니라, 대답 없는 문 앞에서 정중하게 기다리고 있었던 것이다.
자동화는 사람이 안 볼 때 무너진다. 그래서 사람이 안 볼 때의 화면까지 상상해야 한다.
이 일로 한 가지 습관이 생겼다. "정상 경로"만 그리지 않고, 끼어들 수 있는 모든 방해물을 먼저 떠올리는 습관. 예상치 못한 창, 느려진 응답, 평소와 다른 화면 — 사람이라면 그냥 무시하고 닫았을 것들이, 기계에게는 세상의 끝이 된다.
지금도 "가끔 그래요"라는 말을 들으면 가슴이 철렁한다. 늘 그러는 버그는 차라리 고맙다. 적어도 자기를 숨기지는 않으니까. 진짜 악질은 평소엔 착하게 굴다가, 가장 안 좋은 순간에만 칼을 빼는 쪽이다.