본문으로 바로가기

The Software Factory 0.1 프리뷰

19장 실패를 정책과 계획의 개선으로 연결한다

복구한 결과와 개선한 기준을 구분한다

섹션 제목: “복구한 결과와 개선한 기준을 구분한다”

장애를 복구하고 작업을 다시 진행했다고 같은 실패가 줄어드는 것은 아니다. 일시적인 조건을 해소했을 수도 있고, 기준을 느슨하게 만들어 보고만 달라졌을 수도 있다. 리더는 현재 영향을 줄이는 판단과 다음 실행을 바꾸는 판단을 나누어야 한다. 전자는 8장의 복구이고 이 장은 후자의 근거와 검증을 다룬다.

P13 ‘의도부터 결과까지 추적’은 실행 당시의 목적·정책·계획·검증·배포를 연결한다. P15 ‘검증을 거치는 개선’은 실패를 원인별로 분류하고 수정안을 고정된 회귀 과제로 평가한 뒤 허용 범위에서 반영하도록 제안한다. 기록을 많이 남기거나 새 규칙을 추가한 사실만으로 개선이 이루어졌다고 판단하지 않는다.

증상과 확인한 원인, 남은 가설을 나눈다

섹션 제목: “증상과 확인한 원인, 남은 가설을 나눈다”

가상의 문의 업무에서 오래된 안내가 답변에 들어갔다고 하자. 이는 설명 예시다. 자료가 잘못되었을 수도 있고, 최신 자료를 찾지 못했거나, 충돌을 알면서도 결과를 수용했을 수도 있다. 같은 증상에 곧바로 모델 교체나 문서 추가를 처방하지 않는다.

실행에 사용한 자료와 기준, 결과와 판정, 실제 영향을 연결한다. 당시 알 수 있었던 것과 나중에 알게 된 것을 구분한다. 확정한 원인과 추가 조사할 가설을 나누고 어느 증거가 결론을 바꿀 수 있는지 남긴다. 원인을 설명할 수 없는 구간은 추정으로 채우지 않는다.

실패를 누구에게 돌릴지에만 집중하면 연결된 조건을 놓칠 수 있다. 수행자가 틀렸더라도 왜 그 결과를 판정이 수용했는지 살핀다. 계획에 필요한 자료가 제공되지 않았다면 지식 공급을 조사한다. 사람이 기준 변경을 승인했다면 어떤 약속과 위험을 감수했는지 확인한다.

저자의 실패 분석 글은 발견·진단·규칙화·효과 확인을 서로 다른 단계로 살펴보는 틀을 제안한다.[S43] 이 책은 변경안을 그 효과를 확인할 과제와 함께 관리하도록 권한다. 글의 개별 OSS 사건과 집계를 재현한 것으로 표시하지 않는다.

확인한 문제 변경을 검토할 대상 책임과 검증의 질문
목적·성공 조건 누락 의도 누구의 약속이 달라지는가
경계 충돌 정책 변경 영향과 예외는 무엇인가
의존·작업 누락 계획 같은 기준을 유지하는가
잘못된 수행 구현·실행 조합 다른 조건을 깨뜨리지 않는가
판정·관찰 누락 평가·기록·지식 같은 오류를 실제로 발견하는가

이 표는 원인 조사 이후의 선택을 돕는 제안이다. 한 사건이 여러 대상에 걸칠 수 있다. 긴급 복구에서는 여러 조치를 함께 할 수 있지만 지속할 변경을 평가할 때에는 각각의 이유와 영향을 구분할 필요가 있다.

책임자가 바꾸려는 대상에 필요한 권한을 갖는지도 확인한다. 실행자가 방법을 조정할 수 있다는 이유로 성공 조건이나 평가 자료까지 단독으로 바꾸지 않는다. 기준 변경이 필요한 경우 해당 위험과 약속의 책임자에게 근거를 연결한다.

기준을 고정할 범위와 갱신할 이유를 정한다

섹션 제목: “기준을 고정할 범위와 갱신할 이유를 정한다”

고정된 회귀 과제는 이미 지켜야 한다고 정한 조건을 변경 뒤에도 확인하는 수단이다. 실패했던 조건과 정상 조건을 함께 사용한다. 처음의 오류만 고치면 다른 결과가 악화될 수 있으므로 영향 범위를 검토한다. 평가 환경이 달라졌다면 비교의 한계를 표시한다.

기준을 영원히 고정하는 것이 목적은 아니다. 새로운 사용자 약속이나 환경 변화로 기존 기준을 바꿔야 할 수 있다. 그 경우 기준의 변화와 같은 일을 더 잘하게 된 변화는 분리해 설명한다. 가능한 범위에서 이전 기준과 새 기준을 각각 확인하고 더는 비교할 수 없는 부분을 남긴다.

실행자에게 알려진 평가 과제만 좋아졌다면 실제 업무에서의 결과를 추가로 확인한다. 별도 자료와 운영 관찰이 필요할 수 있다. 평가를 바꾸는 것과 평가에 맞춘 결과를 만드는 것을 함께 조사해야 한다. P07의 독립 판정 원리는 개선안에도 적용된다.

규칙 변경이 실제로 무엇을 더 잡는지 확인한다

섹션 제목: “규칙 변경이 실제로 무엇을 더 잡는지 확인한다”

