Boehm 위험 모델로 보는 소프트웨어 프로젝트 실패 요인
Boehm 위험 모델의 인력, 일정, 요구사항, 외부 의존성, 성능, 기술 난제를 프로젝트 관리 관점에서 정리한다.
2026-08-14 · 최초 발행 2025-05-23
프로젝트를 흔드는 위험은 서로 연결된다
Barry Boehm은 소프트웨어 프로젝트에서 빈번하게 나타나는 위험을 정리했다. 이 모델은 특정 방법론을 대신하기보다, 계획과 실행 과정에서 무엇을 먼저 점검해야 하는지 보여주는 위험 관리의 출발점이다. 인력 문제는 일정 압박으로, 일정 압박은 품질 저하와 요구사항 갈등으로 이어질 수 있다.
인력 공백이 일정과 품질을 동시에 무너뜨릴 때
필요한 수와 역량을 갖춘 개발자, 테스터, 기획자가 프로젝트에 충분히 배치되지 않은 상태를 말한다. 특히 핵심 역량을 가진 인력이 없거나 이탈하면 일정 지연과 품질 저하가 함께 발생하며, 남아 있는 인력의 과도한 업무 부담은 추가 이탈 가능성도 높인다.
초기 단계에서 필요한 인력 규모와 역량을 산정하고, 핵심 인력 이탈 위험을 낮출 인센티브 체계를 마련할 필요가 있다. 지식 공유 시스템으로 특정 인력 의존도를 낮추는 일도 대응 범위에 들어간다.
A사의 결제 시스템 개발 프로젝트에서는 보안 전문가가 중도 이탈해 예정된 보안 감사를 진행하지 못했다. 서비스 출시 후 심각한 보안 취약점이 발견됐고, 긴급 패치와 고객 신뢰도 하락이라는 비용을 치렀다.
낙관적인 일정과 예산이 만드는 압박
프로젝트의 규모와 복잡성에 비해 일정이나 예산이 지나치게 낙관적으로 설정되는 경우다. 경영진의 기대나 시장 압박이 현실성 없는 목표로 이어질 수 있다.
이 압박은 개발자의 소진(burnout), 품질 저하, 중요 단계의 생략과 기술적 부채 증가로 나타난다. 과거 유사 프로젝트 데이터를 바탕으로 견적을 산정하고, 일정과 예산에 버퍼를 두며, 주요 기능부터 단계적으로 구현하는 방식이 대응책이 될 수 있다.
B사의 ERP 시스템 구축 프로젝트는 경영진이 6개월 내 완료를 강제했지만 실제로는 18개월이 소요됐다. 결과적으로 예산 초과와 비즈니스 프로세스 혼란이 발생했다.
비즈니스와 어긋난 기능을 만들지 않으려면
사용자 요구사항을 잘못 이해하거나 해석해 불필요하거나 부적절한 기능을 구현하는 위험이다. 기능이 비즈니스 목표와 맞지 않으면 개발 자원은 낭비되고 재작업이 늘며, 사용자 만족도와 시스템 활용도도 낮아진다.
요구사항 명세서의 정확성과 완전성을 검증하고, 사용자가 참여하는 개발 방식을 적용하며, 프로토타입으로 조기에 피드백을 받는 과정이 필요하다.
C사의 CRM 시스템은 영업팀의 실제 업무 프로세스를 반영하지 않은 기능을 구현했다. 완성된 시스템은 현장에서 외면받았고, 결국 대부분의 기능을 재개발해야 했다.
화면 설계는 사용자의 작업 흐름을 따라야 한다
UX와 UI 요구사항을 충족하지 못하거나 사용자의 작업 흐름과 맞지 않는 화면을 설계하는 문제다. 사용성이 떨어지면 사용자 생산성이 감소하고, 교육 비용과 시스템에 대한 저항이 커질 수 있다.
UX 전문가를 초기부터 참여시키고, 사용자 중심 디자인 방법론과 반복적인 사용성 테스트를 적용해야 한다.
D사의 내부 직원용 정보 시스템은 복잡한 메뉴 구조와 비직관적인 UI 때문에 기본 작업에도 많은 시간이 들었다. 이후 사용자 인터페이스를 전면 재설계하게 됐다.
요구 범위를 넘는 구현의 비용
Gold Plating은 실제 요구사항을 넘어선 기능이나 지나치게 정교한 구현에 자원을 투입하는 일이다. 이런 개발 활동은 일정 지연과 예산 초과를 부르고, 시스템 복잡도를 키워 유지보수를 어렵게 만든다.
최소 실행 가능 제품(MVP) 관점에서 우선순위를 명확히 정하고 범위를 관리해야 한다. 정기적인 범위 검토 회의도 불필요한 확장을 막는 수단이다.
E사의 온라인 쇼핑몰 개발에서는 고객이 요청하지 않은 복잡한 추천 알고리즘을 구현하느라 핵심 기능인 결제 시스템 개발이 지연됐다. 출시 일정도 지키지 못했다.
변경 요청을 프로젝트에 반영하는 방식
프로젝트 진행 중 요구사항이 빈번하게 바뀌거나, 변경 관리 절차 없이 수정 사항을 즉시 반영할 때 발생하는 위험이다. 범위 확대(scope creep)는 일정과 예산을 초과하게 만들고, 아키텍처의 일관성과 품질에도 영향을 준다.
공식적인 변경 관리 프로세스를 두고, 변경 영향 분석과 우선순위 설정을 체계화해야 한다. 애자일 방법론은 변경에 유연하게 대응하는 방식으로 활용할 수 있다.
F사의 보험 시스템 개발에서는 규제 변화에 따른 요구사항 변경이 계속 발생했다. 체계적인 변경 관리 없이 즉시 반영한 결과, 아키텍처 붕괴와 테스트 실패가 반복됐다.
협력사 작업이 전체 일정의 병목이 될 때
외부 협력사나 벤더에 맡긴 작업이 지연되거나 품질 문제를 일으키는 경우다. 서드파티 컴포넌트 통합 과정의 문제도 여기에 포함된다. 내부 팀이 통제할 수 없는 외부 요인은 전체 일정의 병목과 불확실성으로 이어진다.
협력사를 선정할 때 충분히 평가하고 계약 조건을 명확히 해야 한다. 진행 상황을 주기적으로 모니터링하며 위험을 관리하고, 대체 방안(Plan B)을 미리 준비할 필요가 있다.
G사의 클라우드 마이그레이션 프로젝트는 외부 데이터 변환 전문업체의 지연으로 전체 일정이 3개월 연장됐고, 비즈니스 손실이 발생했다.
공급받은 컴포넌트의 한계
외부 라이브러리, API, 컴포넌트의 품질이나 기능이 부족하거나 서드파티 솔루션에서 예상하지 못한 제한사항이 나타나는 위험이다. 시스템 성능과 안정성이 떨어질 수 있으며, 대체 솔루션 탐색이나 자체 개발에 따른 추가 비용이 발생한다.
도입 전에 외부 컴포넌트를 충분히 평가하고 테스트해야 한다. 벤더 의존도를 낮출 추상화 계층을 설계하고, 라이선스와 지원 기간 같은 계약 조건도 면밀히 검토해야 한다.
H사는 오픈소스 그래프 데이터베이스를 핵심 시스템에 도입했으나 대용량 처리 시 성능 문제가 발견됐다. 결국 전체 아키텍처를 재설계해야 했다.
부하에서 드러나는 성능 요구의 공백
시스템이 요구된 응답 시간과 처리량을 충족하지 못하거나, 높은 부하에서 성능이 저하되는 문제다. 사용자 경험과 시스템 신뢰성이 떨어지고, 하드웨어 증설 같은 추가 비용도 발생할 수 있다.
성능 요구사항을 초기부터 구체화해 아키텍처 설계에 반영해야 한다. 정기적인 성능 테스트로 병목을 식별하고, 성능 튜닝을 담당할 전문 인력을 확보하는 접근이 필요하다.
I사의 실시간 주식 거래 시스템은 시장 급변 상황에서 처리 지연이 발생해 고객 손실과 대규모 보상 비용으로 이어졌다.
현재 역량을 넘어서는 기술 요구
현재 기술 수준으로 구현하기 어렵거나 팀의 기술 역량을 초과하는 복잡한 문제를 요구사항으로 잡는 경우다. 불완전한 구현은 시스템 취약점으로 이어질 수 있으며, 프로젝트 실패 위험도 높아진다.
기술적 타당성은 사전에 Proof of Concept으로 검증해야 한다. 위험을 분산하는 단계적 접근과 전문가 자문 또는 기술 파트너십도 고려 대상이다.
J사의 AI 기반 이미지 인식 시스템 개발은 너무 높은 정확도를 목표로 잡아 지속적인 기술적 난관에 봉착했다. 결국 목표 수준을 현실화해 재설계했다.
위험 관리를 프로젝트 운영에 연결하기
Boehm의 위험은 각각 따로 존재하기보다 상호 연관된다. 프로젝트 초기와 주기적인 시점에 위험을 식별하고, 발생 가능성과 영향도를 분석한 뒤 리스크 노출도(= 발생 가능성 × 영향도)에 따라 우선순위를 정해야 한다. 이후 위험 완화, 회피, 전가, 수용 중 대응 전략을 선택하고 상태를 지속적으로 추적·통제한다.
위험 관리는 문제가 발생한 뒤 해결하는 활동에만 머물지 않는다. 하나의 위험이 다른 위험을 촉발할 수 있다는 점을 프로젝트 계획과 실행에 반영하는 선제적 관리 방식이다.