복잡도 상승이 노력 감소를 초래한다 소프트웨어 개발 노력 예측의 역설적 관계 탐구
초록
본 연구는 COCOMO81 데이터셋에서 관찰된 ‘제품 복잡도 증가와 실제 개발 노력 감소’라는 역상관 현상이 우연이 아님을 검증한다. 복잡도가 증가하면서 노력은 감소한다는 고정 전제 하에 연관 규칙 마이닝을 적용해 유기·반드시·일반 프로젝트별로 규칙을 도출하였다. 도출된 규칙의 결과물은 주로 프로그래머·분석가 역량과 제품 규모가 복잡도와 노력 사이의 마찰 요인으로 작용함을 시사한다. 따라서 복잡도와 노력 간의 관계는 단순한 양의 상관이 아니라, 인적·프로젝트 특성에 따라 달라지는 복합적인 상호작용으로 이해해야 함을 제시한다.
상세 분석
본 논문은 소프트웨어 비용·노력 예측 모델에서 가장 핵심적인 독립 변수 중 하나인 제품 복잡도(Product Complexity)와 실제 개발 노력(Actual Effort) 사이의 관계를 재조명한다. 전통적인 COCOMO 모델은 복잡도가 증가하면 개발에 필요한 인력·시간이 비례적으로 늘어난다고 가정한다. 그러나 저자들은 COCOMO81 데이터셋을 탐색하면서 복잡도와 노력 사이에 부정적인 상관관계가 나타나는 사례를 발견했고, 이를 단순한 데이터 오류나 샘플 편향으로 치부하기엔 설득력이 부족하다고 판단하였다.
연구 방법론으로는 ‘복잡도는 증가하고 노력은 감소한다’는 고정 전제(antecedent)를 설정하고, 이를 기반으로 연관 규칙 마이닝(Association Rule Mining) 기법을 변형 적용하였다. 전통적인 연관 규칙 탐색은 빈도와 신뢰도(Confidence)를 기준으로 후보 규칙을 생성하지만, 본 연구는 전제의 고정성을 이용해 후보 후속(consequent) 변수들을 효율적으로 필터링하고, 불필요한 노이즈를 최소화하였다. 데이터는 COCOMO81의 세 가지 프로젝트 유형(일반, 유기, 임베디드)별로 분리하여 각각 독립적인 실험을 수행하였다.
실험 결과, 일반 프로젝트에서는 4개의, 임베디드 프로젝트에서는 5개의, 유기 프로젝트에서는 7개의 의미 있는 연관 규칙이 도출되었다. 규칙들의 공통된 후속 변수는 크게 두 축으로 나뉜다. 첫 번째는 인적 역량, 특히 프로그래머 역량(Programmer Capability, PC)과 분석가 역량(Analyst Capability, AC)이다. 복잡도가 높아질수록 고숙련 인력이 투입될 경우, 실제 투입된 인력·시간이 감소하는 현상이 규칙에 반영되었다. 두 번째는 제품 규모(Product Size)와 관련된 변수이다. 복잡도가 상승하면서 동시에 제품 규모가 작아지는 경우, 복잡도가 요구하는 설계·구현 작업이 상대적으로 제한되어 전체 노력 감소로 이어진다.
이러한 결과는 복잡도와 노력 사이에 ‘마찰(Friction)’ 역할을 하는 조절 변수가 존재함을 시사한다. 즉, 복잡도가 단순히 작업량을 늘리는 요인이 아니라, 고숙련 인력의 효율적 활용이나 작은 규모의 모듈화된 설계와 결합될 때 오히려 노력 감소 효과를 가져올 수 있다. 이는 기존 COCOMO 모델이 복잡도와 다른 비용 요인들을 독립적으로 고려한다는 가정에 대한 중요한 비판이며, 복합적인 상호작용을 모델링할 필요성을 강조한다.
한계점으로는 연관 규칙 마이닝이 비선형 관계나 다중 공변량 효과를 완전히 포착하지 못할 가능성이 있다. 또한 COCOMO81 데이터는 1980년대 초반 프로젝트에 기반하므로 현대의 애자일·DevOps 환경과는 차이가 있을 수 있다. 향후 연구에서는 최신 프로젝트 데이터와 머신러닝 기반 인과 추론 기법을 결합해 복잡도·인적·규모 요인의 다중 상호작용을 정량화하고, 예측 모델에 동적 가중치를 부여하는 방안을 모색할 필요가 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기