프로젝트
- 특정 기간 내, 특정 목적을 위해 하는 일련의 행위
- 일상 생활과는 구분되는 유일한 제품이나 서비스를 만들기 위해 수행되어야 할 일시적인 행동
프로젝트의 성공 vs 실패
(1) 어떤 프로젝트가 성공?
- 실현 가능한 구체적 계획
- 명확한 기술 사항
- 원활하고 체계적인 의사소통
- 효과적인 팀워크
- 정교한 비용 및 일정 제어
- 신속한 의사결정
(2) 어떤 프로젝트가 실패?
- 프로젝트의 수행에 필요한 지식이 없거나,
- 프로젝트를 효과적으로 수행하고자 하는 의지가 없어서
프로젝트의 성공 요소 : 일정(Time), 비용(Cost), 품질(Quality)
국내 프로젝트의 현실
- 명확하지 않은 요구사항과 잦은 변경
- 프로세스와 방법론의 부재로 일정 지연 및 비용 초과
- 열약한 개발자 처우
소프트웨어 프로젝트 : 발주자(고객)가 요구사항을 제공하면, 수주자(개발자)가 요구사항에 맞는 SW를 개발하는 프로젝트
- 발주자는 개발을 의뢰하는 조직 또는 개인, 수주자는 의뢰를 받는 조직 또는 개인이다.
- 발주자는 (1) SW제품을 구상하고 가치를 검증, (2) 투자 대비 효과를 예측, 사업 영향 파악, (3) 요구사항들을 정의
- 발주자(고객)는 소프트웨어 제안 요청서 (RFP:Request for Proposal) 배포
(프로젝트 명, 프로젝트 목적, 프로젝트 결과물, 프로젝트 내용, 기간, 비용, 일정 등)
- 개발 회사들(수주자)은 발주자에게 제안서 제출
- 입찰 → 제안서 심사(수주자 선정) → 계약서 작성(계약 체결, 총무팀) → 프로젝트 시행 및 수행 → 프로젝트 종료 및 제품 인도
프로젝트 관리 : 요구사항을 만족시키기 위해 지식, 기술, 도구 및 방법을 프로젝트 활동에 적용하는 것

- PMBOK(Project Management Body of Knowledge) : 국제 프로젝트 관리 협회(PMI)에서 발행, 배포한 관리 지침서
- 프로젝트 관리 대상 : 고객, 참여자, 관리자, 비용, 기간, 기술, 목표
- PMBOK의 프로젝트 관리 영역
통합 관리, 범위 관리, 일정 관리, 비용 관리, 품질 관리, 인적자원 관리, 의사소통 관리, 위험 관리, 조달 관리
참조 모델
CMM 등장 배경
- 프로젝트의 실패 원인은 프로젝트 관리의 문제
- SEI(카네기멜론 대학, 소프트웨어 공학 전문연구소)에서 개발 조직 프로세스의 성숙도에 따라 점진적 개선을 제시하는
SW-CMM(Software Capability Maturity Model, 조직 능력 성숙도 모델)을 개발
- 성숙도가 높은 조직이 낮은 조직보다 높은 품질의 SW를 생산할 수 있음
CMMI의 등장 배경
- 모델들을 통합, 정리하여 ISO15504와 호환 가능한 통합 모델인 CMMI(Capabiliry Maturity Model Integration) 발표
성숙도 낮은 조직
- 프로세스 즉흥적으로 만들어짐
- 그때 그때 발생하는 문제 해결에만 관심
- 일정과 비용이 항상 초과
- 일정을 맞추기 위해 기능과 품질을 희생
- 품질 평가 위한 객관적 근거가 없다
성숙도 높은 조직
- 제도화된 프로세스가 준수된다
- 프로세스가 구성원들에게 정확하게 전달됨
- 작업이 프로세스에 따라서 수행되고, 역할과 책임이 명확하다
- 제품의 품질과 고객의 만족도를 측정한다
- 품질 평가 및 문제 분석에 객관적 정량적 근거가 존재
- 프로세스 지원 기반 구조가 존재
CMMI 모델 표현
(1) 단계적 표현(Staged Representation) : ML5, ML4, ML3, ML2, ML1
- 전반적인 수준을 나타냄 (레벨 별로 준수해야 하는 수준이 존재한다)
- ML = Maturity Level
(2) 연속적 표현(Continuous Representation)
- 해당 조직의 개별 활동의 수준, 각 PA별 Capability
- PA = Process Area (개별 활동)
CMMI 5단계 프로세스 성숙도

Level 1: 초기(Initial)
- 통제되지 못하며, 경험 많은 관리자나 뛰어난 개발자에 의해 성공이 좌우
- 능력은 조직이 아닌 개인의 특성
Level2: 관리(Managed)
- SW의 크기, 비용, 일정, 자원, 위험, 기능을 추적할 수 있는 단계
- 중간 산출물 통제 가능
- 새로운 프로젝트 계획 및 관리가 이전에 성공한 프로젝트에 근거하여 이루어짐
- 유사한 응용 분야에서 성공 반복 가능
Level3: 정의(Defined)
- 조직 전체 문서화, 통합
- 프로세스 활동에 대한 책임이 있는 팀(EPG: Engineering Process Group)이 구성
- 각 프로젝트는 조직의 표준 프로세스를 기반으로 함
Level4: 정량적 관리(Quantitatively Managed)
- 계량적인 품질 목표가 설정됨
- 모든 활동에 대한 생산성과 품질일 측정됨
- 성과의 변동을 계량적인 범위 내로 최소화하여 통제 수행
Level5: 최적화(Optimizing)
- 지속적인 프로세스 개선
- 프로세스에 대해 비용/효과 분석
- 얻어진 교훈이 전 조직에 확산
ISO 12207 (국제 표준 문서)
- 개발을 위한 일관적이고 체계적인 프레임워크 제공하는 프로세스 표준화 모형
- 기본 프로세스(Primary Process): 주요 프로세스들 (획득, 공급, 개발, 운영, 유지보수)
- 지원 프로세스(Supporting Process): 기본 프로세스 보조 역할 프로세스 (문서, 품질 보증, 감사, 문제해결)
- 조직 프로세스(Organizing Process): 전 생명 주기에 걸쳐 프로젝트 관리하는 프로세스 (기반구조 개선, 인력훈련)