- 인수인계 문서로는 넘어가지 않습니다. 문서에 없는 것을 만나고, 없는 것은 항상 있습니다.
- 운영 담당자가 마지막 한 달을 개발팀 자리에 앉아 있게 했습니다. 그 한 달에 난 장애 두 번이 문서 백 장보다 컸습니다.
- 인수 완료 기준은 문서 제출이 아니라 운영팀이 개발팀 도움 없이 장애 하나를 처리하는 것입니다.
문서를 쓰는 쪽을 바꿉니다
만든 팀과 운영할 팀이 다르면 인수인계 문서로는 넘어가지 않습니다. 문서를 아무리 잘 써도 운영팀은 결국 개발팀에 계속 묻게 됩니다.
문서에 없는 것을 만나기 때문입니다. 그리고 없는 것이 항상 있습니다.
저는 순서를 바꿨습니다. 문서를 개발팀이 쓰지 않고 운영팀이 쓰게 했습니다. 운영팀이 쓰고 개발팀이 틀린 곳을 고칩니다.
개발팀이 쓰면 아는 것을 적지 않습니다. 자기한테 당연한 것은 보이지 않습니다. 운영팀이 쓰면 모르는 것이 그대로 드러납니다.
마지막 한 달을 같이 앉습니다
운영 담당자가 개발팀 자리에 와서 한 달을 보냈습니다. 회의도 같이 들어갔습니다.
그 한 달에 실제 장애가 두 번 났습니다. 두 번 다 운영 담당자가 손을 대고 개발자가 옆에서 봤습니다. 문서 백 장보다 그 두 번이 컸습니다.
장애는 예정에 없이 나는데, 마지막 한 달을 잡아 두면 대개 한두 번은 만납니다. 나지 않으면 지난 장애 기록을 꺼내 재현했습니다.
재현이라도 해 보면 손이 기억합니다. 인수 기간에 운영팀 인원을 두 명 넣었습니다. 한 명이면 그 사람이 나갈 때 다시 원점입니다.
완료 기준을 행동으로 잡습니다
인수 완료 기준을 문서 제출로 잡지 않았습니다. 운영팀이 개발팀 도움 없이 장애 하나를 끝까지 처리하면 완료입니다.
기준을 문서로 잡으면 문서만 나옵니다. 기준을 행동으로 잡으면 행동이 나옵니다.
이 기준을 프로젝트 계약서에 넣었습니다. 넣지 않으면 개발팀은 납품일에 손을 뗍니다.
그리고 인수 기간을 개발 일정 안에 미리 넣었습니다. 뒤에 붙이면 일정이 밀렸을 때 제일 먼저 잘립니다. 앞에서 잡아 두면 잘리지 않습니다.
개발팀이 없을 때
이 방식에도 한계가 있습니다. 외주 개발이면 마지막 한 달을 사기 위해 돈을 더 써야 합니다. 계약할 때 그 비용을 넣어야 합니다. 나중에 요청하면 추가 비용이 훨씬 큽니다.
그리고 개발팀이 해체된 뒤에 넘겨받는 경우가 있습니다. 그때는 이 방법을 쓰지 못합니다. 그런 상황이면 문서를 받지 말고 시간을 받는 편이 낫습니다.
개발자 한 명과 두 시간 통화하는 것이 문서 오십 장보다 낫습니다. 통화 내용은 녹음해서 운영팀이 다시 듣게 했습니다.
개발팀이 남긴 문서와 운영팀이 쓴 문서를 둘 다 보관했습니다. 두 문서가 다른 곳이 실제로 위험한 지점이었습니다. 외주로 만든 시스템을 넘겨받는 이야기는 외주 시스템의 운영 실패에서 이어집니다.
점검 목록
- 운영 문서를 받는 쪽이 쓰고 있는가
- 인수 기간이 개발 일정 안에 들어가 있는가
- 인수 완료 기준이 문서가 아니라 행동으로 정해져 있는가

