운영 중인 시스템을 넘겨받았는데 만든 사람들은 이미 없었다. 문서가 몇 개 있지만 언제 쓴 것인지도 지금 맞는지도 알 수 없었다.
Table of contents
Open Table of contents
문서보다 먼저 센 것
가장 먼저 한 것은 지금 실제로 돌고 있는 것을 세는 일이었다. 문서에 무엇이 적혀 있든 돌고 있는 것이 사실이기 때문이다.
프로세스 목록과 스케줄 등록과 열린 포트와 나가는 연결 넷이 시스템의 실체였다. 세어 보니 문서에 없는 것이 돌고 있었고 문서에 있는 것이 안 돌고 있었다.
문서를 세 부류로 나눈 기준
받은 문서를 읽으면서 지금도 맞는 것과 낡은 것과 판정 불가로 나눴다. 구조 설명과 배포 절차는 확인해 보니 맞았고 없어진 기능과 바뀐 경로는 표시해 두고 믿지 않았다.
가장 많은 것이 판정 불가였고 그것이 가장 아쉬웠다. 왜 이렇게 만들었느냐에 해당하는 것들은 확인할 방법 자체가 없었다.
모른다를 적어서 남긴다
이유를 알 수 없는 코드가 여럿 있었는데 대기를 넣은 자리가 대표적이었다. 지우면 이유가 있었을 때 사고가 나고 그냥 두면 다음 사람도 같은 고민을 반복한다.
그래서 남기되 이유를 확인하지 못했다는 사실과 제거 전에 무엇을 실측해야 하는지를 주석에 적었다. 모른다를 적는 것도 정보이고 그것이 없으면 다음 사람이 확인된 필요로 오해한다.
데이터가 증언하는 것
코드로 안 풀리는 것은 데이터를 봤다. 어떤 값이 실제로 쓰이는지는 분포로 알 수 있고 언제부터 안 쓰이는지는 마지막으로 채워진 시각으로 알 수 있다.
이 컬럼은 안 쓰는 것 같다는 말을 확인하는 방법이 그것이었다. 마지막 기록이 몇 해 전이면 지금은 안 쓰는 것으로 봤다.
이해 순서와 다음 사람을 위한 기록
전부 이해하려면 끝이 없어서 되돌릴 수 없는 것과 자주 도는 것과 비용이 나가는 것 순으로 봤다. 나머지는 필요할 때 보기로 하고 넘겼다.
운영 메모에는 모른다와 정상이다를 둘 다 적었는데 앞은 조사 대상이고 뒤는 조사 안 해도 되는 것이다. 조사 안 해도 된다는 표시가 생각보다 큰 도움이 되는데 그게 없으면 다음 사람이 같은 것을 다시 파본다.
정리
- 문서보다 지금 돌고 있는 것이 사실이다
- 프로세스와 스케줄과 포트와 나가는 연결을 먼저 센다
- 문서를 맞는 것과 낡은 것과 판정 불가로 나눈다
- 이유를 모르는 코드는 지우지도 두지도 말고 모른다를 적어 남긴다
- 코드로 안 풀리면 데이터의 분포와 마지막 사용 시각을 본다
- 되돌릴 수 없는 것과 자주 도는 것과 비용이 나가는 것 순으로 본다
- 다음 사람을 위해 모른다와 정상이다를 둘 다 적는다
- 조사 안 해도 된다는 표시가 반복 조사를 막는다