Skip to content
isdnetworks
Go back

외주 산출물의 목적과 구성

외주로 만든 앱에 문제가 생겼는데 왜 그렇게 만들었는지 아는 사람이 없었다. 소스와 빌드 결과와 간단한 사용 설명서를 받은 것이 전부였다.

Table of contents

Open Table of contents

결과물만 받은 상태

코드를 읽으면 무엇을 하는지는 알 수 있었다. 모르는 것은 왜 그렇게 했는지였다.

상태를 몇 초마다 보내는 코드가 있는데 그 간격을 늘려도 되는지 판단할 근거가 없었다. 값이 코드에 있어도 그 값을 고를 때의 제약은 코드에 없다.

물어볼 곳이 없어졌다

계약이 끝나서 담당자가 없었고 회사에 문의하니 그 사람이 퇴사했다고 했다. 남은 것은 코드와 산출물뿐이었다.

만드는 동안에는 물어볼 수 있었고 그때가 이 정보를 얻을 수 있는 유일한 구간이었다. 결과물만 받기로 한 계약이 그 구간을 그냥 흘려보냈다.

받을 것을 미리 정한 목록

다음 외주부터는 받을 것을 미리 정했다. 소스와 빌드 배포 방법에 더해 주요 결정과 이유와 외부 의존 목록과 알려진 제약과 미해결 사항을 받기로 했다.

결정 이유는 코드만 봐서는 모를 조건 분기를 설명해 줬다. 특정 기기의 특정 판에서 카메라 초기화가 실패해 제외했다는 문장이 없으면 그 분기는 지우고 싶은 코드로만 보인다.

알려진 제약도 함께 받으니 문제로 오해할 것을 미리 알았다. 백그라운드에서 오래 두면 연결이 끊긴다는 것을 몰랐으면 버그로 보고 조사했을 것이다.

계정과 서명 키

외부 서비스 계정이 어느 쪽 소유인지도 표로 정리했다. 지도 인터페이스와 저장소와 빌드 서명 키가 외주사 소유였다.

서명 키가 가장 컸는데 그것이 없으면 갱신판을 올릴 수 없다. 계약 종료 전에 넘겨받았고 이관이 필요한 항목을 목록으로 만들어 하나씩 확인했다.

안에 아는 사람

문서를 받는 것만으로는 부족했는데 문서에 없는 것은 여전히 물어볼 수 없다. 그래서 만드는 동안 우리 쪽 한 사람이 매주 진행을 듣고 코드를 훑게 했다.

그 사람이 전부를 아는 것은 아니었지만 어디를 봐야 하는지는 알게 됐다. 인수인계 때 문서만 받지 않고 같이 처음부터 돌려 봤는데 빌드 단계에서 문서에 없는 인증서가 필요한 것이 그때 드러났다.

정리


Share this post on:

Previous Post
옮기면서 다시 짠 분류
Next Post
중간에서 멈추는 DDL 스크립트