TL;DR — 매일 아침 오는 운영 리포트의 형식을 사흘 전에 크게 고쳤어요. 정상 항목은 한 줄로 압축하고, 이상 항목에는 "확정/추정/미확인" 등급을 붙이고, 오래 멈춘 일은 별도 블록으로 뺐습니다. 리포트 품질은 눈에 띄게 좋아졌어요. 그런데 같은 사흘 동안 제안된 할 일 9건 중 실제로 처리된 건 0건이었습니다. 관측을 정교하게 만들면 실행이 따라올 줄 알았는데, 관측은 실행을 만들어내지 않았어요. 미실행을 더 정확하게 보이게 했을 뿐입니다.
리포트가 지겨워진 게 아니라, 틀리기 시작했어요
저는 혼자 AI 서비스를 운영하면서, 매일 아침 회사를 한 바퀴 돌아본 리포트를 받습니다. 어제 뭐가 바뀌었는지, 서비스는 살아 있는지, 지표는 어떤지, 오늘 뭘 하면 좋을지까지요.
며칠 전에 이 리포트 대여섯 장을 나란히 놓고 읽어봤어요. 두 가지가 보였습니다.
하나는 지루함이었어요. 정상인 항목이 매일 같은 문장으로 다시 서술되고 있었습니다. "서비스 정상 동작 확인", "보안 이상 없음" 같은 문장이 매일 새로 쓰여서 리포트의 절반을 차지하고 있었죠.
다른 하나는 좀 더 나빴어요. 어떤 항목이 며칠에 걸쳐 재서술되면서 성격이 변해 있었습니다. 처음에는 "이것 좀 확인이 필요해 보입니다" 정도의 미확인 사항이었는데, 다음 날은 "확인 필요 (미확인)"이 되고, 그다음 날은 "미해결", 그리고 어느 날 보니 "🔴 긴급"이 되어 있었어요. 새로 밝혀진 사실은 하나도 없었는데 말이죠. 하루 사이에 사실이 늘어난 게 아니라, 불확실했다는 꼬리표만 떨어져 나간 겁니다.
나중에 그 항목을 직접 확인해 봤더니 아무 문제가 없었습니다. 리포트가 며칠에 걸쳐 스스로를 인용하면서, 의심을 사실로 승격시켜 놓은 거였어요.
그래서 형식을 고쳤습니다
고친 규칙은 대략 이런 것들이었어요.
정상은 서술하지 않고 한 줄로 센다. "서비스 정상"이 아니라 "서비스 6개 중 6개 정상". 점검한 개수를 반드시 적게 했어요. 그래야 '정상'과 '아예 안 봄'이 구분되니까요. 이게 은근히 중요했는데, 예전 형식에서는 점검을 빠뜨린 항목과 점검해서 멀쩡했던 항목이 리포트 위에서 똑같이 침묵했거든요.
모든 이상 항목에 확실성 등급을 강제한다. 확정인지, 추정인지, 미확인인지. 등급을 붙일 수 없으면 긴급으로 올리지 못하게 했습니다. 기본값은 "미확인"으로 두고요. 위에서 말한 승격 사고가 정확히 이 규칙이 없어서 생긴 일이었어요.
조회 결과가 0건이면 결론 내기 전에 대조군을 한 번 더 돌린다. "없다"와 "못 찾았다"는 다른 말인데, 리포트 위에서는 둘 다 0으로 보입니다.
오래 멈춘 항목은 따로 모은다. 사흘 이상 손대지 않은 일은 본문에서 빼서 별도 블록으로 옮겼어요.
솔직히 이 개편은 잘된 편입니다. 리포트 길이가 줄었고, 읽는 시간이 짧아졌고, 무엇보다 앞서 말한 종류의 사고가 재발하지 않았어요.
그런데 사흘 동안 아무것도 처리되지 않았습니다
개편 첫날, 리포트는 오늘 할 일 3건을 제안했습니다. 다음 날 아침, 그 3건의 처리 결과를 먼저 보고하게 했어요. 0건 처리.
둘째 날도 3건. 다음 날 아침, 0건 처리.
셋째 날도 3건. 0건 처리.
그동안 리포트는 계속 좋아지고 있었어요. 문장은 짧아지고, 근거는 정확해지고, 등급은 꼬박꼬박 붙었죠. 실행률만 0이었습니다.
이게 저에게는 좀 뼈아팠어요. 왜냐하면 제가 개편을 시작할 때 속으로 기대했던 게 있었거든요. "리포트가 정확해지면, 뭘 해야 할지 명확해지고, 그러면 하게 될 것이다." 이 인과가 성립할 거라고 은연중에 믿고 있었던 겁니다.
성립하지 않았어요. 되짚어 보면 당연한 이야기입니다. 그 3건이 처리되지 않은 이유는 "무엇을 해야 할지 몰라서"가 아니었어요. 항목 하나는 5분이면 끝나는 일이었고, 막힌 데도 없었고, 사흘 내내 목록 맨 위에 있었습니다. 몰라서 안 한 게 아니라, 그 일을 할 사람이 그 시간에 다른 걸 하고 있었기 때문에 안 한 거예요. 그건 정보 문제가 아니라 배정 문제죠.
리포트는 배정을 바꿀 수 없습니다. 리포트가 할 수 있는 건 배정이 안 됐다는 사실을 정확히 보여주는 것까지예요.
관측은 실행을 낳지 않아요
저는 이걸 이렇게 정리했습니다.
측정 도구를 개선하면 측정값이 좋아질 거라고 기대하는 건, 체중계를 정밀한 걸로 바꾸면 살이 빠질 거라고 기대하는 것과 같아요.
정밀한 체중계는 분명히 가치가 있습니다. 어제와 오늘의 차이를 알려주고, 착각을 걷어내 주죠. 하지만 그게 운동을 대신해 주지는 않아요. 오히려 정밀해질수록 안 움직였다는 사실이 더 또렷하게 보일 뿐입니다.
혼자 일하는 사람에게 이건 꽤 위험한 함정이에요. 관측 체계를 다듬는 일은 실행처럼 느껴지거든요. 리포트 형식을 고치는 데 반나절을 쓰면 뭔가 진전이 있었던 것 같습니다. 실제로 진전이 있고요. 그런데 그 진전은 "회사가 나아진 것"이 아니라 "회사를 더 잘 보게 된 것"입니다. 둘은 다른 항목인데, 하루를 마칠 때의 기분은 비슷해요.
저는 이걸 자동화를 늘릴수록 더 조심해야 한다고 생각하게 됐어요. 자동화된 관측은 값이 싸거든요. 리포트 한 장을 더 정교하게 만드는 비용은 거의 0에 가깝습니다. 반면 실제 일을 하는 비용은 그대로예요. 그래서 가만히 두면 관측은 계속 좋아지고 실행은 제자리인 상태로 자연스럽게 흘러갑니다. 그리고 그 상태가 리포트 위에서는 꽤 건강해 보여요. 리포트가 정확하니까요.
그래서 '결정을 요구하는 칸'을 만들었습니다
대응으로 제가 한 건 리포트를 더 좋게 만드는 게 아니었어요. 그건 이미 문제가 아니었으니까요.
대신 리포트에 정보를 주지 않고 결정을 요구하는 칸을 하나 넣었습니다.
사흘 이상 멈춘 항목은 그 칸으로 내려갑니다. 그리고 그 칸에 들어간 항목은 설명을 반복하지 않아요. 대신 세 가지만 적습니다. 며칠째인지 / 정확히 어디서 막혔는지 / 다음 한 수는 무엇인지. 그리고 마지막에 질문을 답니다. "다시 우선순위를 올릴까요 / 다른 사람에게 넘길까요 / 보류할까요 / 폐기할까요."
핵심은 이 칸이 읽고 넘길 수 없게 되어 있다는 점이에요. 나머지 섹션은 다 읽고 "그렇군" 하고 넘어갈 수 있습니다. 이 칸은 넷 중 하나를 고르지 않으면 내일 아침 똑같은 표가 그대로 복제돼서 다시 옵니다. 나이만 하루 늘어난 채로요.
"5일째"라고 적힌 줄을 매일 아침 보는 건 생각보다 효과가 있습니다. 그런데 저는 여기서도 조심하려고 해요. 이것도 여전히 관측이거든요. 결정을 강제하는 형식일 뿐, 결정을 대신 내려주지는 않습니다. 이 칸이 있어도 제가 넷 중 아무것도 고르지 않으면 항목은 그대로 늙어갑니다. 다만 이제는 늙어간다는 사실을 제가 모르는 척할 수 없게 됐을 뿐이에요.
정직한 고백
솔직히 말하면, 이 글을 쓰는 오늘 아침 리포트에도 그 표가 그대로 있었습니다. 5건이요. 그중 하나는 오늘이 기한 마지막 날이고, 막힌 데는 없고, 5분이면 되는 일이에요. 사흘 연속 목록 맨 위에 있었고, 사흘 연속 처리되지 않았습니다.
그러니까 이 글은 "문제를 이렇게 해결했습니다"가 아니라 **"문제를 정확히 보게 되었고, 그것과 해결은 다른 일이라는 걸 알게 되었습니다"**에 가까워요. 관측 개편으로 얻은 건 실행이 아니라 변명의 제거였습니다. 예전에는 "정신이 없어서 놓쳤다"고 말할 수 있었는데, 이제는 "나흘째 맨 위에 있는 5분짜리 일을 안 했다"가 숫자로 남아요.
그것도 소득이라고 생각합니다. 다만 제가 기대했던 종류의 소득은 아니었어요.
여러분은 어떠신가요
혹시 비슷한 경험 있으신가요. 대시보드를 만들고, 리포트를 다듬고, 트래킹 체계를 세우는 데는 열심인데 정작 그 위에 올라온 항목은 처리되지 않는 상태요. 저만 그런 건 아닐 것 같아서요.
그리고 혹시 이걸 넘어서신 분이 계시다면 궁금합니다. 어떤 장치가 실제로 실행률을 올렸나요? 저는 지금 "결정을 강제하는 칸" 하나를 시험 중인데, 아직 사흘밖에 안 돼서 효과를 말할 수 없어요. 다음 달쯤 이 글의 후속을 쓰게 되면, 그때는 숫자를 가지고 오겠습니다. 올랐든 안 올랐든요.
혼자 AI로 서비스를 만들고 운영하면서 배운 것들을 기록합니다. 잘된 것보다 안 된 것을 더 많이 씁니다.