3. 프로젝트관리
주요내용 프로젝트란무엇인가? 프로젝트관리는왜필요한것인가? 프로젝트를관리하기위한방법은무엇인가? 2 2008 Software Engineering
목차 강의내용 - 프로젝트의정의 - 소프트웨어프로젝트 - 소프트웨어프로젝트의성공요소 - 소프트웨어프로젝트의잘못된통념 - 프로젝트관리 - 프로젝트성공을돕는지침서 팀프로젝트 (4 주차 ) - 제안서작성 3 2008 Software Engineering
흔한단어, XX 프로젝트? 4 2008 Software Engineering
프로젝트의정의
프로젝트란? 정의 - 프로젝트는유일한제품이나서비스를만들기위해수행되어야할일시적인행동 출처 : 2000 PMBOK - 같은일을반복하는 일상생활 과구분됨 프로젝트의구성요소 비용 목표 관리자 참여자 프로젝트 기간 기술 고객 6 2008 Software Engineering
소프트웨어프로젝트
소프트웨어프로젝트 소프트웨어개발의시작 - 조직이요구사항에맞는프로그램을획득 (Acquire) 할필요가생겼을때 시중에나와있는프로그램을구입 소프트웨어개발전문업체에의뢰 직접개발 소프트웨어개발 - 발주자 ( 고객 ) 가요구사항을주면수주자 ( 개발자 ) 가요구사항에맞는프로그램을개발 발주자 개발을의뢰하는 조직또는개인 수주자 의뢰를받는 조직또는개인 계약서 8 2008 Software Engineering
소프트웨어프로젝트프로세스 (1/2) 소프트웨어제품구상 - 발주자 원하는소프트웨어제품의구상및그가치를검증 제품의투자대비효과를예측하고, 사업에미치는영향을파악 원하는제품의기능상의요구사항, 성능요구사항들을정의 소프트웨어제안요청서 (RFP: Request for Proposal) 배포 - 제품을자체개발하지않는경우, 개발회사 들에게제안요청서를발송 일반적인제안요청서양식목차 I. 프로젝트개요 1. 프로젝트명 2. 프로젝트목적 3. 프로젝트결과물 4. 프로젝트내용 5. 특이사항 6. 기간 7. 비용 8. 추진일정... II. 별지서식 제안서제출 - 개발회사들은발주자에게제안서제출 9 2008 Software Engineering
공공기관에들어가는제안서목차 10 2008 Software Engineering
소프트웨어프로젝트프로세스 (2/2) 제안서심사 - 이미정해진기준에따라심사하여수주자 선정 계약서작성 - 수주자가선정되면발주자와수주자사이 에계약체결 프로젝트시작및수행 - 계약이완료후수주자는프로젝트시작 - 마일스톤별로또는발주자의참여필요시회의를갖고요구사항의변경등중요한사항협의 프로젝트종료및제품인도 - 소프트웨어개발완료후발주자의인수테 스트를거쳐제품이인도됨 일반적인계약서양식 소프트웨어개발계약서 한국발주사 ( 이하 갑 이라함 ) 와개발코리아 ( 이하 을 이라함 ) 는제 2조에명시한 소프트웨어개발 의관련업무대하여다음과같이계약을체결한다 - 다음 - 제 1조계약의목적제 2조계약내용제 3조협조사항제 4조계약기간제 5조계약금액제 6조사용및저작권한제 7조계약의해지및통보제 8조비밀유지의의무와손해배상제 9조기타 11 2008 Software Engineering
소프트웨어프로젝트의성공요소
소프트웨어프로젝트의성공요소 소프트웨어프로젝트의성공률 30% 관리목표 비용 일정 품질 19 2007 Software Engineering 13 2008 Software Engineering
프로젝트의성공을보는관점 프로젝트는왜실패하는가?, Kentaro Ito 프로젝트는성공하는것이다 vs. 프로젝트는실패하는것이다 14 2008 Software Engineering
소프트웨어프로젝트의잘못된통념
소프트웨어개발의잘못된통념들 관리자 우리팀개발표준을개발자들도다알고있을꺼야. 우리는정말비싸고좋은개발툴이있지.. 어, 일정이촉박하네.. 개발자몇명더투입하면일정맞출수있을꺼야 개발자 프로그램이실행만되면우리일은끝 프로그램이실행되기전까지품질을어떻게알수가있어? 프로젝트는프로그램만잘나오면끝이지, 다른것은뭐가필요하겠어? 16 2008 Software Engineering
프로젝트관리
프로젝트는왜실패하는가? 일반적인프로젝트실패의이유 - 프로젝트팀이소프트웨어프로젝트에필요한지식이없거나, - 프로젝트를효과적으로수행하는데필요한의지가없어서 출처 : Steve McConell, 소프트웨어프로젝트생존전략 18 2008 Software Engineering
프로젝트관리 정의 - 프로젝트의요구사항을만족시키기위해지식, 기술, 툴및기법을프로젝트활동에적용하는것 PMBOK Guide - A Guide to the Project Management Body of Knowledge - 프로젝트관리를위한지침제공 - 5 th Edition, 2013 - PMI(Project Management Institute) 출처 : 2000 PMBOK 19 2008 Software Engineering
PMBOK 프로젝트프로세스 (1/2) 5 Process Group 착수 계획 실행 종료 계획변경 계획 vs. 실적 통제 20 2008 Software Engineering
PMBOK 프로젝트프로세스 (2/2) 착수 (Initiating) - 새로운프로젝트나프로젝트단계의시작을공식적으로승인받기위해진행할프로세스들로구성됨 계획 (Planning) - 프로젝트계획서를작성 - 프로젝트가수행해야할목표및범위를달성하기위해필요한행동방침을계획 실행 (Executing) - 프로젝트수행에필요한인력과자원을갖추고프로젝트계획을시행 통제 (Monitoring & Controlling) - 프로젝트가계획대로잘수행되고있는가를주기적으로검토 - 프로젝트목표를달성하는데필요하면시정조치를취할수있도록함 종료 (Closing) - 결과물의인수를공식화함 - 계약의의무를수행했다고판단되면프로젝트를종료 21 2008 Software Engineering
PMBOK 의프로젝트관리영역 프로젝트관리영역 (PMBOK) 1. 프로젝트통합관리 1.1 프로젝트계획개발 1.2 프로젝트계획실행 1.3 통합변화관리 2. 프로젝트범위관리 2.1 개시 2.2 범위계획 2.3 범위정의 2.4 범위검증 2.5 범위변경통제 3. 프로젝트일정관리 3.1 작업정의 3.2 작업순서 3.3 작업기간산정 3.4 일정개발 3.5 일정통제 4. 프로젝트비용관리 4.1 비용산정 4.2 비용예산 4.3 비용통제 5. 프로젝트품질관리 5.1 품질계획 5.2 품질보증 5.3 품질통제 6. 프로젝트인적자원관리 6.1 조직계획 6.2 스텝확보 6.3 팀개발 7. 프로젝트의사소통관리 7.1 의사소통계획 7.2 정보배포 7.3 성과보고 7.4 관리종료 8. 프로젝트위험관리 8.1 위험관리계획 8.2 위험정의 8.3 정성적위험분석 8.4 정량적위험분석 8.5 위험대응계획.6 위험모니터링및통제 9. 프로젝트조달관리 9.1 구매계획 9.2 공급자유치계획 9.3 공급자유치 9.4 공급자선택 9.5 계약관리 9.6 계약종료 22 2008 Software Engineering
PMBOK 프로젝트관리의 9 가지관점 관리영역 프로젝트통합관리 프로젝트범위관리 프로젝트일정관리 프로젝트비용관리 프로젝트품질관리 인적자원관리 위험관리 프로젝트의사소통관리 프로젝트조달관리 프로세스 프로젝트헌장개발, 프로젝트관리계획수립, 프로젝트실행지시및관리, 프로젝트작업감시및통제, 통합변경통제, 프로젝트종료관리등 프로젝트의범위계획, 범위정의, 작업분류체계작성, 범위검증, 범위통제 프로젝트관리등 작업정의, 작업순서배열, 작업별자원산정, 작업기간산정, 일정개발, 일 정통제등 자원계획, 비용산정, 비용예산및비용통제등 품질계획, 품질보증, 품질관리등 조직계획, 인적자원획득, 프로젝트팀확보, 프로젝트팀개발, 프로젝트팀 관리, 프로젝트관리등 위험관리계획, 위험식별, 정성적위험분석, 정량적위험분석, 위험대응계 획, 위험감시통제등 의사소통계획, 정보배포, 진척관리, 종료절차등 획득계획, 공급자유치계획, 공급자선정, 계약관리, 계약종료등 23 2008 Software Engineering
프로젝트성공을돕는지침서
CMM 등장배경 CMM 의등장 - 프로젝트관리의중요성인식 소프트웨어프로젝트실패의원인기술적인요인 + 관리적인요인 - SEI 설립 1984 년카네기멜론대학에소프트웨어공학전문연구소 SEI(Software Engineering Institute) 설립 - SW-CMM 개발 개발조직프로세스의성숙도에따라점진적개선을제시하는 SW-CMM(Software Capability Maturity Model) 을개발 성숙도가높은조직이성숙도가낮은조직보다높은품질의소프트웨어를생산할수있다는것 25 2008 Software Engineering
성숙도가낮은조직과높은조직의비교 성숙도가낮은조직의특징 소프트웨어프로세스가프로젝트진행중에개 발자와관리자에의하여즉흥적으로만들어진다. 관리자는그때그때발생하는문제점의해결에 만관심이있다. 실제적인자료에근거하여산정되지않았기때 문에일정과비용은대개초과된다. 납기일을맞추기위하여제품의기능과품질을희생한다. 제품의품질을평가하기위한객관적근거가없 다. 성숙도가높은조직의특징 소프트웨어개발과관리프로세스에대한조직 차원의능력을갖고있다. 소프트웨어프로세스가구성원들에게정확하게 전달된다. 작업활동이계획된프로세스에따라서수행된 다. 정의된프로세스내의역할과책임이명확하다. 관리자는소프트웨어제품의품질과고객의만족도를측정한다. 제품의품질평가및문제분석에객관적이고 정량적인근거가존재한다. 일정과비용이이전프로젝트성과에근거하였으며실제적이다. 제도화된프로세스가일관성있게준수된다. 프로세스를지원하기위하여필요한기반구조가존재한다. 26 2008 Software Engineering
CMMI 의등장 배경 - 사회적변화에적응하고기존의문제점해결하기위한새로운모델의필요성제기 - 2000년 8월, ISO15504(SPICE) 와호환가능한통합모델인 CMMI(Capability Maturity Model Integration) 발표 CMMI 정의 - 조직의프로세스에대한가이드이자, 기준이며, 능력 (Capability) 혹은성숙도 (Maturity) 를가지고, 한조직의프로세스를평가하는모델의통합버전 27 2008 Software Engineering
Capability 0 1 2 3 4 5 CMMI 통합모델 단계적표현 (Staged Representation) 연속적표현 (Continuous Representation) Organization Process Area ML 5 ML 2 ML 3 ML 4 ML 1 PA PA PA PA ML = Maturity Level PA = Process Area 28 2008 Software Engineering
연속적표현 (Continuous Representation) Capability Model - 조직의각 PA의능력수준을측정하는방법 - 조직이원하는 PA( 조직의목표달성에중요하다고판단된 ) 를집중적으로관리하거나, 조직특성에맞는 PA만을관리할수있는유연성이장점 29 2008 Software Engineering
연속적표현 (Continuous Representation) CMMI 의연속적표현을위한프로세스 4 범주 - 프로세스관리 (Process Management) 프로세스의정의, 계획, 배치, 구현, 감시, 제어, 평가, 측정, 개선과관련된여러프로젝트에걸쳐진활동들을포함하는프로세스영역들로구성 - 프로젝트관리 (Project Management) 프로젝트의계획, 감시, 그리고제어와관련된프로젝트관리행위들을다루는프로세스영역들로구성 - 공학 (Engineering) 여러공학분야에걸쳐서공유되는개발과유지보수와관련된활동들을다루는프로세스영역들로구성 - 지원 (Support) 제품개발과유지보수를지원하는활동들을다루는내용으로, 프로젝트를목적으로한프로세스영역과조직에적응하는것을목적으로하는프로세스영역들로구성 30 2008 Software Engineering
연속적표현 (Continuous Representation) Capability Level Capability Level 의미 0 Incomplete 불완전한단계 1 Performed 2 Managed 3 Defined 정의된기본프로세스들이수행되고있지만안정적이지못한상태 목표달성을위해프로세스가팀별로계획되고수행되고추적, 통제되고있는단계 조직표준프로세스를테일러링 (tailoring) 가이드에따라조정하여조직에적합한프로세스를적용할수있는단계 4 Quantitatively Managed 정의된프로세스가통계적기법이나다른정량적인방법에의해관리되고있는단계 5 Optimizing 지속적으로프로세스개선을추진하여문제원인을분석하고해결할수있는단계 31 2008 Software Engineering
단계적표현 (Staged Representation) ML(Maturity Level) 5 단계로조직의프로젝트관리능력을표현 - 단계별성숙도수준을만족시키기위해서는해당성숙도레벨에속하는 PA를완전히만족시켜야함. - 조직의현재성숙도수준을파악하여다음단계의성숙도수준으로향상하기위해어떠한 PA를개선해야하는지에대한지침을제공 - 총 22개의프로세스영역을단계별로할당하여프로세스개선을위한로드맵을제시 장점 - 유연성은떨어지지만장기적으로조직에게보다체계적이고구조적인방법을제공 - 대부분의기업들이채택. 32 2008 Software Engineering
CMMI 의 5 단계소프트웨어프로세스성숙도 각성숙도단계에서체계화되는프로세스능력 예측가능한프로세스 지속적으로개선되는프로세스 정량적관리 (Quantitative Managed): 4 정량적으로프로세스가측정되고통제됨 최적 (Optimizing): 5 프로세스개선에초점 표준화된프로세스 정의 (Defined): 3 조직차원의표준프로세스가있고사용됨 규칙화된프로세스 관리 (Managed): 2 기본적인프로젝트관리프로세스가있고사용됨 초기 (Initial): 1 예측불가능통제되지못함 33 2008 Software Engineering
CMMI 단계적표현방법 : 단계별특성 (1/4) 1 단계 (ML-1): 초기 (Initial) - 조직에정의된프로세스가거의없고계획없이코딩과시험에집중 - 경험많은관리자나뛰어난개발자에의해프로젝트의성공이좌우됨 - 능력은조직이아닌개인의특성 2 단계 (ML-2): 관리 (Managed) - 기본적인프로젝트관리프로세스가설정됨 - 소프트웨어의크기, 공수및비용, 일정, 컴퓨터자원, 위험, 기능을추적할수있는단계 - 프로젝트의중간산출물에대한통제가가능 - 새로운프로젝트에대한계획과관리가이전의성공한프로젝트에근거하여이루어짐 - 성공한프로젝트의실무활동을반복하기때문에, 유사한응용분야에서의프로젝트의성공을반복가능 34 2008 Software Engineering
CMMI 단계적표현방법 : 단계별특성 (2/4) 3 단계 (ML-3): 정의 (Defined) - 표준과일관성있는프로세스 - 조직전체에걸쳐소프트웨어의개발및유지에관한표준프로세스가문서화되고통합되는단계 - 조직의소프트웨어프로세스활동에대한책임이있는팀 (EPG: Engineering Process Group) 이구성 - 각프로젝트는 조직의표준프로세스 를기반으로하여, 프로젝트에서정의된소프트웨어프로세스 에따라체계적으로수행 35 2008 Software Engineering
CMMI 단계적표현방법 : 단계별특성 (3/4) 4 단계 (ML-4): 정량적관리 (Quantitatively Managed) - 3 단계까지수집한조직차원의데이터를근거로, 조직에서선택한주요 프로세스와품질에대한조직의능력을파악하여이를기반으로정량적 프로젝트관리를시행 조직의표준프로세스가안정화 (Stable) 되므로각프로세스관련지표들은상향점 (Upper limit) 과하향점 (Lower limit) 을갖는능력수준을나타내고, 이수준밖을벗어나는값들은이상점 (Special Cause) 으로분류되어문제점을파악하고처리하게됨 이상점 (Special Cause) 상한점 (Upper limit) 하한점 (lower limit) 36 2008 Software Engineering
CMMI 단계적표현방법 : 단계별특성 (4/4) 5 단계 (ML-5): 최적화 (Optimizing) - 조직은지속적인프로세스개선을추진 - 프로세스개선에대한아이디어를지속적으로수집하고이에대한타당성을검토하기위해파일럿 (Pilot) 을수행 - 검증된개선아이디어는표준프로세스에반영되어전사에적용 - 문제의원인들을파악하여미리예방함으로써품질수준을개선 37 2008 Software Engineering
국내 CMMI 단계별표현심사현황 30 2007 년 12 월현재 51 개업체심사 25 26 20 15 12 10 8 5 5 0 Level 2 Level 3 Level 4 Level 5 38 2008 Software Engineering
국내 CMMI 단계별표현심사현황 Maturity Level 2011 2012 2013 2 14 11 11 3 21 33 16 4 3 2 3 5 5 0 2 주요국가별 Maturity Profile 현황 (2012 년 ) 39 2008 Software Engineering
주요국가별 Maturity Profile 현황 (2013 년 ) 40 2008 Software Engineering
CMMI 통합모델 CMMI 표준문서구조 41 2008 Software Engineering
ISO 12207 소개 - 소프트웨어생명주기공정표준 - 1995년소프트웨어개발을위한일관적이고체계적인구조 (framework) 를제공하기위하여제정 구성 - 소프트웨어개발시고려해야할 5개의기본생명주기프로세스 (Primary Lifecycle Process) 8개의지원프로세스 (Supporting Process) 4개의조직생명주기프로세스 (Organizational Lifecycle Process) 42 2008 Software Engineering
ISO 12207 의구성 (1/2) 5. 기본생명주기프로세스 6. 지원프로세스 5.1 획득 5.2 공급 6.1 문서화 6.2 형상관리 6.3 품질보증 6.4 확인 5.3 개발 5.4 운영 5.5 유지보수 6.5 검증 6.6 합동검토 6.7 감사 6.8 문제해결 7. 조직생명주기프로세스 7.1 관리 7.3 개선 7.2 기반구조 7.4 교육 43 2008 Software Engineering
ISO 12207 의구성 (2/2) 구성 - 기본생명주기프로세스 (Primary Lifecycle Process) 소프트웨어개발프로세스의주요프로세스 소프트웨어의획득, 공급, 개발, 운영, 유지보수에대한활동을정의 - 지원프로세스 (Supporting Process) 기본프로세스들을보조해주는역할을하는프로세스 각기본프로세스로부터산출되는문서, 품질보증, 감사, 문제해결등에대한활동을정의 - 조직생명주기프로세스 (Organizational Lifecycle Process) 개발전생명주기에거쳐전체프로젝트를관리하는역할을하는프로세스 프로젝트의기반구조, 개선, 인력훈련등에대한활동을정의 44 2008 Software Engineering
ISO 12207 기본생명주기프로세스 획득프로세스 (Acquisition process) - 소프트웨어제품또는서비스등을요구하는회사가공급회사로부터이를획득하기위하여수행하는활동을정의하는프로세스 공급프로세스 (Supply process) - 소프트웨어제품또는서비스등을요구하는회사에게이를제공하기위하여수행하는계약및제안활동들을정의하는프로세스 개발프로세스 (Development process) - 요구사항분석, 설계, 구현, 테스팅등의소프트웨어개발활동에서개발자또는개발팀이수행하는활동을정의하는프로세스 운영프로세스 (Operation process) - 소프트웨어의운영담당자또는운영팀이수행하는활동을정의하는프로세스 유지보수프로세스 (Maintenance process) - 소프트웨어제품개선시코드와관련문서등을수정하는활동을정의하는프로세스 45 2008 Software Engineering
ISO 12207 지원프로세스 (1) 문서화프로세스 (Documentation process) - 생명주기프로세스또는액티비티에서만들어지는정보를기록하는활동을정의하는프로세스 형상관리프로세스 (Configuration management process) - 문서나소스코드등소프트웨어개발에서만들어지는산출물들이일관성있게관리되기위한여러활동을정의한프로세스 품질보증프로세스 (Quality assurance process) - 소프트웨어개발프로젝트에서소프트웨어제품및프로세스가계획대로진행되고있는지그리고사용자의요구사항에부합되는지등을보증하기위한활동을정의한프로세스 확인프로세스 (Verification process) - 소프트웨어제품이사용자의요구사항대로수행되는지를확인하는활동을정의하는프로세스 46 2008 Software Engineering
ISO 12207 지원프로세스 (2) 검증프로세스 (Validation process) - 최종적으로설계된시스템또는소프트웨어제품을의도된환경에서수행하기위한활동들을정의하는프로세스 합동검토프로세스 (Joint review process) - 소프트웨어개발프로젝트에서만들어지는산출물에부적합사항이나결함등을검토및평가하는활동을정의하는프로세스 감사프로세스 (Audit process) - 요구사항, 계획및계약에대해승낙을결정하는활동들을정의하는프로세스 문제해결프로세스 (Problem resolution process) - 개발, 운영, 유지보수또는다른소프트웨어개발생명주기단계들을수행하는동안발생할수있는문제들에대해원인과특징을분석하고해결하기위한활동들을정의하는프로세스 47 2008 Software Engineering
ISO 12207 조직생명주기프로세스 관리프로세스 (Management process) - 소프트웨어개발프로젝트에서계획대비진행이잘이루어지고있는지등프로젝트진행상태를관리하기위한활동을정의하는프로세스 기반구조프로세스 (Infrastructure process) - 필요한프로세스를수립하고, 유지보수하기위한활동들을정의하는프로세스 개선프로세스 (Improvement process) - 소프트웨어생명주기프로세스를수립, 평가, 측정, 통제및개선하기위한활동들을정의하는프로세스 교육프로세스 (Training process) - 훈련된구성원들을위해유지하고준비하는활동들을정의하는프로세스 48 2008 Software Engineering
연습문제 1. 소프트웨어프로젝트의실패요인으로는어떤것들이있는가? 2. 소프트웨어프로젝트를성공으로이끌기위해서는어떠한노력이필요한가? 3. 소프트웨어프로젝트관리에대해간략하게설명하라. 4. 프로젝트관리의대상대표적인 3 가지를기술하라. 5. 프로젝트관리의구성단계 4 단계를기술하라. 6. 프로젝트관리는소프트웨어개발계획을세우고분석, 설계, 구현등의작업을통제하는것으로소프트웨어생명주기의전과정에걸쳐진행된다. 이러한소프트웨어프로젝트관리가성공적으로수행되기위해반드시알아야할사항을 3가지이상기술하라. 49 2008 Software Engineering
팀프로젝트 4 주차
이번주할일 각팀은제안서를작성한다. 제안서평가기준 (5 점만점 ) - 내용이명확히서술되었는가? - 기간내에수행하기에너무어려운가? 또는너무쉬운가? 결과 - 3.5 점이상이면통과함 51 2008 Software Engineering
다음주제출문서 작성된제안서를제출하고발표한다. 52 2008 Software Engineering