소프트웨어 단계별 발주로 요구사항과 품질을 확보하는 방법

소프트웨어 단계별 발주제도의 선행사업과 후속사업 구분, 일괄발주의 한계, 공공 정보화사업 적용 시 관리 과제를 정리한다.

2026-08-14 · 최초 발행 2025-05-23

구현 전에 사업 범위를 다루는 발주 방식

소프트웨어사업의 단계별 발주제도는 개발사업을 분석·설계 단계와 구현·시험 단계로 나누어 발주하는 방식이다. 요구사항 분석부터 기본설계까지는 선행사업으로 수행하고, 상세설계·구현·테스트·인수는 후속사업으로 진행한다.

이 제도는 기존 일괄발주가 안고 있던 요구사항 불명확성과 설계 품질 문제를 줄이고 소프트웨어 품질을 높이기 위해 도입됐다. 법적 근거는 소프트웨어산업 진흥법 제20조의2의 소프트웨어사업 과업범위이며, 국가기관·지방자치단체·공공기관이 발주하는 소프트웨어 개발사업이 적용 대상이다.

일괄발주에서 시작되는 불확실성

일괄발주에서는 사업 초기에 요구사항을 충분히 정의하기 어렵다. 개발이 진행된 뒤 요구사항이 바뀌면 비용과 일정이 함께 늘어난다.

분석과 설계에 시간과 자원이 충분히 배정되지 못하고 구현 중심으로 사업이 흘러가면 설계 품질도 낮아진다. 이때 발주자가 기대한 요구사항과 실제 개발 결과물의 불일치가 발생할 수 있으며, 대규모 프로젝트일수록 실패 위험도 커진다. 요구사항이 불명확한 상태에서는 정확한 비용 산정이 어렵고, 사업 중 추가 비용이 발생하기 쉽다.

선행사업의 산출물이 후속사업의 출발점이 된다

선행사업은 요구사항 분석과 기본설계를 다룬다. 사용자 요구사항을 상세히 정의하고 기능·비기능 요구사항을 명세하며, 시스템 아키텍처·데이터베이스·인터페이스를 설계한다. 이 과정의 결과물은 요구사항 정의서, 기본설계서, RFP 작성에 필요한 자료다.

후속사업은 상세설계부터 구현, 테스트, 인수까지 맡는다. 상세 설계와 프로그램 구현을 수행하고 단위·통합·시스템 테스트, 사용자 교육과 인수를 진행한다. 상세설계서, 소스코드, 테스트 결과서, 사용자 매뉴얼이 주요 산출물로 남는다.

선행사업에서 확정한 요구사항과 기본설계는 후속사업 범위를 설정하는 기준이 된다. 따라서 두 사업을 나눈다고 해서 각각을 독립적으로 관리할 수 있는 것은 아니다.

품질과 경쟁 기회를 함께 확보하는 효과

단계별 발주는 선행사업에서 요구사항을 충분히 분석하고 정의할 여지를 만든다. 이해관계자 사이에서 요구사항에 대한 공통 이해를 형성할 수 있다는 점도 핵심이다.

분석과 설계에 필요한 시간과 자원을 투입하면 설계 품질을 확보할 수 있고, 이는 전체 시스템 품질 향상으로 이어진다. 대규모 사업의 위험을 단계별로 나누어 관리하고, 선행사업 결과물을 바탕으로 후속사업의 범위를 보다 정확히 정할 수 있다.

요구사항과 설계가 명확해지면 비용 산정도 정확해지고 개발 중 변경 요청이 줄어 추가 비용 절감에 도움이 된다. 다양한 업체가 사업에 참여할 기회가 넓어지며, 중소기업의 참여 가능성도 커진다.

분리된 계약 사이에서 관리해야 할 문제

발주 절차가 두 번 진행되므로 전체 사업기간은 늘어날 수 있다. 행정 절차 증가에 따른 시간도 고려해야 한다.

선행사업과 후속사업의 연계성을 보장하는 일도 중요하다. 사업자가 달라질 경우 선행 단계의 지식과 의사결정 맥락이 후속 단계로 제대로 전달되지 않을 수 있다. 같은 이유로 결함이 발생했을 때 책임 소재와 원인을 규명하기 어려워질 수 있다.

다년도 예산 확보의 어려움과 단계별 예산 관리의 복잡성도 남는다. 발주자는 선행사업 결과물을 검토할 기술적 지식과 사업관리 역량을 갖춰야 한다.

공공 정보시스템에서의 적용 모습

공공기관 정보시스템 개발 사례에서는 선행사업을 6개월 동안 수행하고 총 예산의 30%를 투입했다. 요구사항 분석, 기본 설계, 데이터 모델링을 진행했으며 요구사항 정의서, 기본 설계서, 데이터 모델을 결과물로 만들었다.

후속사업은 12개월 동안 총 예산의 70%를 사용해 상세 설계, 개발, 테스트, 배포를 수행했다. 시스템 구현, 테스트 결과, 사용자 매뉴얼이 결과물이었다. 이 사례에서는 요구사항 변경이 일괄발주 대비 40% 감소했고, 결함은 30% 감소했으며 사용자 만족도가 증가했다.

국가 핵심 시스템 구축 사례에서는 선행 단계에서 ISP(정보화 전략 계획)와 기본설계를 수행했다. 주요 기능 정의, 아키텍처 설계, 데이터 표준화를 거친 뒤 실제 구현과 운영을 진행했고, 후속 단계에서는 모듈별 개발·단계적 구축·통합 테스트를 수행했다. 초기 분석과 설계를 강화해 재작업을 줄이고, 명확한 요구사항에 기반한 개발로 품질을 높이며 예산 대비 효율적으로 사업을 완료했다.

선행사업을 문서 작업으로 끝내지 않는 운영

선행사업에서는 요구사항 분석에 충분한 시간과 자원을 투입하고, 이해관계자의 참여를 강화해 요구사항을 명확히 해야 한다. 산출물은 후속사업자가 필요한 정보를 얻을 수 있을 만큼 상세해야 하며, 문서화 표준 준수와 품질 검토가 필요하다.

사업 연속성을 위해 선행사업자의 후속사업 참여 방안을 검토할 수 있고, 사업자가 달라지는 경우에는 체계적인 지식 전달 절차를 마련해야 한다. 계약에는 책임 범위와 조건을 명확히 두고, 사업관리와 변경 통제 절차를 운영해야 한다.

발주 담당자의 기술 역량을 높이고 외부 전문가를 활용한 감리·검토 체계를 갖추는 것도 발주자 측의 과제다.

사업 특성에 맞춰 확장되는 발주 모델

사업 특성에 맞는 유연한 발주 모델을 마련하고 애자일 방법론과 결합하는 방안을 모색할 수 있다. 행정 절차를 간소화해 사업기간을 줄이고, 디지털 도구로 산출물을 관리·공유하는 방식도 효율성 향상에 도움이 된다.

공통 아키텍처와 표준 프레임워크를 활용하면 재사용성을 높여 개발 효율성을 높일 수 있다. 결과물의 품질과 성과를 기준으로 계약을 구성하고, 인센티브 제도로 품질 향상을 유도하는 방식도 발전 방향에 포함된다.

단계별 발주는 기술적 구현만으로 해결하기 어려운 공공 정보화사업의 품질 문제를 발주 구조에서 다루는 접근이다. 선행사업과 후속사업의 분리를 실질적인 품질 향상으로 연결하려면 발주자 역량, 산출물 관리, 사업 연속성을 함께 갖춰야 한다.

단계별 발주공공SW사업요구사항 관리소프트웨어 품질사업관리