- 두 번째 회의부터 연동 범위는 확장됩니다. 경계가 없으면 연동할 수 있는 것은 모두 연동하자는 방향으로 흘러갑니다.
- 경계를 정한다는 것은 신규 시스템이 무엇을 모른다고 가정할 것인가를 정하는 것입니다. 이 가정이 없으면 모든 것이 1단계에 들어갑니다.
- 신규 시스템이 소유하는 데이터 목록을 계약서나 설계 문서에 명시하지 않으면 그 빈 자리는 매 회의마다 새로운 요청으로 채워집니다.
범위 확장은 두 번째 회의부터 시작됩니다
국내 중견 제조사가 ERP는 그대로 두고 MES(제조실행시스템)를 새로 도입하는 프로젝트를 시작했습니다. 첫 번째 회의에서 MES는 ERP의 수주 데이터를 받아서 생산 지시를 내린다고 합의했습니다. 두 번째 회의에서 그렇다면 ERP의 재고 데이터도 실시간으로 MES에 반영돼야 하지 않느냐는 질문이 나왔습니다. 세 번째 회의에서 ERP의 품질 데이터도 같이 연동하자는 요청이 추가됐습니다. 프로젝트 범위는 6개월 동안 세 배로 늘었고 일정은 두 번 연장됐습니다.
원인은 코드 문제도, 벤더 역량 문제도 아니었습니다. 레거시와 신규 시스템의 경계를 첫 번째 회의에서 정하지 않은 것이 원인이었습니다. 경계가 없으면 연동 가능한 모든 것이 연동해야 할 것처럼 보입니다.
Gartner (2023). How to Successfully Modernize Legacy Applications 분석에서, 레거시 통합 프로젝트의 64%가 초기 범위보다 확장됐으며, 이 중 절반 이상이 경계 정의 부재를 원인으로 꼽았습니다.
경계는 기술 결정이 아니라 사업 결정입니다
경계를 정한다는 것은 신규 시스템이 무엇을 모른다고 가정할 것인가를 정하는 것입니다. MES가 재고를 모른다고 가정하면 재고 연동은 2단계 의사결정입니다. MES가 품질을 모른다고 가정하면 품질 연동도 2단계입니다. 이 가정이 없으면 모든 연동이 1단계에 들어갑니다.
소프트웨어 설계에서는 이 개념을 Anti-Corruption Layer라고 부릅니다. 레거시 시스템의 데이터 구조와 개념을 신규 시스템 안으로 직접 들여오지 않고, 경계에서 번역하는 레이어를 두는 방식입니다. Eric Evans (2003). Domain-Driven Design: Tackling Complexity in the Heart of Software에서 제안한 이 원칙은 기술 아키텍처 규칙이지만, 경영 결정의 관점에서는 어디까지가 내 프로젝트의 책임 범위인가를 계약 수준에서 정의하는 것과 같습니다.
Ahn Partners 판단: 경계를 정하는 회의는 기술팀과 함께 해야 합니다. 그러나 경계를 승인하는 것은 경영진의 결정입니다. 기술팀은 요청이 들어올 때마다 범위를 넓히는 것이 자연스러운 대응입니다. 경계를 확정하고 지키는 것은 경영진의 역할입니다.
경계를 문서에 쓰는 세 가지 방법
첫째, 신규 시스템이 소유하는 데이터를 목록으로 정합니다. 이 목록에 없는 데이터는 레거시 시스템이 소유하며, 신규 시스템은 읽기만 합니다. 목록이 계약서나 설계 문서에 명시되면 추가 연동 요청은 목록 변경 프로세스를 거쳐야 합니다.
둘째, 레거시 데이터를 신규 시스템 화면에 직접 보여주지 않도록 설계합니다. 경계를 넘는 데이터는 반드시 변환 레이어를 통과합니다. 이 원칙이 지켜지면 추가 연동 요청이 비용과 일정으로 즉시 환산됩니다. 비용이 보이는 순간 요청의 우선순위 판단이 달라집니다.
셋째, 1단계 범위를 문서로 확정하고 이후는 별도 프로젝트로 분리합니다. 2단계 연동 요청이 들어왔을 때 1단계 완료 후에 별도 견적을 받는 절차를 처음부터 정해두십시오.
Ahn Partners 판단: 나중에 연동하면 되지 않느냐는 질문이 나오면, 나중에 연동하는 것이 지금 연동하는 것보다 얼마나 비싸고 오래 걸리는지를 계산해서 제시하십시오. 이 계산이 없으면 모든 요청이 지금 해야 할 일처럼 느껴집니다.
한 문장으로 정리하면
레거시와 신규 시스템이 연동되는 프로젝트에서 신규 시스템이 소유하는 데이터 목록을 계약서나 설계 문서에 명시하지 않으면, 그 빈 자리는 매 회의마다 새로운 연동 요청으로 채워집니다. 이번 주에 진행 중인 통합 프로젝트의 경계가 어디에 문서화돼 있는지 확인하십시오.
점검 목록
- 신규 시스템이 소유하는 데이터와 레거시 시스템이 소유하는 데이터가 문서로 구분돼 있는가
- 레거시 데이터를 신규 시스템에 연동할 때 경계를 통과하는 변환 레이어가 설계됐는가
- 1단계 범위 확정 문서가 있으며 이후 연동은 별도 프로젝트로 분리돼 있는가
- 범위 변경 요청이 들어왔을 때 비용과 일정에 미치는 영향을 즉시 계산하는 절차가 있는가

