27장 프로그램의 크기가 구현에 미치는 영향
목차
- 27.1 의사소통과 크기
- 27.2 프로젝트 크기의 범위
- 27.3 프로젝트의 크기가 오류에 미치는 영향
- 27.4 프로젝트의 크기가 생산성에 미치는 영향
- 27.5 프로젝트의 크기가 개발 활동에 미치는 영향
27.1 의사소통과 크기
팀원의 수가 많아질 수록 의사소통 경로는 이에 제곱에 비례해 증가한다. 팀원이 2명일 경우 의사소통 경로는 1개 뿐이지만, 3명일 경우 3개, 4명일 경우 6개, 5명일 경우 10개와 같이 기하급수적으로 증가하게 된다. 의사소통 경로가 많아질수록 의사소통에서 문제가 발생할 가능성이 커진다. 많은 팀원들간의 효과적인 의사소통을 하기 위해서 보통 문서를 통해 의사소통을 한다. 말하고 싶은 사람이 문서를 쓰고, 다른 팀원들이 이를 읽는 형태로 의사소통을 진행한다. 그럼 모든 사람들에게 이야기를 해주어야 하는 불편함을 덜 수 있다.
27.2 프로젝트 크기의 범위
팀 크기와 팀이 수행한 모든 프로젝트의 백분율
팀 크기 | 프로젝트의 백분율 |
---|---|
1-3 | 25% |
4-10 | 30% |
11-25 | 20% |
26-50 | 15% |
50+ | 10% |
팀 크기와 프로젝트에서 작업하는 전체적인 개발자의 백분율
팀 크기 | 개발자의 백분율 |
---|---|
1-3 | 5% |
4-10 | 10% |
11-25 | 15% |
26-50 | 20% |
27.3 프로젝트의 크기가 오류에 미치는 영향
프로젝트의 크기와 오류의 수는 정비례가 아니다. 프로젝트의 크기 2배로 커진다면, 오류의 수는 2배 이상으로 커질 가능성이 높다. 오류의 밀도가 높아지기 때문에, 프로젝트의 크기가 커짐에 따라 오류를 찾는데 더 많은 노력이 필요하다.
27.4 프로젝트의 크기가 생산성에 미치는 영향
작은 프로젝트일수록 한 명의 개발자가 작성하는 코드의 줄수가 증가한다. 이는 프로젝트가 작을수록 생산성이 증가한다는 뜻이다.
27.5 프로젝트의 크기가 개발 활동에 미치는 영향
프로젝트의 크기가 커지면서, 전체 프로젝트에서 구현의 비율을 줄어든다. 이는 구현해야할 양이 줄어든다는 뜻이 아니라, 구현 외의 작업이 지수적으로 증가한다는 뜻이다. 구현작업은 프로젝트의 크기에 정비례하지만, 통합과, 아키텍처를 설계하는 작업이 지수적으로 증가하기 때문에, 전체 프로젝트 비율 중 구현의 비율을 줄어들게 된다.
프로젝트의 크기가 증가함에 따라 선형 비율 이상으로 증가하는 활동 목록
- 의사소통
- 계획 수립
- 관리
- 요구사항 개발
- 시스템 기능 설계
- 인터페이스 설계와 명세
- 아키텍처
- 통합
- 결함 제거
- 시스템 테스트
- 문서 제작