너희가 프로젝트를 아느냐?

너희가 프로젝트를 아느냐? – 3. 프로젝트의 크기가 미치는 영향

글쓰는 프로그래머 2009. 11. 25. 09:11

목차

0. 들어가며

1. 프로젝트 예측

2. Mythical Man-Month

3. 프로젝트의 크기가 미치는 영향

오류에 미치는 영향
생산성에 미치는 영향
개발활동에 미치는 영향
그외 미치는 영향

4. 프로세스에 대한 오해

5. 프로젝트 생산성

6. 진정 하고 싶은 말

7. 인용 자료

 

프로젝트의 크기가 미치는 영향


프로젝트가 커질수록 필요한 비용 – Man-Month 등 – 에 대해 영향이 있을 뿐 아니라 오류, 생산성, 개발활동 등에도 영향을 미치게 된다.

오류에 미치는 영향

프로젝트의 크기가 증가할수록 개발이 아닌 요구사항과 설계상의 오류가 증가하게 된다.

그림 10 프로젝트의 크기와 오류가 발생하는 단계 (McConnel, Code Complete, 2004, p. 895)

프로젝트의 크기는 오류가 발생하는 위치에 영향을 줄 뿐 아니라 단위 코드당 발생하는 오류의 개수에도 영향을 준다. 즉, 프로그램의 사이즈가 2배가 되면 프로그램의 오류 개수는 2배 이상이 된다.

그림 11 프로젝트의 크기와 단위 코드당 오류의 개수 (McConnel, Code Complete, 2004, p. 896)

생산성에 미치는 영향

작은 프로젝트(2,000줄 이하)에서는 개발자의 능력이 생산성에 가장 큰 영향을 미치지만 프로젝트의 크기가 증가할수록 팀의 크기와 조직이 생산성에 더 많은 영향을 미친다. (Jones, Estimating Software Costs, 1998)

생산성은 프로젝트의 성격, 개발자의 능력 등 수많은 요인에 영향을 받기 때문에 통계적 수치를 일반화 할 수 없다. 그러나 그림 12이 보여주는 경향, 즉 작은 프로젝트가 큰 프로젝트에 비해서 생산성이 높을 수 있으며, 작은 프로젝트에서의 생산성을 기준으로, 큰 프로젝트를 단순히 산정-예컨대, 프로젝트의 크기가 2배가 되면 프로그래머도 2배로 한다 – 할 수 없음을 이해해야 한다.

그림 12 프로젝트의 크기와 생산성 (McConnel, Code Complete, 2004, p. 897)

개발활동에 미치는 영향

프로젝트의 크기가 변화함에 따라 프로젝트 내에서의 각 단계별 활동 비율도 변화하게 된다.

소규모 프로젝트에서는 가장 크던 개발과 디버깅, 단위 테스트, 상세 설계의 비중이 규모가 커질수록 작아지고 아키텍처와 통합, 시스템 테스트의 비중이 확대되어 간다.

그림 13 프로젝트 크기와 개발활동 비율 (McConnel, Code Complete, 2004, p. 898)

그 외 미치는 영향

프로젝트의 크기가 증가함에 따라 선형적으로 증가하리라고 예상했던 많은 작업들이 우리의 생각과는 다르게 그림 14와 같이 기하급수적으로 증가하게 된다. 다음은 기하급수적으로 증가하는 작업의 목록의 예시이다.

의사소통 / 계획 수립 / 관리 / 요구사항 개발 / 시스템 기능 설계 / 인터페이스 설계와 명세 / 아키텍처 / 통합 / 결함 제거 / 시스템 테스트 / 문서 제작 (McConnel, Code Complete, 2004, p. 899)

그림 14 프로젝트 크기와 노력 (McConnel, Code Complete, 2004, p. 899)


목차

0. 들어가며

1. 프로젝트 예측

2. Mythical Man-Month

3. 프로젝트의 크기가 미치는 영향

오류에 미치는 영향
생산성에 미치는 영향
개발활동에 미치는 영향
그외 미치는 영향

4. 프로세스에 대한 오해

5. 프로젝트 생산성

6. 진정 하고 싶은 말

7. 인용 자료