3장. 프로젝트 관리

기타/[소프트웨어 공학]

2019. 3. 21. 21:27

 

[프로젝트의 정의]

- PMBOK : 프로젝트 관련 대표적 문서

- 프로젝트 : 유일한 제품이나 서비스를 만들기 위해 수행되어야 할 일시적인 행동

- 구성요소 : 목표, 기간, 비용, 관리자(PM), 참여자, 기술등

 

 

[소프트웨어 프로젝트]

: 조직이 요구사항에 맞는 프로그램을 획득할 필요가 생겼을때, 시중에 나와있는 소프트웨어 구입하면 되는 경우가 아니면 개발을 해야한다.

# 프로젝트에서 역할

- 발주자(고객) : 개발을 의뢰하는 조직 또는 개인

- 수주자(개발자) : 의뢰를 받는 조직 또는 개인

 

 

[소프트웨어 프로젝트 프로세스]

1) 소프트웨어 제품 구상 : 발주자가 소프트웨어 제품 구상, 검증 / 요구사항들 정의

2) 소프트웨어 제안 요청서(RFP) 배포 : 개발 회사들에게 제안서 작성위한 제안 요청서 발송 (고객이 회사가 제안서 작성할수 있게끔 제안 요청서를 발송하는것)

3) 제안서 제출 : 개발 회사가 제안서 작성해 발주자에게 제출 ex)프로젝트 개요,명,목적... (자기회사에서 어떻게 개발할것인지 발표하는것)

4) 제안서 심사 : 여러 회사의 제안서중 하나 고름

5) 계약서 작성 : 발주자와 수주자 사이에 계약 체결(법적효력 발생)

6) 프로젝트 시작 및 수행

7) 프로젝트 종료 및 제품 인도

 

 

[소프트웨어 프로젝트의 성공 요소]

: 비용 / 일정 / 품질       #3개요소다 만족하긴 어렵다.

- 프로젝트 참여자들에게 관리에 도움이 되었다고 입증된 방안을 지침서로 제공해줘 실패를 줄이도록 함(ex. PMBOK)

 

 

[소프트웨어 프로젝트의 잘못된 통념]

# 관리자의 잘못된 통념

1. "우리 팁 개발 표준을 개발자들도 다 알고 있을꺼야." : 모든 참여자들이 이해X, 표준에도 문제발생가능

2. "우리는 최신의 개발 툴이 있으므로, 프로젝트에서 성공할 것이다" : 더 많은걸 배워야함, 새 툴도입시 적응기간동안 생산성 감소

3. "개발 일정에 뒤쳐져 있는 경우에는, 개발자들을 더 투입하여 일정을 따라잡을 수 있다" : 사람 많아질수록, 작업 효율 감소

# 개발자의 잘못된 통념

1. "프로그램이 실행만 되면 우리 일은 끝"

2. "프로그램이 실행되기 전까지 품질을 소프트웨어의 품질을 평가할 수 없다"

3. "성공적인 프로젝트의 산출물은 오직 프로그램 코드뿐이다"

= 의욕이 없음

 

 

[프로젝트 관리]

: 프로젝트의 요구사항을 만족시키기위해 지식, 기술, 틀 및 기법을 프로젝트 활동에 적용하는것.

# 프로젝트 관리 프로세스

- 착수 : 새로운 프로젝트나 프로젝트 단계의 시작을 공식적으로 승인받기 위해 진행할 프로세스들로 구성

- 계획 : 프로젝트 계획서 작성, 행동방침 계획

- 실행

- 통제 : 프로젝트가 계획대로 잘 수행되는지 주기적 검토

- 종료 : 결과물 인수를 공식화

 

 

[프로젝트 관리 영역(PMBOK기준)]

- 프로젝트 통합 관리 : 계획 수립, 실행지시관리, 감시통제, 종료관리 등

- 프로젝트 범위 관리 : 범위관련

