소프트웨어공학 2

LeemHyungJun·2023년 4월 19일
0

Lecture #2. 프로젝트 계획

중요한 단원

1. 계획 작업의 단계와 순서 이해

1-1. 프로젝트란?

  • 비즈니스 가치를 창조하는 시스템을 만드는 처음부터 마지막까지 작업 집합을 계획적으로 수행하는 것
  • 관리는 개인이나 조직의 목표가 효과적으로 이루어질 수 있도록 체계적이고 과학적으로 처리하는 과정
  • 유용성과 효율성을 높임으로서 이익을 창출하는 것
  • 프로젝트 관리 = 일이 되게 하는 과학

1-2. 프로젝트의 4가지 단계 (PDCA)

  • Plan-Do-Check-Action
  • 계획을 세우고 실행하고, 그 결과를 점검하여 개선책을 마련하는 조치관리 사이클을 수행하는 것
  • 계획
    • 어떤 업무를 시작하기 위해 목표를 확립하고 이를 달성하기 위한 활동 계획을 세우는 과정
  • 실행
    • 과정에서는 계획을 확인하고, 수립된 시스템에 따라 실제로 일을 수행
    • 실행이 계획대로 이루어지고 있는지 현재 상태를 확인하고 계획과 대비하는 작업 수행
  • 점검
    • 실행 상태를 감시하고 심각한 이상이 감지된 경우 근본 원인을 파악하고 해결책을 강구하며 개선할 수 있는 대안 제시
  • 조치
    • 점검을 통해 도출한 대안을 적용하여 계획 조정
  • 육하원칙에 따라 실행한다.
    • Who : 조직
    • When : WBS or 간트차트에 따라
    • Where : ...
    • What : 정보 시스템을
    • How : 프로젝트 관리 4단계에 의하여
    • Why : 프로젝트를 관리하는 목적을 위해

1-3. 프로젝트 프로세스

  • 정의
    • 프로젝트 수행에 필요한 요구사항을 충족시키기 위해 지식, 기량, 기법, 도구 등을 적절히 적용하기 위한 과정을 확립하는 것
  • 특징
    • 프로젝트에서 요구되는 제품, 결과 또는 서비스를 달성하기 위해 수행되는 관련 조치 및 활동
    • 여러 하부 프로세스 또는 단계로 이루어져 있음, 세분화 될수록 특성이나 기능이 점진적으로 구체화
    • 투입물을 받아 가공 처리하여 새로운 결과물을 만들어내는 변환의 과정
    • 각 프로세스는 입력물, 프로세스에 사용되는 도구 및 기법, 결과로 생성되는 산출물로 정의 (프로세스 ITO)
      • 입력물 : 프로세스를 수행하기 위해 요구되는 문서, 계획서, 자료, 정보 등
      • 도구와 기법 : 투입된 입력물을 가공 처리하여 프로세스의 산출물을 만들기 위한 방법이나 수단
      • 산출물 : 프로세스의 입력물을 받아 가공 처리한 수행 결과물을 의미, 문서, 계획서, 자료 등
  • 프로세스 그룹들 사이의 상호 작용
    • 착수(초기화) 단계 : 비즈니스 가치를 찾고 타당성을 분석
      1. 프로젝트 초기화 팀 구성
      2. 고객 관계 수립
      3. 프로젝트 초기화 계획 수립
      4. 관리 절차 수립
      5. 프로젝트 관리 환경과 프로젝트 작업집 마련
      6. 프로젝트 선언문 작성
    • 계획(기획) 단계 - 중요
      1. 비즈니스 목표의 설정
      2. 시스템 개발 요청 정의
      3. 타당성 분석
      4. 프로젝트 개발 일정과 비용 산정
      5. 계획서 작성

2. 목표 설정과 타당성 분석

2-1. 비즈니스 목표 설정

  • 전략적 계획
    • 장기적인 큰 그림, 로드맵
  • 현재 상황을 잘 인식하고 미래에 대한 분명한 비전이 필요
  • SWOT 분석

2-2. 경영 목표

  • 설립 목적 : 해당 기업의 가치관
  • 비전 : 사회적인 의의
  • 가치 : 돈
  • 미션 선언문
    • 수치적인 것이 중요하다. 하지만 비전이 같이 제시되어야 한다.

2-3. 프로젝트 제안

  • 시스템을 구축하여 얻을 비즈니스 가치를 발견했을 때 시작
  • 프로젝트 스폰서
  • 프로젝트의 필요성

2-4. 시스템 개발 요청

  • 시스템 개발 요청서: 시스템 구충의 필요성과 시스템이 제공할 것으로 예상하는 가치를 정리한 문서

2-5. 타당성 분석

  • 기술적 타당성: 개발할 수 있는가?
    • 응용 분야에 익숙한가?
    • 기술에 익숙한가?
    • 프로젝트 크기
    • 호환성 - 현재 시스템과 연동, 통합 시도가 많을수록 위험
  • 경제적 타당성: 개발하여야 하는가?
    • 개발 비용
    • 연간 운영비용
    • 연간 이익
    • 정성적 비용과 이익
  • 조직측면의 타당성: 우리가 개발할 수 있는가? 참여할 수 있는가?
    • 프로젝트 관리자
    • 고위 경영층
    • 사용자
    • 기타 관련자
    • 비즈니스와 전략적으로 정렬시킬 수 있는가?

2-6. 경제적 타당성 분석

