본문 바로가기

Work Log/As Software Engineer

EPF (Eclipse Process Framework Composer)를 사용하여 프로세스를 체계적으로 관리 해보자!

EPF와의 인연


2011년도 초에 이리 저리 검색을 하다가 우연한 기회에 접하게 되었는데, 프로젝트 철수 후에 잠시 시간이 나서 다시 보고있습니다. 당시에 전화를 받을 일 때문에 밤을 샐 일이 있었는데, 전화가 주춤하는 새벽시간에 무얼 할까 하다가 찾게 되었습니다. 하루 이틀만에 제안과 관련된 프로세스를 뚝딱 만들어서 팀 내에 공유를 한 적이 있는데, 그 이후로 사정상 못보고 있었군요.



왜 필요할까?


조직에서 프로세스가 다양한 형태로 관리가 되고 있는데, EPF를 사용하면 일종의 Process Toolkit을 작성할 수 있습니다. 마치 Sales Toolkit처럼 말이죠. 네트워킹이 안되는 환경에서 프로젝트를 하는 우리 컨설턴트들에게 가장 적절한 형태가 아닐까 생각을 해봅니다. EPF를 사용하여 잘 작성된 Process각 가지고 든든한 스위스 아미 나이프를 가진 기분이 들 것 같아요.


의외로 컨설팅 조직이 개개인의 맨파워에 의존을 하는 경우가 있는데, 이렇게 하나로 통합된 프로세스가 있으면 프로젝트 종료 후 Best Practice를 선정하여 지속적으로 개선할 수 있어서 의미가 있다는 생각이 드네요. 신입 사원들이나 경험이 없는 프로젝트를 수행해야 하는 사람들에게도 도움이 될테구요.



EPF를 사용하여 프로세스를 작성하는 방법


기본적인 프레임워크를 잡으면서 얻은 지식을 끄적끄적 적어봅니다.

개념 잡기가 어려운데, 최종 output으로부터 의존관계를 파악하여 거꾸로 내려가는 것이 좀 더 이해하기가 편하네요



* 결과를 Publish 하려면 Configurations에서 Configuration을 생성해야 한다

- Plug-in and Package Selection 탭에서 Plug-in을 선택하고,

- Views 에서 Add View 버튼을 클릭하여 View를 추가한다



* 위에서 View에 추가를 하려면 Plug-in > Method Content > Custom Categories에 Custom Category로 생성이 되어 있으면 된다.

- 다양한 형태의 프로젝트 별로 Delivery Lifecycle을 관리하기 위한 Custom Category나 Disciplines가 모여있는 Custom Category를 생성하면 된다.

- Custom Category를 생성하면 탭 중에 Assign이 있는데, 여기에서 Assign 버튼을 클릭하여 선택하면 된다.



* 위에서 Delivery Lifecycle을 넣으려면 사전에 Processes > Delivery Processes에 정의가 되어 있어야 한다.

- New > Delivery Process를 선택하여 생성을 하면 WBS(Work Breakdown Structure) 등의 탭이 있는 객체가 생긴다.

- 여기에서 WBS를 정의 해주면 되는데, 재사용을 위해서 Processes > Capability Patterns 에서 생성 한 프로세스를 가져다가(Drag and Drop 등) 정의를 하면 된다.



* Processes > Capability Patterns 에서는 Process Package를 생성하고,

- 생성한 Process Package 안에 Capability Pattern을 생성하면 된다.

- Capability Pattern은 아무래도 재사용을 위한 부분이라 Phase 단위로 나누고, 각 Capability Pattern에서는 WBS 탭에서 Activity와 Task (Task Descriptor)를 정의하면 된다.


* 위의 Task Descriptor를 추가 할 때에는 사전에 정의 된 Content Package > Tasks > Task가 있으면 Drag and Drop하여 추가할 수 있다

- 그렇지 않은 경우 해당 Task Descriptor의 Properties에서 General 탭의 Method task를 통하여 연결하면 된다. 

- Task Descriptor의 Properties의 각 항목은 연결 된 Task를 Extend 한 개념이라 해당 Task의 속성들(Steps, Guidance 등)을 그대로 가져오게 된다.



* Guidance, Role, Work Products, Steps 등은 Content Packages에서 Content Package를 생성하여 그 안의 Roles, Tasks, Work Products, Guidance에서 추가를 하면 된다

- Content Packages는 공통 Package를 만들고, 프로젝트 유형이나 업무 유형 별로 나누면 된다.



* Roles 에서는 Role을 하위에 추가할 수 있다.



* Tasks에서는 Task를 하위에 추가할 수 있다.



* Work Products에서는 3종류의 Work Product를 하위에 추가할 수 있다.

- Artifact: 표준 산출물은 아니지만 각 Task 중에 Input으로 들어가거나 최종 산출물을 만들기 위하여 생성되는 중간산출물 형태 등 유형의(Tangible) 산출물을 말한다. (Artifacts are tangible, well-defined work products consumed, produced, or modified by tasks. Artifacts may be composed of other artifacts. Artifacts are the responsibility of a single role, making responsibility easy to identify and understand, and promoting the idea that every piece of information produced in the method requires the appropriate set of skills. Even though one role might "own" a specific type of artifact, other roles can still use the artifacts, and perhaps even update them, if the role has been given permission to do so.)


- Deliverable: Client에게 전달하는 표준 산출물이라고 생각하면 된다. (A deliverable is a work product that provides a description and definition for packaging other work products, and may be delivered to an internal or external party. Deliverables are used to represent an output from a process that has value to a client, customer or other stakeholder.)


- Outcome: Artifact와 비슷한 유형이지만 무형의(Intangible) 산출물을 말한다.(An outcome describes an intangible work product that represents a result or state, such as an installed server or optimized network. Outcomes may also be used to describe work products that are not formally defined. )



* Method Content > Standard Categories > Disciplines는 프로세스 내에서 공통적으로 사용되는 업무에 대하여 그룹핑하거나 재사용 등을 위하여 사용하면 되는데, 예를들어, 정보보안에서 자산분석 방법, 위험분석 방법 등이 Discipline으로 생성하여 정리할 수 있다.



* Method Content > Standard Categories > Domains 에는 Domain을 정의할 수 있는데, 예를 들어 공공, 금융 등이 될 수 있다.



* Method Content > Standard Categories > Role Sets 에는 고객, 컨설턴트, 프로젝트 관리자 등의 Role Set을 정의할 수 있다.

- 정의한 Role Sets 부분은 Custom Categories에서 별도로 정의하여 하나의 Configuration에서 View로 정의할 수 있다.