logo
작성일

CH3. 프로젝트 계획 수립과 비용 산정

Authors
  • avatar
    Name
    seren-wib
    Twitter
Contents

3. 프로젝트 계획 수립과 비용 산정

3.1 프로젝트란 무엇인가?

일(task): 시간이나 예산 제약을 별로 안 받는 단편적인 작업

프로젝트(project): 제한된 시간과 비용 안에서 특정 목적을 완성해야하는 계획된 작업

  • 프로젝트 관리자(PM)이 이끄는 프로젝트 팀이 완성하며 자원이 필요하다.

작업(work): 프로젝트 안에서 수행하는 단일 작업 단위

생산시스템의 4대 요소 (4M)생산 자원 (4M)
노동력 (Man)노동력 (Man)
기계 (Machine)기계 (Machine)
원자재 (Material)원자재 (Material)
작업 방법 (Method)자본 (Money)
  • 앞 3개는 같고 마지막 하나만 다름: 생산시스템은 Method, 생산 자원은 Money

SW 프로젝트 성공의 필수 요소: 인력, 자원(실험 장비, 자재), 자본, 기술, 시간

SW 프로젝트 계획에 들어가는 것: 작업계획, 작업 방법(기술) 계획, 자원 계획, 조직 계획, 일정계획, 예산계획, 위험관리 계획, 유지보수 계획

3.2 프로젝트 식별

시스템 요청서(System Request): 시스템을 왜 만들어야하고, 어떤 가치창출을 하는지 설명하는 문서

  • 구성 요소: 프로젝트 스폰서, 비즈니스 필요성, 비즈니스 요구사항, 비즈니스 가치, 특별 이슈

프로젝트 스폰서: 이해관계자

비즈니스 요구사항: 시스템을 왜 만드는지 + 조직에 제공할 기능을 개략적으로

작업계획: WBS(작업 분해도)제공

타당성 분석

  • 구성요소: 경제적 타당성, 기술적 타당성, 조직구성 타당성, 법적 및 환경 타당성, 일정계획 타당성

3.3 프로젝트 관리와 프로젝트 관리자

프로젝트 관리 생명주기: 시작 → 계획 → 실행 → 유지보수

프로젝트 관리: 주어진 제약조건에서 프로젝트 목표달성을 위한 관리

  • 구성 요소: 작업계획, 위험도 평가, 자원 추정, 조직, 자원 획득, 업무 지시, 진척도, 결과 분석

프로젝트 관리자(PM)의 주요 역할

  1. 계획, 수주, 준비
  • 계약 지원, 기획, 제안서 작성, WBS작성, 작업 분배, 자원 확보, 비용 산정, 일정계획, 위험도 관리
  1. 관리
  • 설계, 구축, 테스트, 허가 등 전체 진행관리
  • 예산관리, 진척관리, 작업 방향성 유지, 성과보고
  1. 유지보수
  • 결과 분석, 검수 지원, 유지보수 지원, 신규 프로젝트 발굴 영업 지원

3.4 작업계획 및 일정계획

대표적인 관리 도구: WBS, CPM 네트워크, 간트 차트, PERT 차트

WBS: 프로젝트 계획을 계층별로 분해한 것

CPM 네트워크: Pert Chart에 의해 표현된다.

  • 시각화는 잘 되지만 몇가지 요소를 놓칠 수 있다.

Pert Chart: 개별 작업에 대한 타임라인을 그래픽으로 표현한 것

  1. 구성요소
  • 노드: 이벤트·마일스톤 (원·직사각형)
  • 벡터: 작업과 작업 간 종속성(선후관계)을 선으로 표현
  1. 작성 과정
    1. 소작업 리스트 작성
    2. CPM네트워크 다이어그램 그리기
      • CPM 네트워크에서 모든 가능 경로를 파악하고 임계경로(가장 긴 경로)를 찾는다

간트 차트(Gantt Chart): 프로젝트 일정을 보여주는 막대 차트

일정계획: 프로젝트 내의 활동, 결과물 및 마일스톤을 나열하는 것

  • 구성요소: 시작과 종료일자, 자원등의 정보
  • 수립과정: 일정 관리 계획 → 활동 정의 → 활동 순서 정하기 → 소요 자원 추정 → 작업기간 추정 → 일정계획 수립
  • 유형
    1. 마스터: 타임라인이 붙은 단순한 작업 목록
    2. 마일스톤: 요약 작업
    3. 상세: 모든 활동 추적, 큰 프로젝트에서 사용
  • 7가지 원칙: 이해관계자 의견 수렴, 과거 프로젝트 참조, 위험 요소 고려, 업무 외 시간 고려, 중요 경로 정의, 가정 조건 기록, 마일스톤 포함

