软件项目中客户与开发商的互动关系 作/转载者:段志田 发布时间:2003-5-8 浏览量:952 摘要:软件项目是需要客户自始至终高度参与的项目。客户在项目中的工作质量以及客户和开发商的互动关系是决定项目成败的关键因素。本文在介绍客户在软件项目中的工作范围和作用的基础上,运用项目管理中的组织结构理论和沟通理论,分析了客户和开发商的组织结构关系对项目的影响,尤其是对双方沟通协调和互动关系的影响。
客户是提出需求,提供必要的资金,以达到通过开发商获得软件或服务的组织。开发商是根据客户的需求开发软件,并向客户提交软件和服务的组织。在软件项目中,由于客户需求难以精确定义,双方只能在项目过程中通过“逐步求精”的方法获得最终的软件产品,因此软件项目中开发商和客户的互动关系对项目的成功至关重要。本文主要有两个内容,一是介绍客户在软件项目过程中的作用,从中可以看出客户和开发商互动关系的重要性。二是探讨客户和开发商的组织结构对双方互动关系的影响。
一、软件项目中客户的作用 软件项目过程通常包括客户需求的识别、需求和方案的确定、开发、测试、验收和投产运行几个阶段。在软件项目的整个生命周期中,客户是需求的提出者、软件和服务获得策略的制定者,它选择开发商并监控其开发过程,对开发商在各阶段提交的结果进行评审和确认,对最终产品进行测试验收和组织投产运行。在项目过程中客户和开发商应始终保持有效的沟通,逐步精确定义需求,及时向对方提供和反馈信息。下面根据ISO/IEC TR 15504-2对客户在软件项目中的作用进行具体介绍, 从中可以看出软件项目中客户和开发商互动关系的重要性。1.识别需求和确定获得策略
在项目的初始阶段,客户首先认识到开发软件的需要,然后通过可行性研究,明确目标,确定需求,确定软件获得的策略,并定义软件验收的标准。2.开发商的选择
客户在完成项目初始阶段的准备工作后,开始选择开发商。这包括:准备需求建议书,列明项目的工作范围,软件的性能指标,对开发商交付物的要求,进度要求,评标的标准等。开发商根据客户的需求建议书,准备和提交方案建议书。客户根据开发商的方案建议书选择开发商,与开发商谈判并签订合同,明确期望,双方的责任和义务。3.监控开发商
客户要监控开发商开发过程中的活动,执行合作活动,定期交换技术进度信息,按双方已同意的需求监控开发商的工作情况。4.客户验收
按验收标准验收,根据双方已同意的需求对提交的产品或服务进行评审。5.需求逐步求精过程
客户与开发商保持沟通,收集,处理和跟踪软件过程中的需求,以便精确定义需求和修正不恰当的需求,评估需求更改对项目的冲击。6.运作过程
客户要识别和监控由于软件的引入和运作可能带来的风险,监控运作中出现的问题和产品质量,识别对开发商提供支持服务的需求,监督开发商提供服务的质量。 二、组织结构及其对项目的影响 通常参与项目的客户和开发商不是个人而是组织,组织环境是项目成败的重要决定性因素。这里介绍组织结构对项目的影响。 由于组织目标、资源和环境的差异,造成组织的多种结构形态。最常见的组织结构有三种,职能型结构、项目型结构和矩阵型结构。 1.职能型组织 职能型组织是一个等级组织,每个人有一个明确的主管,组织内按专业将人员分组,如:生产部,销售部,财会部,工程部等等。职能型组织也有项目,但项目的范围限于职能内,例如:职能型组织的工程部独立于生产部和营销部做自己的工作。在纯职能型组织内,一个新产品的开发,其设计阶段通常被称为设计项目,它只有工程部的人员参与,当出现有关制造的问题时,问题按等级逐级传递到工程部经理,工程部经理向生产部经理咨询,然后再按等级反馈到工程部的项目经理。职能型组织的优点是没有重复活动,职能优异。其缺点是狭隘、不全面,反应缓慢,不注重客户。2.项目型组织
组织中的绝大多数资源参与项目工作,项目组人员被组织在一起专门从事项目工作,项目经理有很大的独立性和权威。在项目型组织中也有称为部门的组织单位,但这些组织单位要么直接向项目经理汇报,要么为各个项目提供各种支持服务。项目型组织的优点是能控制资源,向客户负责。其缺点是资源利用率低,项目间缺乏知识信息交流。3.矩阵型组织
矩阵型组织混合了职能型组织和项目型组织的特点。在矩阵型组织中,项目组通常有全职的项目经理,项目组的其他人员来自各个职能部门,他们在必要时可以为项目兼职或全职工作一段时间,因此项目组的成员具有“临时性”,但作为项目组整体来说,具有“专职性”。因此,矩阵型组织的优点是能有效利用资源,职能专业知识可供多个项目共享,可以促进学习和交流知识。由于项目组在组织内部可以有效的沟通协调一致,从而形成对客户和项目负责的项目队伍,因此它具有注重客户,增强客户满意度的优点。其缺点是项目组人员一方面向项目经理负责和报告工作,另一方面要向职能经理负责和报告工作,这种双向汇报关系,需要平衡权利。在矩阵型组织中,根据项目经理的独立性和权威的强弱以及项目组内全职人员的多少,分为强矩阵型和弱矩阵型。本文所指矩阵型组织一般是指中强型矩阵组织。 三、客户和开发商的组织结构关系对项目的影响 如上所述,客户和开发商在软件项目过程中的互动关系尤为重要。但双方的互动行为受到各自组织结构的深刻影响。这里提出一个组织结构关系模型,初步探讨组织结构对软件项目的影响。作者从事软件项目的开发管理多年,积累了很多案例,但本文限于篇幅不能举证。 信息沟通是项目的生命线,一般而言,客户和开发商之间建立和维持一条沟通渠道,是双方进行低成本有效沟通的理想选择。但是如果项目的一方是职能型组织的多个部门或多个相对独立的子组织,而且它们不能组成内部协调有效的项目组,那么项目的另一方不得不与对方的多个部门或子组织直接沟通协调。根据组织结构的三种主要类型,软件项目中的客户和开发商之间可能出现下表所列的九种组织结构关系,这些关系对双方在项目中的沟通协调和互动起着决定性的影响。下面详细分析双方组织结构关系对项目的影响,尤其是对双方沟通协调的影响。开发商
职能型 矩阵型 项目型 职能型 CF-VF CF-VM CF-VP 客户:矩阵型 CM-VF CM-VM CM-VP 项目型 CP-VF CP-VM CP-VP 客户-开发商组织结构关系 注:表中CF,CM,CP分别表示职能型、矩阵型、项目型组织 表中VF,VM,VP分别表示职能型、矩阵型、项目型组织1.CF-VF: 客户和开发商都是职能型组织
如果客户的项目限于单个职能部门内,而且开发工作由开发商的一个职能部门完成。在这种情况下,只需要双方的部门经理进行有效的沟通协调。双方的沟通模式见图CF-VF(1)。例如,银行的人事部委托某公司开发劳资管理软件,由于项目小,项目从需求的提出,实施和投产,仅在客户方人事部和开发方软件部内执行,双方的沟通协调简单、直接,因此项目容易成功。 如果客户的项目较大,必须有多个职能部门参与工作才能完成项目,但开发工作由开发商的一个职能部门完成。项目沟通协调模式见图CF-VF(2)。从图可以看出,随着项目参与方的增加,项目沟通成本迅速增加。当项目只有两个参与方时,只需要维持一条沟通渠道,当项目有三个参与方时,需要维持三条沟通渠道,当项目有五个参与方时,需要维持10条沟通渠道,当项目有20个参与方时,需要维持190条沟通渠道。数学上可以证明,当项目有N个参与方时,需要维持N×(N-1)÷2条沟通渠道。在这种情况下,开发方的部门经理要与客户方的多个职能经理进行有效的沟通,仔细识别客户的各职能部门在项目中的作用和利益,并与客户的职能经理的上级主管进行适当接触,才能较好地协调项目。当项目参与方很多时,需要花费较大的成本才能建立和维持有效的沟通渠道。如果不能建立和维持有效的沟通渠道,软件项目就很容易失败。因此,建议(一)在项目规划时,应尽可能减少项目参与方的数量,(二)在项目实施中,尽可能合理分割项目,减少项目中各参与方的关联程度。(三)在签订合约时,要求客户指定专门的项目经理或项目协调人,以避免在项目工作中由开发商去协调客户的不同部门。但要记住客户是职能型组织,客户项目经理对组织内各职能部门的协调能力很弱,开发商除了要保持与客户项目经理所在职能部门的主要沟通渠道外,还要与客户的其他部门接触沟通,以弥补主要沟通渠道的不足,沟通模式见图CF-CF(2)’。 如果开发工作由开发商的多个职能部门完成,沟通模式见图CF-CF(3)’。在这种情况下,客户应在签订合约时,要求开发商成立项目组,指定专门的项目经理,以避免在项目工作中由客户花很多精力去协调开发商的不同部门。2.CF-VM: 客户是职能型组织,开发商是矩阵型组织
在这种情况下,开发商的项目组与职能型结构的客户的一个部门或多个部门共同参与完成项目。双方的基本沟通模式见图CF-VM。上面关于CF-VF的很多分析也适用于这种情况。不同的是开发商是矩阵型组织,客户应注意识别开发商是弱矩阵组织还是强矩阵组织,开发商的项目经理在其组织内的权威和协调能力如何,显然一个强矩阵组织的开发商对客户的项目更有利。此外,由于在矩阵型组织中,项目组的部分人力资源不是专用的,是与开发商的其他项目共享的。因此,客户在签订合约时,最好对项目所需要的关键技术人员作出明确规定。即便如此,由于项目计划的变更,仍有可能导致开发商关键技术人员使用的变化,因此在项目过程中,客户应关注开发商关键技术人员到位情况。3.CF-VP: 客户是职能型组织,开发商是项目型组织
双方的基本沟通模式见图CF-VP。双方的沟通关系基本与上述的CF-VM模式相同。但在项目过程中,开发商的资源更能得到保证,这是因为项目型组织内的项目资源是专用的。4.CM-VF::客户是矩阵型组织,开发商是职能型组织
在这种情况下,客户内部具有良好的项目协调机制。如果开发工作可以由开发商的一个部门完成,那么双方的沟通渠道只有一个,客户项目组和开发商的部门之间容易进行简单直接的沟通协调。 但是,如果开发工作由开发商的多个职能部门完成,这时双方的基本沟通模式见图CM-VF。客户应在签订合约时,要求开发商指定专门的项目经理或项目协调人,以避免在项目工作中由客户去协调开发商的不同部门。此时,客户方的项目经理除要与开发商的项目经理保持沟通外,还要注意与开发商的多个职能经理保持联系,识别开发商的各职能部门在项目中的作用和利益,识别开发方项目经理是否具有足够的权威,才能较好的弥补开发商内部沟通协调不足的情况。此外,作为开发商要关心客户的关键资源是否能保证及时提供。5.CP-VF: 客户是项目型组织,开发商是职能行组织
这种情况基本上同上述的CM-VF,但客户的项目组资源是专用的,原则上不会出现意外的资源调动失灵。双方的基本沟通模式见图CP-VF。6.CM-VM,CP-VM,CM-VP,CP-VP: 客户和开发商都是矩阵型或项目型组织
在这四种情况下,客户和开发商之间的沟通协调可以在项目组和项目组之间完成,因此是简单直接的一对一沟通关系。在这四种关系中,除专职的项目组对专职的项目组这种情况外,其他三种关系的一方应对矩阵型组织的另一方,关注其关键资源的提供情况,关注其项目经理的权威和影响力,识别对方是强矩阵组织还是弱矩阵组织,正确判断和决策,确保项目沟通协调有效。这四种情况的双方沟通模式分别见图CM-VM,CP-VM,CM-VP,CP-VP。
四、结束语 软件项目是需要客户自始至终高度参与的项目。客户在项目中的工作质量以及客户和开发商的互动关系是决定项目成败的关键因素。本文较全面的介绍了客户在软件项目中的工作范围和作用,运用项目管理中的组织结构理论,分析了客户和开发商的组织结构关系对项目的影响,尤其是对双方沟通协调和互动关系的影响。 从上述分析可以看到,客户在进行软件项目规划时,就应该充分认识自己在项目各个阶段中的重要作用,并将组织结构因素考虑进来,一方面,尽可能建立起内部各部门协调有效的项目管理机制,另一方面,尽可能合理的分解项目的目标和范围,最大可能的减少项目实施中的各项目参加方的关联程度,从而降低项目沟通协调成本,提高项目沟通协调的效率,促进项目的成功。 现阶段,我国各级政府和各企事业单位(这是开发商的主要客户)的组织结构主体是高度职能化的组织。在此背景下,在单个职能部门内开展项目的开发或者组成专门的项目机构开展项目,较容易取得项目的成功。由多个部门协调开展项目,则步履维艰。要解决这一问题,需要组织结构向适应性强、灵活而又协调一致的矩阵型组织转变,或者在组织内设立首席信息执行官即CIO,由CIO统一领导和协调大型软件或信息系统项目。参考文献: 1. Information technology—Software process assessment, ISO/IEC TR 15504-2:1998(E) 2. Managing Projects in Organizations, J. Davidson Frame, Jossey-Bass Publishers. San Francisco, 1987 3. A Guide to the Project Management Body of Knowledge, PMI Standards Committee, William R. Duncan, Director of Standards, 1996 4. 成功的项目管理,(美)杰克.吉多等著,张金成等译,机械工业出版社,1999