- 프로젝트 일정 관리 : 순서, 기간, 일정

- 프로젝트 비용 관리 : 자원, 비용

- 프로젝트 품질 관리 : 품질관련

- 프로젝트 인적 자원 관리 : 인적자원, 팀관련

- 프로젝트 의사소통 관리 : 의사소통, 정보, 진척등

- 프로젝트 위험 관리 : 위험관련

- 프로젝트 조달 관리 : 획득, 공급자, 계약관련

 

 

[프로젝트 성공을 돕는 지침서]

- CMMI : SEI에서 개발한 개발 조직 프로세스의 성숙도에 따라 점진적 개선을 제시하는 기준.

# 성숙도가 낮은 조직과 높은 조직의 비교

- 성숙도가 낮은 조직 특징 : 즉흥적, 그때그때문제 대처, 일정비용초과, 객관적 근거 X등

- 성숙도가 높은 조직 특징 : 확실한 역활과 책임, 일정과 비용이 실제적(전 프로젝트기반), 필요한 기반 구조 존재등

 

 

[CMMI 모델 표현]

: 단계적 표현(1~5Lv), 연속적 표현(0~4Lv) 으로 표현. 이때 단계적 표현 nLv이 연속적 표현 (n-1)lv이랑 바슷한 수준으로 알고있으면된다.

 

 

[CMMI의 5단계 소프트웨어 프로세스 성숙도(단계적 표현)]

: 각 성숙도 단계에서 체계화되는 프로세스 능력

- 1단계(초기) : 계획X, 경험많은 관리자, 개발자에 의해 프로젝트 성공 좌우됨.

- 2단계(관리) : 기본적 관리 프로세스 설정, 추적가능, 중간산출물 추적가능

- 3단계(정의) : 표준과 일관성 존재, 문서화, 통합, EPG구성 : 프로세스 활동 전담 팀

- 4단계(정량적 관리) : 3단계까지 수집한 데이터 근거로, 관리하다가 이상점 발생시 조치를 취함.

- 5단계(최적화) : 4단계 + 프로세스 개선을 위한 연구 지속적 수행

 

 

[ISO 12207]

: 소프트웨어 생명주기 공정 표준

# ISO 12207의 구성

1. 기본 생명주기 프로세스 : 소프트웨어 획득, 공급, 개발 ,운영 , 유지보수에 대한 활동 정의

2. 지원 프로세스 : 기본프로세스 보조역할 / 문서, 품질 보증, 감사, 문제해결 활동 정의

3. 조직 생명주기 프로세스 : 전체 프로젝트 관리 역할 프로세스

 


[Summary]

1. 소프트웨어 프로젝트의 실패 요인으로는 어떤 것들이 있는가?

 : 관리자와 개발자의 잘못된 통념들

 

2. 소프트웨어 프로젝트를 성공으로 이끌기 위해서는 어떤 노력이 필요한가?

 : 프로젝트 관리에 도움이 되었다 입증된 방안을 지침서로 제공된 PMBOK 이용, ISO 표준, CMM/CMMI 등 지침서 이용해 노력해야함

 

3. 소프트웨어 프로젝트 관리에 대해 간략 설명

 : 주어진 기간과 최소의 비용으로 고객이 만족하느 소프트웨어를 제공하기 위한 여러활동

 

4. 프로젝트 관리의 대상 대표적인 3가지를 기술해라.

 : 계획관리, 품질관리, 리스크 관리

 

5. 프로젝트 관리의 구성단계 4단계를 기술하라.

 : 계획수립 -> 실행 -> 통제 -> 종료

 

6. 프로젝트 관리는 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명주기의 전 과정에 걸쳐 진행된다, 이러한 소프트웨어 프로젝트 관리가 성공적으로 수행되기 위해 반드시 알아야 할 사항을 3가지 이상 기술하라.

 : 수행작업범위, 필요자원, 수행업무, 비용, 일정등