3.5 소프트웨어 개발 비용 지출 요소

자료조사와 계획수립, 적용 기술, 프로젝트 규모, UI/UX 요구사항, 작업자의 고용 모델, 유지보수와 지원 규모

3.6 프로젝트 비용 예측 모델의 종류와 절차

비용 예측 모델

  1. 휴리스틱 기법
    • COCOMO(Constructive Cost Model, 건설적 비용 모델): 대표적 휴리스틱 기법으로, LOC기반 비용 추정 회귀 모델
      • LOC (Line of Code) = 프로그램이 몇 줄짜리인지 세는 것
  2. 분석적 추정 기법
    • 기능점수 분석(FPA(Function Point Analysis)): 기능의 개수와 복잡도로 비용 산출
    • Putnam 모델: 노력, 시간, 결함을 추정하는 모수 추정 모델
    • 가격 대비 수익(Price-To-Win) 추정 모델: 시장 상황, 경쟁업체 가격 기준
    • 머신러닝 기반 모델
    • IFPUG(국제 기능점수 사용자 모델): 국제 기능점수 사용자 그룹이 제공하는 기능점수 측정 표준 기법

비용 예측 준비 5단계

큰 그림(모듈 맵) → 뭘로 만들지(기술) → 뭘 만들지(SRS) → 어떻게 보이는지(UI) → 일 쪼개서 값 매기기(WBS)

  1. 프로젝트 개요 및 상위 수준 모듈 맵 만들기
  • Use-Case, 클래스, 메소드, DB, UI, 인프라 등등이 다 여기에 포함
  1. 소요 기술 조사 및 선택
  2. SRS(소프트웨어 요구사항 명세서) 초안 작성
  • 요구사항 세트, 제약사항, 적용 대상 등등
  1. UI 상세설계
  2. WBS 작성

3.7 LOC 기반 프로젝트 비용 예측

  • 기본 COCOMO: 몇 가지 상수만 반영(노력과 일정이 핵심 변수)
    • 기본형과 반결합형, 임베디드 시스템 예측 방법이 있다
  • 중급 COCOMO: 추가로 소프트웨어 공학의 15가지 비용 특성 반영
  • 상세 COCOMO: 전체 소프트웨어를 여러 모듈로 세분화하고 노력승수 추정해서 반영

3.8 기능점수 기반 프로젝트 비용 예측

기능점수(Function Point, FP): 시스템이 사용자에게 제공하는 기능의 양을 재는 단위

  • 기능이 몇 개인지, 얼마나 복잡한지
  • 업계 표준

구성요소 5개

분류유형뜻
데이터 기능ILF (내부 논리 파일)우리 시스템 안에서 정의한 클래스·테이블
EIF (외부 인터페이스 파일)외부 시스템에서 정의한 걸 참조만 함
트랜잭션 기능EI (외부 입력)데이터가 들어오는 연산:삽입, 삭제, 변경
EO (외부 출력)화면·프린터·파일로 내보내는 연산 (보고서)
EQ (외부 질의)입력+출력을 다 가진검색 연산 (SQL 검색 질의)
  • ILF vs EIF: 누가 정의했냐로 구분
  • 검색 하나 = EQ(질의) + EO(출력)

보조 용어

용어뜻예
RET (레코드 요소 타입)ILF·EIF의하위 클래스 수사원 → 정규직, 비정규직 = 2
FTR (참조 파일 타입)EI·EO·EQ가참조하는 파일 수학생+학과 조회 = 2
DET (데이터 요소 타입)속성 수학생(학번, 성명, 주소, 전화, 주민번호, 학과) = 6

기능점수 추정 5단계

  1. 기능점수 유형 파악
  2. 복잡도 판정 (단순 / 중간 / 복잡)
  3. 미조정 기능점수(UFP) 산출
  4. 시스템 특성 중요도(TDI) 반영
  5. 최종 기능점수 산출

3.9 조직 계획

팀 구성 방법: 계층형, 수석 프로그래머, 매트릭스, 민주적

계층형 팀: 트리 구조, 기능별 서브팀마다 서브팀장

  • 하위는 상세 지식, 상위는 전체를 넓게 앎
  • 대규모 프로젝트에 적합
