프로젝트 관리
Preface
프로젝트 관리에 관한 공부를 하며 한 가지 의문점이 생겼다.
"우리나라는 왜 독자적인 관리 체계를 형성하지 않고 외국에서 연구·개발된 사례를 그대로 적용시켜 사용할까?"

물론 소프트웨어 공학이란 학문의 역사가 매우 짧다는 것과, 우리나라만의 독자적인 관리 체계를 형성한다는 것이 결코 쉬운 일이 아니라는 것은 잘 알고 있으며, 소프트웨어 분야에서 선두주자로서의 역할을 톡톡히 한 외국의 관리 체계를 따르는 것이 옳지 않다는 것은 아니다.
즉, 라면계의 부동의 1티어인 신라면을 매워서 못먹는 사람들이 있듯, 아무리 잘 짜여진 학설이라도 주어진 상황과 환경에 따라 적용 여부가 달라질 수도 있다는 것이다.
외국의 관리 체계를 있는 그대로 따라하기 보단 우리나라 기업의 특성에 맞게 재단하여 적용시킨다면 더욱 빠른 발전을 도모할 수 있지 않을까??
막상 글을 적고 보니 실무 경험이란 1도 없고 이제 막 소프트웨어 공부를 시작한 사람이 이런 주장을 펼치는 것은 내가 봐도 우스운 일이다.
혹시라도 누군가 이 글을 보게 되더라도 필자의 지극히 개인적인 생각이니 가볍게 웃고 넘어갔으면 한다..
프로젝트 : 특정 제품이나 서브시 혹은 결과물을 효과적으로 얻기 위한 사업
① 뚜렷한 목표
② 명확한 시작일과 종료일
③ 점진적으로 구체화
PMI (Project Management Institute) : 프로젝트 관련 국제 기구
PMBOK (Project Management Body Of Knowledge) : 프로젝트 관리 지식 체계
PDCA (Plan Do Check Action) : 관리 사이클
PMO (Project Maanagement Office) : 프로젝트 관리 전문 조직
1. 프로젝트 관리
- 관리 : 유용성과 효율성을 높여 이익을 창출하는 것
- 프로젝트 관리 : 일정 기간 내에 적절한 비용으로 개발 전 과정을 지휘 및 통제하는 활동
- PDCA (Plan Do Check Action) : 관리 사이클
2. 프로젝트 프로세스
- 프로젝트 수행에 요구되는 자원을 적절히 활용하기 위한 과정을 확립하는 것이다.
① 제품 개발 프로세스(개발 라이프 사이클)
② 프로젝트 관리 프로세스(보호 프로세스)
- 프로세스 : 투입물(입력물)을 받아 가공 처리하여 새로운 결과물을 만드는 변환 과정
- 프로세스 ITO (Input, Tools and Techniques, Outputs) 구조
① 입력물 (Input)
② 도구와 기법 (Tools andTechniques)
③ 산출물 (Outputs)
- 레벨화(계층화) : 큰 프로세스에 계층적 배열을 두어 서로의 종속 관계를 표시하는 것
- PMBOK 가이드라인의 프로젝트 관리 프로세스 카테고리
① 착수(초기화) : 프로젝트 목표 규정, 노력 및 기간 추정
② 기획 : 팀 구성, 계획 수립, 사람 및 자원 할당 → 프로젝트 관리의 핵심
③ 실행(수행) : 진행과정 관리, 중요 진행과정 이정표(milestone)를 이해관계자에게 전달
④ 감시 및 통제 : 각 단계 모니터링, 문제 및 변경 발생시 통제
⑤ 종료 : 프로젝트 완료, 공식적인 결과물을 인계하며 수행과정 평가
착수 → [기획 → 실행] → 종료
- 착수 프로세스 그룹 : 프로젝트 시작을 공식적으로 승인받기 위한 활동을 수행하는 그룹
① 프로젝트 헌장 개발 + 이해관계자 식별
② 프로젝트 헌장이 문서화 되고 승인되어야 공식적으로 프로젝트 인정
③ 스폰서(슈퍼 갑) : 프로젝트 헌장을 작성하는 사람
→ 실무에선 융통성 있게 조절
- 기획 프로세스 그룹 : 목표 달성을 위해 요구되는 활동을 계획하는 그룹
① 프로젝트 관리 계획서 작성
② 상호 의존도 ↑
- 실행 프로세스 그룹 : 프로젝트 관리 계획서에 정의된 작업을 수행하는 그룹
- 감시 및 통제 프로세스 그룹 : 진행 중인 프로젝트 상태를 지속적으로 파악 및 감시하며, 관리 계획과 성과 기준선을 비교하여 평가하는 그룹
- 종료 프로세스 그룹 : 프로젝트를 공식적으로 종료하기 위한 활동을 수행하는 그룹
→ 가장 중요하며 우선시되어야 하는 것은 고객의 공식 승인을 획득하는 것
- PMI의 PMBOK에서 분류한 프로젝트 관리 지식 영역(project management knowledge area)
① 통합 관리 : 프로젝트 헌장 개발, 프로젝트 관리 계획서 개발, 프로젝트 종료 프로세스
② 범위 관리 : 요구사항 수집, 범위 정의, 작업 분류체계(WBS) 작성
③ 시간 관리 : 활동 기간 산정, 일정 개발
④ 원가 관리 : 원가 산정, 예산 결정, 원가 통제
⑤ 품질 관리 : 품질 계획, 품질 보증, 품질 통제
⑥ 인적자원 관리 : 인적자원 계획, 팀 확보, 팀 개발, 팀 관리
⑦ 의사소통 관리 : 의사소통 계획, 정보 배포, 진척도 및 성과보고
⑧ 리스크 관리 : 리스크 관리 계획, 리스크 식별, 리스크 감시 및 통제
⑨ 조달 관리 : 조달 계획 수립, 조달 수행, 조달 관리
⑩ 이해관계자 관리 : 이해관계자 규명 및 분석, 관리 전략 개발

