UML软件工程组织

企业项目组合管理过程改进的实践之路: 第一篇 过程改进 方法先行
宁 德军, Rational高级技术专员, IBM 中国
  本文基于 IBM 的过程改进工具 IBM Rational Method Composer(简称 RMC )和项目组合管理工具 IBM Rational Portfolio Manager(简称 RPM ),探讨项目组合管理实施的三个步骤:首先建立企业规范地项目组合管理过程;其次建立起可视化的项目管理过程;最后建立起可执行的项目组合管理过程,最终帮助企业实现项目组合管理过程的持续改进。

  概念定义

  1) 项目( Project ):指创造指定范围的一个独特产品或服务。项目是大型项目和项目组合的构成基础。

  2) 大型项目( Program ):一个大型项目由具有共同特性的多个项目所构成,通常为了管理需要而把它们组织在一起进行管理,来获得单个项目独自难以得到的控制和收益,一般实施周期较长。

  3) 项目组合( Portfolio ):一个项目组合由多个项目或大型项目构成,它使用各种规划技术,统一对多个项目或大型项目实施集约管理,包括优化和平衡投资组合、统一控制项目或大型项目的执行等。其目的是为了达到预期的商业战略目标。项目组合中可能会包含提案、项目或大型项目,统称它们为项目组合元素。

  4) 项目组合管理( Portfolio Management ):就是使用各种规划和分析决策技术,对多个提案、项目或大型项目进行集约化管理、分析、监控和决策,其中包括优化和平衡投资组合、统一监控提案、项目或大型项目的执行、基于业务目标对项目组合进行优化等工作,其目的是为了达到预期的商业战略目标。

  1 背景

  由项目、大型项目和项目组合构成的 3P 管理,目前已广为 IT 和项目管理从业人员所接受和认可。其中,项目管理和大型项目管理是实现项目组合管理的基础,项目组合管理则将项目和大型项目的管理上升到实现企业发展战略目标的高度,使企业能够用经营业务的方式来管理项目和大型项目。但如何能够帮助企业快速建立起项目组合管理过程、打造项目组合管理平台,则是摆在人们面前必须解决、也非常值得研究的一个课题。

  然而,由于企业项目组合管理过程的建立、推广和执行是一项长期而艰巨的任务,它必须通过对企业项目组合管理过程的持续改进来实现,而这也是现代企业变革的一部分。本文从实践者的视角,从企业项目组合管理面临的主要问题入手,基于 IBM 的过程改进工具 IBM Rational Method Composer (简称 RMC )和项目组合管理工具 IBM Rational Portfolio Manager(简称 RPM ),探讨项目组合管理实施的第一步,即:首先通过企业内部过程改进,建立规范且具备推广能力的企业项目组合管理方法,同时,通过在项目管理平台上创建易于使用的项目管理方法模板,建立起可执行的项目组合管理方法流程,帮助企业实现项目组合管理过程的持续改进。

  以规范且具备推广能力的企业项目组合管理方法流程为基础,企业就可以利用项目组合管理平台工具,快速搭建高效的项目组合管理平台,逐步建立起项目群和项目组合规划、执行和监控的能力,最终实现企业级项目组合管理。

  2 问题的提出:企业项目组合管理面临的问题

  作为企业级项目组合管理,如下图所示,必须要能够管理多项目,而管理多项目则首先要为项目管理提供统一的项目管理方法。试想如果一个企业有二十个项目经理,一年要完成一百个项目,如果没有统一的、规范的项目管理方法,每个项目经理都会按照自己的习惯和方法管理项目,项目的质量和进度在很大程度上依赖于项目经理的水平。项目经理的水平高低和责任心大小将大大影响项目管理的绩效,使得企业项目群的管理者无法保证项目的质量,也没有办法评测项目的绩效和对项目经理进行考核。

  图1 企业级项目组合管理面临的问题

  

  由于过程的有效确立对项目管理的质量起着至关重要的作用,质量大师戴明在半个世纪前就提出了"过程决定质量"的思想,因此,企业要建立项目组合管理能力,必须首先建立标准的项目管理方法流程,建立统一的项目立项判断标准、项目管理过程执行、监控程序和项目结果验收标准,以保证所有的项目都按照标准的、统一的项目管理方法执行。其次,为了保证项目管理团队能够很好的基于统一的项目管理方法,执行项目管理活动,企业还必须构建统一的项目管理平台。在统一的管理平台上,一方面完成项目的启动、规划、执行和监控和项目收尾过程,实现项目的时间管理、成本管理、人力资源管理、风险管理、沟通管理、采购管理、综合管理等方面的具体管理工作;另一方面,借助项目管理平台,辅助推行标准化的项目管理方法,使整个项目管理团队能够轻松的遵循统一的项目管理方法,完成项目管理活动。最后,为了实现项目组合管理,企业还必须在统一的项目管理平台基础上,建立起多项目的监控、管理、人力资源平衡以及多项目间的依赖关系处理等能力,保证企业管理者能够在对整个企业的项目管理综合了解的基础上,根据业务发展要求,在多项目间进行很好的投资组合分析。

  3 企业项目组合管理过程改进第一步:建立规范的企业项目管理方法

  建立标准化的企业项目组合管理方法,可以提高项目管理团队的生产效率,控制项目执行过程中的风险、进度偏差和成本偏差,从而保证项目质量。同时通过为所有重要的项目管理活动提供全面的指导信息、模板和示例,使整个项目组合管理团队能够有效共享成功经验,提高团队效率。

  建立企业标准化项目管理方法必须解决两个问题,即项目管理方法的定义和管理方法的推广。使用 IBM 最新的方法定义工具 Rational Method Composer (简称 RMC ),企业可以有效解决以上问题。

  3.1 IBM 最新的方法定义工具介绍

  IBM Rational Method Composer (简称 RMC )是 Rational Unified Process? (简称 RUP )的最新版本,它既是一个基于 Web 的软件工程方法交付工具,使用业界标准浏览器技术的 Web 站点的方式,将 RUP 交付给执行人员;同时,它也是一个 RUP 式的可视化方法的定义和配置工具,它基于国际标准的统一方法架构(Unified Method Architecture,简称 UMA )来描述方法构成,为企业提供了一个表述企业核心方法论的架构和平台,企业可以使用它定制自己的可视化企业项目组合管理方法。

  RMC 的核心内容包括:

  用于成功开发软件的一组核心观念和原则;
  可重用方法内容及流程构建块的框架:通过 IBM 的不断改善,RUP 方法插件系列定义通用的方法框架,从该框架您可以创建自己的方法配置及 定制的流程。
  底层方法及过程定义语言:最底层的是统一方法架构( UMA )的元模型。该模型提供了用于描述方法内容及流程的语言,其目的是统一不同方法和流程描述语言,它是在流程工程化方面对UML 的软件流程工程化元模型( SPEM )的扩展。
  RMC 的核心概念如下图所示:

  图2 RMC 的核心概念

  这里所谓的方法,既可以是企业内部经过多年的积累所形成的各种工作流程的管理方法,也可以是业界通用的方法,如 RUP 是软件工程领域的一个管理方法的集合,又包含了 Rational 的基于用例的需求管理方法( RMUC )、面向对象的分析设计方法( OOAD )、测试方法、项目管理方法和统一变更管理方法( UCM ); PMBOK 是项目管理领域的通用方法,它包含了PMI的进度管理、成本管理、人力资源管理、范围管理、风险管理等方法。

  基于统一方法架构,每种方法都可以由两个主要部分组成:方法内容和流程。其中"方法内容"部分主要用来描述那些独立于流程、可重用的方法构造块,其中包括角色、任务、工作产品和指导信息四个主要部分。所有的方法最后都可以用一个端到端的流程表示,其基本组成部分就是由某一角色,基于指定的输入工作产品,通过执行一系列的任务,产生出所期望的输出工作产品。指导信息则提供对任务和工作产品的相关说明和最佳实践经验。