데모의 개선 평가 코드는 봇의 개선 PR에 새 평가 사례를 요구한다. 이전 규칙이 놓치고 새 규칙이 검출하는지 확인하며, 기존 사례의 삭제·변경과 회귀도 검사한다. 개선 역할이 바꿀 파일 범위도 제한한다.[S67] 이는 규칙을 많이 추가한 사실과 같은 실패를 새로 발견할 수 있게 된 변화를 구분하는 구현이다.

공개된 개선 PR #47과 검증 PR #48에서는 이 연결의 일부를 실행 기록으로 확인할 수 있다. PR #47의 평가 로그는 새 오류 형식 사례의 전후 검출 차이를 기록한다. PR #48의 검사 로그에는 해당 규칙 위반으로 실패한 결과가 남아 있다. #47은 병합되었고 #48은 병합 없이 닫혔다.[S68] 프로젝트는 이를 잘못된 지시를 의도적으로 넣은 리허설로 설명한다.[S59]

리더가 이 기록에서 얻을 수 있는 해석은 개선 제안에 반례와 판정 결과를 연결할 수 있다는 것이다. 의도적으로 만든 한 실패를 검출했다는 결과를 자연 발생 결함의 장기 감소로 확대할 수는 없다. 평가 사례가 없는 규칙의 약화나 새 업무의 실패는 별도 관찰이 필요하다. 개선 규칙의 범위와 사람의 검토, 적용 뒤의 비용·실패를 함께 관리해야 P15의 개선 루프가 이어진다.

제한된 범위에서 반영하고 다시 판단한다

섹션 제목: “제한된 범위에서 반영하고 다시 판단한다”

변경안이 검사에 통과해도 새로운 업무와 소비자에서 같은 효과가 난다고 보장되지는 않는다. 적용 대상을 제한하고 관찰할 결과와 중단·복구 조건을 정할 수 있다. 자료·권한·기록의 변경이 진행 중 작업에 미치는 영향도 확인한다.

규칙의 계기가 된 사건과 적용한 변경, 평가 결과와 남은 위험을 연결한다. 실패 기록이 현재 기준에 반영되었다면 다음 수행자가 찾아 쓸 수 있어야 한다. 과거 조사 기록을 최신 결론으로 덮어쓰지 않고 새 결정과 연결한다. 10장의 기준 갱신과 기록 보존을 함께 운영한다.

개선에 필요한 기록과 평가를 유지할 비용도 정한다. 작은 사건마다 큰 규칙 체계를 만들면 중요한 기준이 묻힐 수 있다. 같은 실패를 막을 장치가 필요한지, 기존 기준의 적용과 자료 공급으로 충분한지 살핀다. 불필요해진 조치를 제거할 때에도 그 조치가 확인하던 조건을 어떻게 보존할지 정한다.

리더는 효과와 학습의 상태를 분리해 보고한다

섹션 제목: “리더는 효과와 학습의 상태를 분리해 보고한다”

VDLC의 환류는 지식·규칙의 갱신과 사람의 이해 보완을 함께 제안한다.[S71] 10장의 맥락 진단에서 발견한 빈틈을 개선할 때에도 원인·변경·판정 근거가 다음 담당자에게 전달되어야 한다. 새 규칙을 읽을 수 있다는 사실에 더해 무엇을 보호하며 어떤 예외에서 다시 판단해야 하는지 설명할 수 있는지를 확인한다. 매 사이클 문서 하나를 더 만드는 것을 개선의 필수 산출물로 삼지 않는다.

운영 효과를 비교할 때에는 실패 건수와 함께 관찰 기간, 해당 업무의 실행 기회, 실패를 수집한 방식도 남긴다. 보고 경로를 바꾸거나 일부 요청을 제외해 건수가 줄었다면 규칙의 효과와 분리한다. 같은 원인으로 분류한 사건인지도 재검토한다. 비교할 조건이 부족하면 규칙 검출의 변화와 운영 관찰을 별도 결과로 보고한다.

발견·분석·변경·평가·확대는 서로 다른 완료 상태다. 변경을 반영했지만 관찰이 남았다면 효과 검증을 대기로 표시한다. 실패가 보이지 않았어도 충분한 조건을 관찰했는지 확인한다. 실행이 줄어서 실패 건수가 줄었다면 수용 결과와 함께 해석해야 한다.

P13은 실행 한 건을 같은 자료로 재검토할 수 있는지 본다. P15는 같은 기준의 전후 결과와 정책 이력을 확인한다. 변경의 유지 비용·새 실패·판정 번복·반복 예외도 기록한다. 효과가 없거나 부작용이 크다면 되돌리거나 다른 대상을 조사할 수 있어야 한다.

원서의 불확실성과 프로세스 개선이라는 주제의 연결은 기존 공개 목차 범위다. 다음 장은 이러한 증거를 바탕으로 어떤 업무와 권한까지 자동화의 범위를 넓힐지 다룬다.

[S43] · [S59] · [S67] · [S68] · [S71]. 확인 범위와 한계는 출처 대장, 주장 유형은 자료 확인 범위에 기록한다.

원서 주제 연결: 원서 주제 연결의 범위(공개 목차 기준).

이 장의 판단을 정리하셨나요?