COCOMO
“규모와 보정계수로 공수·기간을 추정하는 비용 산정 모델.”
COCOMO란 무엇인가
COCOMO(Constructive Cost Model, 구성적 비용 모델)는 소프트웨어의 규모를 입력으로 받아 개발에 필요한 공수와 기간을 추정하는 비용 산정 모델이다. 핵심 발상은 단순하다.
프로젝트의 크기가 정해지면 그에 대응하는 노력의 양도 대략 결정되며, 거기에 프로젝트의 성격을 반영하는 보정계수를 곱해 현실에 맞는 값으로 조정한다는 것이다. 따라서 COCOMO는 규모 추정과 보정이라는 두 축으로 움직이며, 어느 한쪽이 부실하면 결과 전체가 흔들린다.
산정의 출발점을 수치로 고정해 준다는 점에서 막연한 감에 의존한 추정보다 논의의 기준을 제공한다.
규모와 비선형 관계
COCOMO가 가정하는 가장 중요한 사실은 규모가 커질수록 공수가 비례 이상으로 늘어난다는 점이다. 코드량이나 기능 규모가 두 배가 되어도 노력은 정확히 두 배에 그치지 않고 그 이상으로 증가한다.
이는 규모가 커질수록 의사소통 경로, 통합 작업, 결함 전파가 함께 늘어나기 때문이다. 작은 도구를 만드는 비용을 단순 곱셈으로 키워 대형 시스템 비용을 추정하면 거의 항상 과소 추정으로 귀결된다.
규모의 비선형성을 인정하는 것이 산정의 첫걸음이다.
세 가지 적용 모드
COCOMO는 프로젝트의 난이도와 환경 제약에 따라 적용 강도를 달리한다. 비교적 익숙하고 제약이 적은 환경, 규모가 크고 인터페이스가 복잡한 환경, 하드웨어·일정·인터페이스 제약이 동시에 강한 환경은 서로 다른 계수로 다뤄진다.
같은 규모라도 제약이 빡빡할수록 단위 규모당 들어가는 노력이 커지기 때문이다. 산정자는 자신의 프로젝트가 어느 쪽에 가까운지 먼저 판단한 뒤 그에 맞는 모드를 적용해야 한다.
모드 선택을 잘못하면 보정계수가 아무리 정교해도 결과가 어긋난다.
| 적용 모드 | 환경 특성 | 공수 강도 |
|---|---|---|
| 단순형 | 익숙·제약 적음 | 낮음 |
| 중간형 | 규모 크고 복잡 | 중간 |
| 내장형 | 제약 동시에 강함 | 높음 |
보정계수가 결정한다
규모로 산출한 기본 공수는 출발점일 뿐이며, 실제 값은 다수의 보정계수로 다듬어진다. 제품의 신뢰성 요구, 팀의 숙련도와 경험, 사용 도구의 성숙도, 일정 압박의 강도 같은 요인이 각각 노력을 늘리거나 줄인다.
동일한 규모의 시스템이라도 숙련된 팀이 검증된 도구로 여유 있는 일정에서 개발하면 공수가 줄고, 그 반대 조건에서는 크게 늘어난다. 따라서 COCOMO의 정확도는 규모 추정보다 이 보정계수를 얼마나 현실적으로 평가하느냐에 좌우된다.
계수를 낙관적으로 매기면 산정 전체가 비현실적으로 작아진다.
기능점수·맨먼스와의 관계
COCOMO는 규모를 코드량 기준으로 다루는 것이 전통이지만, 설계 초기에는 코드량을 알기 어렵다. 이때 기능점수처럼 기능의 양을 기준으로 규모를 먼저 추정한 뒤 이를 공수 산정의 입력으로 환산하는 방식이 함께 쓰인다.
산출되는 공수는 결국 맨먼스 단위로 표현되어 인력 투입 계획과 직접 연결된다. 즉 기능 규모에서 출발해 공수와 기간을 거쳐 인력 배분에 이르는 흐름 안에서 COCOMO가 다리 역할을 한다.
규모 단위가 무엇이든 비선형 증가와 보정이라는 원리는 동일하게 적용된다.
산정의 한계와 실무 활용
COCOMO는 과거 데이터를 바탕으로 만들어진 모델이므로 조직과 기술 환경이 그 가정에서 멀어질수록 오차가 커진다. 따라서 단일 추정치를 확정 비용으로 제시하기보다, 산정의 근거와 가정을 드러내는 도구로 쓰는 편이 안전하다.
산출된 공수를 자체 실적과 대조해 보정계수를 조직 맞춤으로 교정하면 정확도가 점차 올라간다. 또한 일정을 무리하게 단축하면 공수가 오히려 늘어난다는 점을 협상의 근거로 활용할 수 있다.
COCOMO의 가치는 정답을 주는 데 있지 않고, 산정을 둘러싼 합의의 기준선을 제공하는 데 있다.
관련 용어