图3 "方法内容"中的核心概念模型


  而"流程"部分用来描述"方法内容"如何构建成可执行的流程,由活动、功能模式和交付流程三个核心概念组成。"交付流程"代表一个方法应用于某一领域的一个端到端的流程实例,它为某类方法的执行提供完整的,覆盖整个生命周期管理流程模板,它回答在整个生命周期中,谁、在什么时间、做什么和怎么做等问题。例如 IBM 基于 RUP 定制的软件开发流程 IRUP ,可以看作是 RUP 这一方法在 IBM 的一个应用实例,因此 IRUP 可以看作是一个"交付流程"。"功能模式"则代表了关于某一受关注的关键领域的流程知识,它是可重用的流程片断定义或最佳经验子集,例如我们可以把面向对象的分析设计方法定义成为一个功能模式,它可以被其它的"功能模式"或"交付流程"所引用;活动是用于定义流程的基本概念。活动定义工作分解结构以及工作的流程。换句话说,活动可以互相嵌套以定义工作分解结构,或者活动可定义与其他活动的先行作业关系以定义活动图中所展示的流程。活动还可包含对"任务"、"角色"和"工作产品"的引用。多个活动或"功能模式"关联在一起则构成了"交付流程"。

 图4 "流程"部分的核心概念模型

  

  3.2 使用 RMC 帮助企业建立标准化的项目管理方法实践

  为了更好地理解 RMC 的各种核心概念,下面用一个具体的项目管理方法定制例子来说明以上各种概念在 RMC 中的具体应用。

  3.2.1 按项目分类建立项目生命周期管理模型
 
  一个企业内部存在各种不同类型的项目,其中可能包括软件开发项目、硬件项目、工程项目、业务发展项目、软课题研究项目等,在项目管理方法定义方面,难点就在于企业必须参照 PMBOK 和 RUP 等业界成熟方法论,结合企业的项目管理特点和项目管理需求,为每种类型的项目管理定义出项目管理流程。其中包括项目的主要阶段划分,每个阶段的主要任务,每个任务的输入和输出,项目生命周期的主要里程碑和主要状态定义。下表是如何基于 PMBOK 建立项目管理方法的一个例子,用来说明项目生命周期管理模型建立的具体方法:


  在明确每种类型项目的项目管理流程之后,企业的项目管理办公室就应该在此基础上形成企业的通用项目管理方法规范,以此规范企业的项目管理活动和项目管理人员的工作内容。此时,企业将会面临第二个难题:如何保证项目管理方法的执行力。一成不变的管理方法在管理和规范富于创造性的项目团队工作时,总会遇到各种各样的问题。那么应该如何确保项目管理方法的执行力呢?执行力的关键在于人--即项目管理团队,因此,做好项目管理方法的宣传、培训,统一项目管理团队的认识,将对整个项目管理方法的推行提供重要帮助。在这方面,一个类似 RUP 的项目管理方法网站,既可以作为团队的培训手册,也可以成为项目管理团队进行项目管理活动的操作指南,将会大大提高整个项目管理团队的流程执行力。

  3.2.2 使用 RMC 建立可视化的项目生命周期管理方法网站

  在企业基于项目管理生命周期模型建立起项目管理方法规范后,就可以使用 RMC 建立可视化的项目管理方法网站。具体操作如下:

  1> 第一步:建立方法插件:在用 RMC 建立可视化的项目管理方法时,首先,必须在 RMC 中建立一个方法插件( method plug-in )。方法插件可以是一个独立的方法插件,也可以基于其它方法插件的内容,扩展出新的方法。

 图5 建立新的方法插件

  

  在 RMC 的方法制作视图( Authoring )中,我们可以看到统一方法架构( UMA )在工具中的具体应用和 RMC 各种核心概念的具体应用。首先方法插件中包含方法内容和流程两部分。

 图6 RMC 中各种核心概念的组织方式

  
  在"方法内容"目录中,包含了角色、任务、工作产品和指导信息四个主要目录。而在流程目录中,则包含"功能模式"和"交付流程"两个目录。

  2> 步骤二、完成方法内容的开发。方法定制时,我们可以以任务为核心,在任务的属性窗口中完成"步骤"、"角色"、"工作产品"、"指导信息"四个页面的内容,同时实现完成指定任务所需的"角色"、"工作产品"和"指导信息"的定制工作。

   图7 "方法内容"的开发
  

  例如, PMBOK 定义项目管理方法的核心内容是九大知识领域,为了基于 PMBOK 定义出项目管理方法,必须为每个知识领域建立一个"方法内容包",并在每个"方法内容包"中完成该知识领域所需的指定角色、任务、输入输出工作产品,并根据需要为任务和工作产品定义对应的指导信息。

  3> 步骤三、完成"标准类别"和"定制类别"的定义。在 UMA 中将方法内容分成三类:为工作定义(任务和活动的规程)、工作产品(域和工作产品种类)以及角色(角色集)。而在 RMC 中完成"方法内容"后,为了便于进一步进行"功能模式"的开发,此时一般会对实现的方法内容进行分类。如图8所示, RMC 中包含"标准类别"和"定制类别"两个分类目录,它们将决定方法内容在最终的发布网站上的显示。"标准类别"是 RMC 中预定义好的分类方法,它反映了 UMA 的标准分类方法,包含了"规程"( Disciplines )、"领域"( Domains )、"工作产品类别"( Work Product Kinds )、"角色集"( Role Sets )和"工具"等五个标准分类目录,每种分类中只能保存一种类型的"方法内容",分别用来对任务、工作产品、角色和指导信息进行分类。"定制类别"与"标准类别"不同,它里面可以包含任意多种不同的"方法内容",也可以包含多个"标准类别",可以使用它实现根据用户的条件对方法内容进行分类,定义嵌套类别的树结构,允许用户根据这些类别系统地浏览方法内容和流程,而这些"定制类别"最终可以作为方法发布页面上的视图,决定方法发布后的最终显示界面。

 图8 "标准类别"和"定制类别"的定义

  

  步骤四、定义"方法配置"( Configuration )。方法配置是选定方法插件、方法包和交付流程的集合,它定义了方法库的逻辑子集。在 RMC 中,最终方法网站的发布是基于"方法配置"进行的,它使用"方法配置"来最终决定发布的网站中将要包含的"方法内容"和"流程",以及发布网站的最终显示视图。建立新的"功能模式"时,将提示你选择缺省的"配置",以决定在"功能模式"中可以使用的方法内容。有关"方法配置"的具体内容如图9所示:

   图9 建立流程"配置"
  

  4> 步骤五、完成"功能模式"的开发。在 RMC 中,"功能模式"代表了关于某一受关注的关键领域的流程知识,它是可重用的流程片断定义或最佳经验子集,我们随后可以基于它建立整个交付流程。如图10所示,基于 PMBOK 和企业标准的项目管理流程,我们可以为九大知识领域和生命周期模型中的三个阶段分别定义具体"功能模式"。

   图10 建立"功能模式"
  

  在"功能模式"中,可以根据需要加入工作分解结构元素,用来表示具体的工作内容及其逻辑关系,如图11所示,其中可以包括阶段、迭代、活动、任务和里程碑。

  图11 在"功能模式"中建立工作分解结构
  

  为了简化"功能模式"的制作过程,用户可以通过拖拉的方式,将任务直接从配置视图中拖到"功能模式"的工作分解结构视图中,完成工作分解结构的定制。

  图12 通过拖拉的方式完成工作分解结构的定制
  
  然后,用户还必须手工定制"活动流程图",以可视化的方式表示活动之间的逻辑关系,如图13所示, RMC 还会根据"功能模式"中包含的具体"方法内容"的定义,自动产生"详细活动图"。

   图13 定制"活动流程图"和"详细活动图"
  

  5> 步骤六、定制"交付流程"。"交付流程"代表一个方法应用于某一领域的一个端到端的流程实例,它为某类方法的执行提供完整的,覆盖整个生命周期管理流程模板。新的"交付流程"一般会通过重用已有的"功能模式",或在已有的"功能模式"的基础上,经过少量修改实现。这可以通过"交付流程"对"功能模式"的复制和扩展两种重用模式来实现。其中,复制表示将"功能模式"中的所有内容复制到"交付流程"中,之后对"功能模式"的修改将不会影响"交付流程",反之益然;而扩展模式则表示在"交付流程"引用"功能模式"中的内容,因此,对"功能模式"的修改将会同步影响到"交付流程",而且"交付流程"中"功能模式"中的内容为只读。

  图14 定制"活动流程图"和"详细活动图"       

  

  6> 步骤七、将"配置"发布成网站。在进行配置的最后发布前,一般我们会再次光顾 RMC 的"定制类别"部分,在类别中加入刚刚完成的"交付流程"或"功能模式",以便能够按照我们设计的视图,在发布网站上显示方法内容。然后我们就可以正式进行配置发布流程。如图15所示,选择要发布的配置,然后在方法发布配置窗口中制定网站发布路径及相关配置信息,完成发布流程。

   图15 发布方法内容到流程网站
  
 
  7> 步骤八、方法网站的后期制作。在进行配置的最后发布之后,一般我们还会建立类似 RUP 的方法主页,如图16所示,以方便项目团队浏览。之后,就可以使用 WAS、Tomcat、IIS 等,完成网站的最终发布过程。此过程和普通的网站发布过程相同。

 图16 方法网站的后期制作

 
  至此,我们就已经完成了基于企业的标准项目管理方法,使用 RMC 建立可视化的方法网站的全部过程。
 
  4 建立可执行项目管理流程模板

  IBM Rational Portfolio Manager(简称 RPM )是 Rational 的企业级项目管理平台工具,同时也是 IBM 内部进行项目管理的标准化平台,它不但能够为企业的项目管理、大型项目管理和项目组合管理提供很好的平台支持,还具有良好的伸缩能力和灵活性,可以满足不同企业规模、不同项目管理水平与成熟度、不同项目类型、不同项目规模与项目复杂度的需要。

  RPM 内置了模板机制,它是 IBM 在 RPM 中支持项目管理实践经验共享和方法重用的关键策略。在 RPM 的流程模板中,如图17所示,不但包含的项目管理过程所需的工作分解结构、过程文档、任务描述及处理时长、任务参与人员及技能要求、记分卡以及常见问题风险等,而且通过 RPM 和 RMC 内置的导入导出功能,可以直接将 RMC 中定制的项目管理方法导入到 RPM 中,生成可执行的项目管理流程模板,使项目管理团队能够在不知不觉中,轻松愉快的按照组织预定义的项目管理方法,完成项目管理工作。这不但从根本上解决了项目管理流程执行力的问题,还为企业提供了良好的知识共享机制,对提高组织项目管理过程的成熟度有很大帮助。

 图17 RPM 中的方法模板的使用

 
  5 小结

  企业项目组合管理流程的建立、推广和执行是一项长期而艰巨的任务,它必须通过对企业项目组合管理过程的持续改进来实现。而在实践过程中,企业的项目管理过程改进必将经历三个主要阶段:

  第一阶段:建立规范的、可执行的项目管理方法,用来指导项目管理团队进行项目管理活动;

  第二阶段:构建统一的项目管理平台,为项目团队的具体管理过程提供支撑;

  第三阶段:建立起多项目的监控、管理、人力资源平衡以及多项目间的依赖关系处理等能力,保证企业管理者能够根据业务发展要求,在多项目间进行很好的投资组合分析;

  其中建立规范的项目管理方法,是企业项目管理过程改进的基础。在这方面, IBM 的方法定义工具 RMC 将为企业的方法建立和推广执行提供重要帮助。

版权所有:UML软件工程组织