계층형 팀

수석 프로그래머 팀: 수석 프로그래머 중심

  • 수석: 기획, 사양, 설계 (구현까지)
  • 보조: 기술적 동료
  • 비서: 관리 업무 지원
  • 전문가: 직접 구현
수석 프로그래머 팀

매트릭스 팀: 부서(기술)와 프로젝트에 이중 소속

  • 프로젝트 팀은 끝나면 해체돼서 기술 축적이 안 됨 → 이걸 해결
  • 1950년대 미국 항공우주 산업, 국내는 LG
매트릭스 팀

민주적 팀: 모두 일대일로 토의

  • 리더는 합의 안 될 때만 결정
민주적 팀

전형적인 SW 개발팀: PM, 업무 분석가, SW 설계자, 개발자, QA 등

  • 개발팀(Offshore)이 고객(On-site)과 소통
전형적인 SW 개발팀

애자일 개발팀: 전형적인 팀 + PM, UX/UI 설계자, QA 담당자

3.10 위험관리 계획

위험관리 계획: 위험을 미리 찾아서 마감 지키고, 소통하고, 위험 제거에 돈을 배정하는 계획

기술적 위험: 기술 문제나 결함 있는 도구 때문에 생기는 위험

  • 요소: 코드 품질 불량, 요구사항의 계속된 변경, 잘못된 기술 선택, 통합 문제
  • 완화: 기존 문서 다 받고 이전 팀이랑 문제 논의. 새 기술이면 위험 더 커짐

운영적 위험: 개발 목표가 명확하지 않을 때 프로세스에서 생기는 위험

  • 요소: 무리하거나 부정확한 마감일, 잘못된 기간 설정, 생산성 저하(지연, 직원 소진), 부적절한 관리, 범위 변경(범위 확대), 이해관계자와 소통 부재, 소통 실수
  • 중요 단계 건너뛰고 서두르기, 숙련 개발자 부족, 불안정한 업무량도 위험

업무적(비즈니스) 위험: 회사의 업무 이해관계와 운영에서 생기는 위험

  • 요소: 이해관계자 기대 미충족, 정의 안 된 지표, 일관성 없는 우선순위, 예산 문제, 참여도 부족, 파트너십 계약 부재, 예측 못 하는 외부 위험
  • 파트너십 계약 부재 → 서면 계약서로 해결
  • 외부 위험: 법 변화, 정부 규정, 경제 변화, 자연재해 등 → 보험, 최신 정보 파악으로 최소화

3.11 사업의 타당성 분석

타당성 분석: 프로젝트의 모든 측면을 검토하고 평가하는 것

  • 종류: 경제적, 기술적, 조직적, 법적 및 환경적, 일정계획

경제적 타당성: 돈이 되는지

  • 평가 기준: 현재가치(PV), 현 자산가치(NPV), 투자수익률(ROI), 손익분기점(BEP)
  • PV: 미래에 얻을 돈을 지금 가치로 바꾼 것
  • NPV: 들어올 돈의 현재가치 - 나갈 돈의 현재가치
  • ROI: 투자 대비 수익률
  • BEP: 매출 = 총비용, 손해도 이익도 없는 지점

기술적 타당성: 기술적으로 만들 수 있는지

  • 조직의 기술력, 기존 기술 사용 가능성, HW·SW 요구사항 수행 능력, 자원·기술 확보 능력, 유지보수 가능성

조직적 타당성: 조직이 받쳐줄 수 있는지

  • 추진자의 투자 의지, 관리자의 이해도와 예산, 사용자 수준, 투입 인력(자체·외부), 직원의 수용 의지와 기술 능력, 새 기술 대처 능력, 고용 안정성

법적 타당성: 법적 제한이 없는지, 윤리 기준을 지키는지

  • 계약, 데이터 보호법, 의료법, 인증서, 라이선스, 저작권, 지역 조례 등

일정계획 타당성: 마감 안에 끝낼 수 있는지

  • 마감 못 맞추면 프로젝트 목적 달성 못 할 수 있음

3.12 프로젝트 관리 표준지침

표준지침: 프로젝트에서 다 같이 지키는 규칙

  • 종류: 문서양식, 업무처리 절차, 요구사항명세서(SRS), 설계명세서(SDD), UI 설계, 코딩 작성
프로젝트 관리 표준지침
  • SRS → 설계 단계에 필요한 정보, SDD → 구현 단계에 필요한 정보