3. 프로젝트 관리자(PM)
- 프로젝트 목표 달성에 최종적으로 책임이 있는 사람이자 팀의 통솔자이다.
- 요구 능력 : 지도력, 협상력, (의사소통, 문제 해결, 조직 기술, 예산 편성) 능력 등
4. 소프트웨어 프로젝트 관리
- 소프트웨어 품질과 생산성에 영향을 주는 3대 요소
① 사람(People)
② 문제(problem)
③ 프로세스(process)
→ 3P라고 부름
- 주문형 소프트웨어 : 특정 기업 또는 조직의 요구에 의해 개발된 소프트웨어
- 의뢰자 = 클라이언트 = 스폰서 → '갑'의 위치
- 내부 프로젝트 : 착수자가 문제 정의서(설명서)를 작성하여 제공 (입찰 과정 X)
→ 다수의 사용자를 위해 상품으로 개발된 패키지 소프트웨어 등
5. 소프트웨어 프로젝트 프로세스
- 프로세스 : 프로젝트를 성공적으로 수행하기 위해 요구되는 순서 및 절차
- 프로젝트 생명 주기 : 프로젝트 진행의 모든 과정 및 단계
- 소프트웨어 제품 개발 프로세스 = 개발 라이프 사이클
① 액티비티(avtivity) : 각 단계의 프로세스
② 각 단계는 인도물(산출물)을 가지고 있음
③ 기본 액티비티 : 계획, 요구사항 분석, 설계, 구현 및 시험
④ 보호 액티비티 : 품질 보증, 형상 관리, 확인 및 검증
⑤ 태스크(task) : 액티비티의 세부 업무
→ 프로젝트 > 프로세스 > 액티비티 > 태스크
- 소프트웨어 프로젝트 관리 프로세스 : 프로젝트 전체를 통합하여 관리
참고 문헌 : 윤청, 『소프트웨어 공학 에센셜』(생능출판), 2019, p.100~121.