【IT168 技术文档】执行效率的高低在很大程度上决定了项目价值的大小,提高执行效率是项目管理的核心所在。要提高项目的执行效率,必须提高项目的构件化程度,并提高这些构件的复用性。
项目管理既有科学的成分,又有艺术的成分。但是,什么是科学, 什么是艺术,二者的区别在哪里?当我们了解某件事物的程度不够充分,不够深入细致时,该事物的艺术性较大,反之则科学性较大。一幅传世名画,可以通过将其细分成很多部分进行复制;一首传世名曲,可以通过记载它的曲谱得到传播。当我们有了高像素的复印技术、高保真的录音技术时,要复制名画、传播名曲就更容易。有媒体报道,日本已经开发出一种产品,通过它可以从互联网上下载花的香味。同样,基因图谱的逐渐解密也使我们越来越了解人们种种状态的产生根源。可见,技术是艺术的解密者,而技术又来自于对细节的知识积累。我们可以据此去寻求更有效的项目管理理论和方法。
《管道的故事》的作者贝克·哈吉斯认为,如果想要成为百万富翁,我们所需要做的只是跟随以下三个步骤:明白财富是如何建立和积累的;复制已经被证实的建立财富的系统;在一段时间内持续不懈。能不能据此成为百万富翁我没有试过,但认识、复制、坚持确实是提高项目执行效率的有效方式,这种方式就是“构件化项目管理”。
所谓构件化项目管理就是通过将完成项目所需要的构件进行细分、标准化、封装和提高其复用性,将企业内外的项目知识和经验转化为项目管理技术,从而减少对项目组成员个体知识和能力的依赖,并提高他们的个体工作效率和项目总体执行效率的管理体系。
谈到效率,我们很容易想起流水线和泰勒制,因为流水线是最高效的生产方式,而泰勒制则使体力工人的劳动效率提高了50倍。如果项目的实施方式也能够变成流水线那该有多好啊!你或许会认为这种设想是玩笑话,是痴人说梦,因为项目和流水线正好是截然不同的两种工作方式:前者是独特性的,而后者则是重复性的。真的是这样吗?这种结论下得太早了。
我们可以从两个方面理解项目的独特性:一方面,对承担项目的企业来说项目本身是独特的,但是,如果将项目进行分解再分解,我们就会发现这些细分部分中有很多是我们以前做过的,或似曾相识的。另一方面,对承担项目的人员来说项目是独特的,但在企业范围内,曾经有人完成过该项目或完成过该项目中的一部分。我们的主要问题不在于项目的特殊性,而在于不知道该如何细分项目任务,在于我们不知道其他人是怎么成功完成项目任务的。
知识管理越来越受到人们的重视,但是,只有将知识转化为技术才能提高项目的执行效率,反过来,只有知道何种技术对提高项目执行效率有帮助,我们才知道如何提炼、积累和运用知识。常见的情况是,我们寄希望于能人,寄希望于那些“复合型”的、有足够经验的人才,希望他们能够提高项目的执行效率,而不去探求他们的工作中有哪些是可标准化、哪些是可复用的。如果没有足够的能人,我们会用更多的人来参与项目,其结果是项目越复杂,完成项目所需人数会呈指数增长,而管理的复杂程度则增长更快。很多企业拥有的关于项目的知识远不如它的员工拥有的知识多,管理者们也知道这一点,所以我们会自觉不自觉地放弃了管理责任,而希望通过激励员工的积极性来提高项目的执行效率。遗憾的是,结果常常使我们失望。企业要实现构件化项目管理需要经过以下步骤:
(1)将项目拆分成构件,并对这些构件进行标准化、封装以提高其复用性。
项目是由以下构件集成的:
①流程,即为实现某个目标而设定的一系列次序相对固定的步骤。②活动,即为提供符合要求的结果而进行的工作。活动可细分为步骤,步骤主要分为三类:计划步骤(角色了解任务的实质、收集并检查输入工件、规划输出结果)、执行步骤(角色创建或更新某些工件)、复审步骤(在这一步骤中,角色按某些标准检查结果)。③角色,每个项目活动都被分配给具体的角色,角色代表项目中个人承担的任务,并定义其如何完成工作。④工件,即流程的工作产品。工件提供活动的输入和输出,并提供活动之间的通信机制。工件包含文档(使用指南、标准词汇、模板、用例等)、模型(包括分析模型、设计模型、实施模型等)和工具(包括开发工具、测试工具、配置管理工具等)。角色使用工件执行活动,并在执行活动的过程中生成工件。这些项目构件之间的关系可用下图简单表示。
将项目分解为构件,并将其进行标准化和封装有时十分困难,因为其中会存在我们不知道的东西,就是人们常说的“魔鬼藏在细节中”。即使我们对很多工作已经很熟悉,要对这些“很熟悉”的工作进行定义也不是一件容易的事,它需要依靠企业范围的知识管理,需要创造性,更需要持之以恒。
对项目进行构件化的任务需要在项目经理及项目组成员帮助下进行,但是,这些人不是构件化的主要责任者,因为他们没有时间去做这些工作,而且他们也一般不能全面了解完成项目需要哪些构件,对此承担责任的是项目管理办公室,如果企业没有项目管理办公室,则该项任务需要由职能部门来承担。需要注意的是,构件必须达到能够封装的程度才是有效的。所谓封装,表明只要对一个构件的两次输入一样,其两次输出结果也一样。就像一个集成电路,我们只要处理好它与外部的接口,而不需要 了解其内部的细节,就能组合成不同功 能的、复杂的产品。构件化、封装、复用是简化项目复杂度、降低项目成本、保 证项目质量的可靠 性、提高项目进度的三个关键词。
(2)按不同的角色对项目组成员进行训练。
提高人员的可替代性会使企业在激烈的人才竞争、人才流动日益频繁的商业环境中占据主动。不可否认,每个企业总有不可或缺的人员,但这些人员一定要控制在很小的比例。其实,没有什么人是完完全全不可代替的,我们说某个人的可替代性弱,真正的含义是指要找到替代者需要更长的时间、更高的费用。因此,我们需要找到缩短时间、降低费用的途径。这个途径就是专业分工。现在很多人都在提复合型人才,但真正有效率又价格合理的是专业型人才。高效完成项目需要能够按照不同的角色分工有效地整合各种专业人才,需要使人们去干他们最擅长、最有效率的事情,而将不擅长、低效率的工作交给更合适的人去做。很多企业缺乏有效的整合人力资源的机制,而将责任放在拥有综合技能的人员身上,其结果是造成了人员的可替代性弱、工作效率低。
只有当我们能够对项目角色进行定义、细分后,才能有效地对项目组成员进行培训,使他们迅速胜任项目角色,也才能消除企业中普遍存在的岗位设定与实际工作不一致的情况。
(3)建立机制,使项目组成员能够按照构件化的方式进行工作。与前面两个步骤相比,这个步骤最困难。要实现该步骤,需要改变人们的观念和调整企业的管理体系。效率与个性化常常难以共存,希望在项目中既能提高执行效率又能满足项组成员个性和独特风格是不现实的。因为项目的活动密切关联,一个活动的弹性会引起连锁反应,最后引起项目计划的大幅震荡,使计划名存实亡。为了实现构件化项目管理,我们必须首先建立“高效工作,快乐生活”的观念,毕竟能够从工作过程得到乐趣的只能是少数人,如果奢望人们都能快乐工作,其结果很可能是将工作与生活混为一谈,既影响了工作又影响了生活。我国企业管理人员、特别是高管人员普遍难以享受节假日就是明证。
当然,企业毕竟不能将人看成机器,也不能认为员工只受经济利益驱动,但这些不是体现在完成项目工作上,而是主要体现在项目工作之外的激励、岗位调配、培训发展等方面。因此,企业必须设定相应的管理体系,以保证“高效工作,快乐生活”的实现。同时,企业还必须使项目组成员能够随时知道项目角色之间及其任务之间的关联关系、局部变更对整体的影响,以及处理好封装构件之间的接口、规范的沟通等,只有这样才能保证构件化项目管理的实现。这些内容我们将在以后的专栏中进一步讨论。
由Rational公司开发的Ra-tional Unified Process(简称RUP)就是一种具有代表性的构件化产品。它是一个面向对象的软件工程通用业务管理方法,描述了一系列相关的软件工程流程,这些流程具有相同的构架。RUP中的核心流程有业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境等,每个核心流程都与特定的模型集相关,并辅之于工作流程明细图以显示流程所涉及的角色(分析员、架构设计师、架构复审员、封装体设计员、代码复审员、数据库设计员、实施员等)、输入和输出工件(包括用例模型、设计模型、设计类、用例、文档模板、源代码、可执行程序等)以及执行的活动(包括查找主角、查找用例、建立主角与用例的交互方式、生成用例模型、评估结果等)。RUP对所有这些内容进行了标准定义和细化,并捉供了与需求管理、可视化建模、自动测试、变更管理等相关的工具集,如Ra-tional Rose、RequisitePro、ClearCaSe、 ClearQUeSt、TestStudio等。RUP汇集了现代软件开发中多方面的非常好的经验,为适应各种项目及组织的需要提供了灵活的形式,它为在开发组织中分配任务和职责提供了一种规范方法,其目标是确保在可预计的时间安排和预算内开发出满足最终用户需求的高品质的软件。由于RUP能够通过增加软件开发工作的复用性,降低在知识和经验方面对各种角色的要求,提高软件开发的效率和可靠性,IBM花费50亿美元收购了该公司,以体现构件化的价值。
在泰勒制之前,人是第一位的,人们依靠各自的能力去工作;泰勒制产生后,体制成了第一位人们依据设计好的科学方法去工作。经过几十年,人又成了第一位,“以人为本”大行其道,很多企业将希望寄托在“人才’’身上,或者说寄托在少数能人的知识、经验、技能甚至直觉上。高素质的人才当然是重要的,但是,世事轮回,随着企业整体知识和技术的积累,是不是又该轮到体制是第一位了呢?这不是简单的泰勒制的复归,而是一种螺旋式上升的管理规律,是符合辩证法的。