1. 비용 수익 요소 파악 - 프로젝트에서 일회 또는 반복하여 발생하는 실질적 비용과 수익
2. 비용 수익 금액 산정 - 사용자나 IT 전문가와 함께 비용과 수익을 금액으로 환산
3. 현금 흐름 결정 - 3년에서 5년간의 비용과 수익 예측함. 필요하면 성장률을 적용
4. 현재 가치를 계산 - 미래의 비용과 수익의 가치를 현재 가치로 환산, 필요하면 성장률을 적용
5. ROI 계산 - 투자로 인하여 얻은 수익을 계산한다.
6. 손익 분기점을 찾음 - 비용과 수익을 연단위로 그래프에 그려 프로젝트에 소요되는 비용을 회수하는데 걸리는 기간을 계산

  • 추가로 생각할 수 있는 것들..
    • ROI (Return on Investment)
    • MM (Man Month)

2-7. 조직 측면의 타당성

  • 시스템 완성 후 사용자에게 얼마나 잘 받아들여질 것인가?
  • 조직에서 진행 중인 운영에 얼마나 잘 융합될 수 있는가?
  • 프로젝트 관리자
    • 프로젝트 착수 및 진행
    • 일정 계획
    • 자원 할당
  • 사용자
    • 관련된 중요한 결정에 참여
    • 작업에 간섭
    • 시스템 사용성 테스트
  • 조직 내의 관리자
    • 프로젝트 자금 조달
    • 사용자 격려
    • 결과에 관심

3. 규모 산정

3-1. 프로젝트 선정

  • 조직 전반적인 측면의 검토
    • 규모, 비용, 목적, 기간, 리스크, 프로젝트 범위, ROI
  • 프로젝트 분류 요소
    • 크기 : 프로그램의 크기, 프로젝트에 필요한 인력 규모
    • 비용 : 프로젝트에 투입되는 금액
    • 목적 : 기술적 인프라 개선을 위한 것인가? 영업 전략을 지원하는 것인가?
    • 기간 : 완성하는데 소요되는 기간은?
    • 리스크 : 프로젝트가 성공하거나 실패할 가능성은?
    • 범위 : 시스템에 의하여 기관이 얼마나 영향받는가?
    • ROI : 비용대비 예상되는 수익의 비율

4. 일정 계획

4-1. WBS (Work Breakdown Structure)

  • 작업을 파악하기 위한 도구
  • 프로젝트에서 수행하여야 할 작업
  • 아래 사진에서 누가 수행해야 하는지 도 추가하는 것이 좋다.

4-2. Gannt Chart

  • 작업 일정을 나타낸 수평 막대형 차트
    • 작업별 소요기간, 수행 기간을 막대로 나타냄

4-3. 작업 네트워크

  • 작업의 선후관계를 나타낸 그래프 (병렬화)
    • 노드: 작업
    • 간선: 선후 관계
  • 임계경로
    • 작업 시작에서 종료까지 제일 긴 경로
    • 경로 선상의 작업은 여유시간이 없음

4-4. 소요인력 예측

  • 프로젝트 관리에 영향을 주는 세가지 요소
  • 예측
    • 과거의 자료 기반 - 과거를 기반으로 미래 예측
    • 규모 기반 - LOC, 기능점수

4-5. 기능 점수 방법

  • 설계가 충분히 이루어지지 않은 상태에서 정확한 규모(LOC) 예측은 어려움
  • 소프트웨어가 갖는 기능을 점수로 환산하여 예측
  • 기능점수 계산 -> 노력 예측(MM) -> 소요기간 예측, 인력 예측

4-6. 자세한 과정 (기능 점수 방법)

  • step 1. 기능 파악과 점수 계산
    • 프로그램 요소 파악
    • 입력, 출력, 질의, 파일, 인터페이스 등을 상,중,하로 계산
  • step 2. 기능점수 보정
    • 프로젝트 문제의 복잡도가 다름
    • ex) 데이터 통신, 트랜잭션 비율 등등..
  • step 3. 규모 추정
    • 각 사용 언어에 따라 기능 점수를 LOC로 환산
  • step 4. 노력 산정
    • 노력(인원-월) = 1.4 * N 천 줄의 코드
  • step 5. 소요 기간 산정
    • 소요 일정(개월) = 3.0 * N 인원-월^(1/3)

4-7. 유스케이스 점수 방법

  • step 1. 유스케이스 점수 계산
  • step 2. 보정을 위한 인자 분석
  • 환경 인자
  • step 3. 보정된 유스케이스 점수 계산
  • step 4. 노력 추정

5. 조직 구성

5-1. 조직 구성의 핵심 원리

  • 프로젝트에 필요한 평균 인원 수 결정
  • Mythical Man-Month
    • 늦은 프로젝트에 더 많은 인원을 투입한다고 빨리 끝나는 것이 아님
    • 의사 경로가 많아짐
  • 보고 구조를 단순하게

5-2. 조직의 동기 부여

  • 피해야 할 사항들
    • 비현실적 일정
    • 좋은 열심을 무시 <-> 격려
    • 형편없는 제품 만들기
    • 참여자 모두에게 같은 보상 <-> 인센티브 제공
    • 중요한 결정을 팀원 의사를 묻지 않고 결정 <-> 의사소통
    • 작업 환경 열악 <-> 환경 체크

5-3. 갈등 해소

  • 갈등을 최소화 하기 위한 팀 조직
  • 팀 소속감 고취
  • 팀원의 역할을 분명히 정함
  • 행동 원칙이나 헌장 정하기

5-4. 프로젝트 실행

  • 기본 프로젝트 계획을 실행에 옮김
  • 프로젝트 진척사항 모니터링
  • 기본 프로젝트 계획에 대한 변경 관리
  • 프로젝트 작업집 유지관리
  • 프로젝트 상황에 대한 의사소통

5-5. 프로젝트 종료

  • 종료
  • 사후 프로젝트 검토
  • 고객과의 계약 종결

0개의 댓글