📎 소프트웨어공학적 방법으로 개발과 프로그램을 작성해서 개발의 차이점
: 관리된 절차를 따르는 것과 개발자의 전문성(능력)에 의존
1) 정해진 일정 내에 전달 (일정)
2) 주어진 예산 내에서 완성 (예산)
3) 요구한 품질을 만족 (품질)
4) 잘 기능하는 팀 유지 (팀 관리)
- 소프트웨어를 개발하는 것은 사람에 의존하기 때문에 일관성있는 팀 유지가 필요
SW 프로젝트 관리 단계의 기본적인 활동
1) 프로젝트 계획 (비용, 스케줄)
2) 팀 관리
3) 리스크 관리
⭐️RFP (Request for proposal, 제안 요청서) : 소프트웨어 주문 고객이 작성한 문서
-> 이 문서에 맞게 프로젝트 계획서 작성
📎 의의
: 맞지 않을 가능성은 있지만 프로젝트 진행에 있어 가이드를 위한 기준으로 삼을만한 비용 예측
📎 방법
1) 경험 기반
2) 비용 모델 알고리즘 : 정해진 공식으로 계산
: 초기 버전
📎 기본 아이디어
Effort(Man-month) = A x SIZE^B x M
📎 문제점
1) SIZE를 추정 할 수 없다. (아직 개발 단계 전이므로)
2) B,M의 값을 정할 때 주관이 개입한다.
3) 프로그래밍 언어에 따라 코드의 라인이 달라진다.
4) 팀의 퍼포먼스(개발 역량 등)에 따른 비용 조절 어려움이 있다.
핵심 아이디어: 개발이 진행됨에 따라 공식을 다르게 적용하여 SIZE 정보 대체
📎 단계
1) 응용합성/프로토타입 단계 : 스크린 개수, 출력 개수, 컴포넌트의 개수를 가지고 사이즈 결정
2) 초기 설계 : 구현해야할 기능들에 점수를 매겨 총 점수로 사이즈 결정
3) 설계 이후 : LOC 예측하여 사이즈 결정
📎 MM (Man-month) 추정
⭐️ MM = 비용 / 생산성(MM)
: 프로토타입 단계에서 사용
-> 소프트웨어 개발에 필요한 총 MM
MM = FP / 생산성
: 초기 설계 단계에서 사용
-> 기능점수를 구하여 계산
📎 소프트웨어공학백서
: 국내 SW 수준을 조사해서 기록을 남긴 것
⭐️ 기법
1) WBS (Work Breakdown Structure)
2) CPM (Critical Path Method)
3) Ghantt Chart
각 기간동안 수행할 일 정리
gray bar는 slack time(여유 기간)
📎 Chief Pragrammer Team
: chief programmer와 보조역할로 구성
📎 Egoless Team
: 모든 구성원이 동등한 위치에서 협력하고 피드백을 주고받는 구성
📎 Hierarchical Team
: 현재 SW 회사들이 취하고 있는 형태
DevOps = Development + Operations
: 개발팀과 운영팀을 합친 팀 구성
📎 기능 조직
: 기능별로 팀 구성
📎 프로젝트 전담 조직
: 프로젝트 별로 팀 구성
📎 개발 이슈를 보완한 사업부 조직
: CTO 조직을 중심으로 구성
CEO & CTO & CDO
1) Risk identification : 파악 및 나열
2) Risk analysis & Risk prioritization : 분석 & 우선순위 (발생확률,영향)
3) Risk resolution & Risk monitoring : 해결방법 & 모니터링
: 리스크 타입과 유형
: 발생확률, 영향
: 확률이 높은 리스크에 대해 모니터링 방법 준비