1、第11章 软件项目合同管理 第11章 软件项目合同管理 11.1 项目采购项目采购 11.2 合同类型合同类型 11.3 合同管理合同管理 11.4 软件外包软件外包11.5 小结小结 第11章 软件项目合同管理 11.1 项项 目目 采采 购购采购是指从组织外或项目系统外获取产品和服务的完整的购买过程。软件项目采购是从软件项目外部购买项目所需产品和服务的过程。采购过程涉及具有不同目标的双方或多方,各方在一定市场条件下相互影响和制约。通过流程化和标准化的采购管理和运作,可以达到降低成本、增加利润的作用。第11章 软件项目合同管理 1.软件产品采购的种类软件产品采购的种类对软件产品,一般采购可以
2、分为以下两大类。第一类是对已经在市场流通的软件产品进行采购,这些是通用的软件产品。例如,某企业想做信息化建设项目,涉及数据库,就可以在目前市场上流行的几种厂家和种类的数据库中选择。例如,Oracle公司的Oracle数据库、Microsoft公司的SQL Server数据库和IBM公司的DB2数据库等。然后根据自己的需求,通过询价、签订合同和安装培训等过程来购买此类产品,这种采购过程基本已经形成几套通用的比较简单的解决方案,国内企业在处理这类产品的采购时大部分都处理得较好。但是个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。第11章 软件项目合同管
3、理 另一类软件产品采购形式是外包采购。在市场上没有现成的产品或没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业,就需要外包采购。例如,某企业需要实施企业资源计划(Enterprise Resource Planning,ERP)项目,虽然可以购买一些现成的商用软件,但是,基于本企业业务流程的管理软件必须定制必须自己开发或外包给别的公司。第11章 软件项目合同管理 2.项目采购的重要性项目采购的重要性IT行业的软件采购比较普遍,而且已经成为IT项目中获得产品或服务的一个重要手段。主要是因为下面的一些原因:(1)降低固定成本和经常性成本。例如,客户可以通过合理选
4、择供应商来节省IT硬、软件的成本。(2)可以促使客户组织将重点放在核心业务上。大部分公司并没有IT项目部,如果在这方面投入大量的时间和资源,就会大大提高人员的负荷,通过对IT职能进行外包性的采购,员工可以将精力放在对企业至关重要的工作上。(3)获取技能和技术。例如,项目可能需要某领域专家的特殊服务或在某个时段需要使用昂贵的硬件或软件,这时通过采购的形式就可以确保项目获得所需要的技能或技术。第11章 软件项目合同管理(4)提供经营的灵活性。企业工作高峰时,通过采购可以获取外部人员为企业业务提供服务。(5)降低/转移风险。通过采购,把部分项目风险转嫁给别的单位或个人。3.项目采购的过程项目采购的过
5、程项目采购一般包括以下主要过程:采购计划编制、询价计划编制、询价、承包商选择、合同管理和合同收尾。1)采购计划编制采购计划编制是一个项目管理过程,确定项目的哪些需求可以通过采用组织外部的产品或服务得到最好的满足,包括决定是否要采购、如何去采购、采购什么、采购多少、以及何时采购。第11章 软件项目合同管理 对大多数项目来说,在编制采购计划过程中考虑周到并具有创造性是很重要的。采购工作通常由公司的采购部门而非信息管理部门主导,采购计划编制的输入输出如图11.1所示。图11.1 采购计划编制:输入、工具与技术和输出(输入表明了编制采购计划需要的基本信息,工具与技术说明了其采用的主要方法)第11章 软
6、件项目合同管理 采购计划编制所需的输入包括:项目范围说明书、产品说明书、市场环境、约束条件和其他计划。在采购计划的编制中凡是可获得的其他计划都应该作为编制基础而给予充分考虑,通常必须考虑的其他计划有工作分解结构、初步成本和进度计划估算、质量管理计划和风险控制计划等。采购计划的工具和技术有以下2种:自制和外购分析。此法可用来分析哪些软件系统或模块由项目组开发,哪些软件或组件、服务向外面的厂商购买或开发。通常通过比较两种方式的成本和时间来进行决策,是非常普遍的管理工具。第11章 软件项目合同管理 专家意见。在采购计划的工具和技术中往往需要专家意见来评估管理输入,这种专家意见可由具有专门知识、来自多
7、种渠道的团体和个人提供。采购计划编制的输出有下面两部分内容:采购管理计划。采购管理计划应说明如何管理从询价计划到合同收尾的整个采购过程,是总体项目计划的一部分。根据项目需要,采购计划可以是正式的或非正式的、非常详细的或概括性的,具体采用什么形式要根据项目的需要。采购管理计划在整个项目计划中是一个辅助因素。第11章 软件项目合同管理 工作说明书(Statement Of Work,SOW)。SOW是对采购所要求完成工作的描述,是一种范围说明书,要能足够详细地说明采购项目,以方便潜在的卖方确定其是否提供该项目所需的产品和服务,并确定一个适当的价格。工作说明书应尽可能地明确、完备和简练,应包括附属服
8、务的说明书,如所购产品对项目结束后的运作支持。在某些应用领域,对工作说明书有具体的内容、格式要求。第11章 软件项目合同管理 2)询价计划编制询价计划编制包括准备询价所需的文件并确定合同授予的评判标准。询价计划编制的依据是采购管理计划、工作说明书和其他计划编制的结果。其他计划应该作为采购计划编制的一个环节而再次被审查,需要特别注意的是询价计划的编制应该与项目进度计划保持高度一致,这是项目实现进度、成本控制的基本保障。第11章 软件项目合同管理 询价计划编制的输出有下面两部分内容:采购文档。采购文档用于征求潜在的卖主所提供的建议,应方便潜在卖方做出准备以全面的答复为目的进行估价设计,通常包括有关
9、的工作说明书、对于期望的答复形式的说明书和所有必要的合同条款。根据项目采购主要考虑的评价指标情况采购文档会有不同的名词,如主要考虑价格因素时称其为“投标”或“报价”;主要考虑技术、技能或方法时通常采用“建议书”这一术语;此外,采购文档常用的名称包括投标邀请、邀请提交建议书、邀请报价、谈判邀请和承包商初步答复等。有时采购文档这些术语会相互交换使用,应注意不要对使用某一术语可能带来的暗示意义作无保证的推测。第11章 软件项目合同管理 评价标准。评价标准用于对建议书进行排序或评分。如果项目采购可以很快地从多家可接受的来源中获得,则评价标准可能仅限于采购成本,否则就必须确定其他的采购评价标准并形成相应
10、的文档。除采购成本标准外,常用的其他采购评价标准有卖方的信誉、技术能力、管理方法和财务能力等。如果采购项目己经存在于一些可接受的渠道中,评估标准可限于采购价格(采购价格包括采购项目的成本和采购费用)。如果采购项目还不存在,那么应制定其它标准以形成一个完整的评价制度。第11章 软件项目合同管理 3)询价询价就是从潜在的卖方获得建议书或标书,该过程的主要输出就是收到建议书或标书。一旦买方收到建议书,就要选择一家供应商或取消采购,这是很费时的过程。供方选择包括评估投标者的建议书,选择一个最佳的投标者,进行合同谈判,签订合同。采购过程中,项目干系人应该参与项目最佳供应商的选择。买方通常制定一个简短的列
11、表,只列出前3名到前5名的供应商,以减少选择过程的工作量。询价过程通常包括采购文件的最后形成、广告、投标会的召开以及获得工作建议书或标书。但是,偶尔也有不采用正式的询价过程而进行的项目采购。第11章 软件项目合同管理 4)供方选择一旦买方收到建议书就需要选择一家卖家,供方选择包括接受建议书(或投标书)及选择供货商的评价标准。在供方选择决策过程中除了采购成本以外,还可能需要评价许多其他因素,例如可接受卖方按时交货的能力的评价;分别评价建议书技术(方法)部分和商务(价格)部分,或投标书的技术标和商务标;对于关键产品可能需要有多个供方等。根据初步建议书,列出合格卖主的名单,然后根据更详细的和综合的建
12、议书进行更为仔细的评价。对主要采购项目,这个过程可以重复。第11章 软件项目合同管理 供方选择通过合同谈判、量化定性指标的加权评价、编制采购成本估算等方法,以建议书(或投标书)、评价标准、组织政策为依据进行。供方选择的结果就是与被选择的项目采购供货方签订采购合同。合同是一份要求卖方承担提供一定产品或服务责任,买方承担向卖方付款责任的互相约束的协议。虽然所有项目文档都经过一定形式的审查和批准,但是,合同的法律约束性常常意味着合同可能需要经过更广泛的批准过程。总之,审查和批准的重点应该保证合同文本说明的是能够满足项目特定需求的产品和服务。第11章 软件项目合同管理 5)合同管理合同管理就是保证卖方
13、的行为符合合同的要求,这个过程包括监督合同的履行、进行支付、合同修改。到合同管理过程结束的时候,项目组期望承包出去的大量工作己经完成。在书写和管理合同过程中有法律和合同专业人士的参与是作常重要的。在现实中不少项目经理不懂合同管理,许多技术人员根本就对合同不屑一顾。理想情况下项目经理及其团队都应当积极参与合同的起草和管理过程,这样每个人都能理解一个好的项目采购管理的重要性。项目团队在处理合同问题时应多征求专家的意见。项目成员必须留意,如果对合同不理解,可能会引起法律问题。第11章 软件项目合同管理 6)合同收尾合同收尾(即合同的完成和结算)是项目采购管理的最后一个过程。这个过程通常包括产品审核,
14、正式验收和收尾,以及合同审计。合同收尾的一个内容就是进行产品审核,以验证所有的工作是否被正确地、令人满意地完成。另一个内容是更新反映最终成果的记录和归档将来会用到的信息的管理活动。合同收尾的输出包括合同文件、正式验收和收尾。上述项目采购过程不仅彼此交互,而且还与其他知识领域的过程交互。根据项目需要,每个过程可能涉及一人或多人或集体所付出的努力。第11章 软件项目合同管理 11.2 合合 同同 类类 型型合同类型是应当考虑的一件重要事项。软件项目采购根据采购类型不同,需要对应不同类型的合同,不同类型的合同将在不同情况下使用。合同分类也有很多种,可以按照承包的范围进行分类,也可以按照工作的内容进行
15、分类,还可以按照成本的支付方式进行分类。Bob Hughes等人通过对供应商所得到的报酬的计算方法来区分不同的合同,包括固定价格合同、时间和材料合同和每单位固定价格合同。第11章 软件项目合同管理 11.2.1 固定价格合同固定价格合同固定价格合同(Fixed Price Contract)也称为总价合同(Lump Sum Contract),指详细定义产品或服务的固定总价。在这种情况下,当合同签订时价格已经确定了。客户知道:如果合同的条款没有变化,这就是项目完成时应该支付的价格。为了让这种机制更加有效,在开始时必须让承包商知道客户的需求,而且这些需求不能改变。例如,一家公司需购买100台具有
16、一定分辨率和一定打印速度的激光打印机,要求在2个月内交付到指定地点,该公司可以就此签订一份固定价格合同。在该例中明确定义了产品和交付日期。第11章 软件项目合同管理 换一种说法就是,如果这个合同是为了构建一个软件系统,则必须完成详细的需求分析。一旦开始开发,客户就不能在没有重新商定价格的情况下更改需求。这种合同的优点在于:知道客户的花费。如果客户要对原先的需求进行更改,需要明确费用。供应商的动机。供应商有一种以合算的方式管理交付系统的动机。其缺点在于:意外情况下的价格较高。供应商承受对产品规模原始估计的任何错误所带来的风险。为了减少这种风险的影响,供应商将在投标书中计算价格时留出足够的余地。第
17、11章 软件项目合同管理 修改需求困难。在开发过程中有时需要修改需求的范围,这有可能造成供应商和客户之间的摩擦。增加修改成本的压力。在和其他投标商竞争时,供应商不得不给出尽可能低的价格。一旦合同签订了,当给出进一步的需求时,供应商就会提出很高的修改价格。对系统质量的威胁。为了满足固定的价格,软件的质量可能得不到保证。固定价格合同也可以包括满足或超越既定项目目标的激励费。例如,该合同可能包括如果在1个月内交付激光打印机,则提供激励费。固定价格合同对于买方而言承担的风险最小。第11章 软件项目合同管理 11.2.2 时间和材料合同时间和材料合同在时间和材料合同(Time and Material
18、Contract)中客户必须为每个单位(例如每个员工工时)的工作量付出一定的报酬。供应商通常会就当前对客户需求的理解给出总体的成本,但是这并不是最终报酬的基础。供应商通常会定期(例如每月)向客户列出已完成工作的清单。例如一位独立计算机顾问与一家公司签订的合同内可能规定按照服务时间每小时收费80元,另外还包括为项目提供特定材料的固定价款1万元;材料费也可以依据批准的材料购货收据支付,并规定上限为1万元;顾问每周或每月向公司提交发票,列明本周或本月的材料费、工时和相关工作的描述。第11章 软件项目合同管理 这种方法的优点如下:需求修改很容易处理。如果项目有一个研究方向,随着项目的深入,项目的研究方
19、向会发生变化,那么这可能是恰当的计算报酬的办法。没有价格的压力。没有价格的压力能创造出更高质量的软件。这种方法的缺点是:客户的义务。客户要承受与需求定义不妥和需求变更相关的所有风险。供应商缺乏动力。在以合算的方式工作或在控制交付系统的范围方面,供应商没有动力。第11章 软件项目合同管理 因为供应商似乎得到的是一张空白支票,所以时间和材料合同并不受欢迎。这种类型的合同通常用在工作无法明确定义,而且无法预测其总成本的情况下。另外,为了防止成本无限制增加,双方通常会协定最高限价和时间限制。11.2.3 固定单价合同固定单价合同固定单价合同(Fixed Price Unit Contract)是要求买
20、方向卖方按服务的预订单价支付价款的合同,合同总价是完成该项工作所需工作量的函数。假设IT部门有一份购买计算机硬件的单价合同,如果该公司购买1台,成本可能为5000元;如果购买10台,成本将为50 000元;这种类型的合同经常含有数量折扣。举例而言,如果一个公司的购买量为1050台,则合同成本可能是每台4 000元;如果购买量超过50台单价将降至3000元。第11章 软件项目合同管理 固定单价合同经常与计算功能点相关。在项目开始时已经计算或估计好要交付系统的规模。交付系统的规模可以通过代码行数来估计,但是,可以从需求文档中更容易、更可靠地获得功能点数(Function Point,FP)。每个单
21、位的价格都会清楚地注明,最终价格就是单位价格乘以单位数量得到的。表11-1是一个典型的价格表。第11章 软件项目合同管理 表表11-1 每个功能点价格表每个功能点价格表第11章 软件项目合同管理 在软件实际的开发过程中应用系统的范围可能会随着开发的进行而增长。所以要求软件供应商为开发项目所有的阶段给出单一价格可能不太现实。因为在需求还没有明确的情况下不能估算出所需的构造工作量。为了解决上述问题,可以协商签订一系列的合同,每个合同覆盖系统开发的不同阶段。或者软件供应商可能首先进行软件设计,从这个设计中就能导出FP的数量。然后根据“每个功能点的功能设计成本”列的数据计算出设计工作所需要的费用。如果
22、设计的系统有1000个功能点,那么费用就是1000242=242000美元。如果设计完成了,就构建并交付实际的软件,则将再增加收取1000725=725000美元。如第11章 软件项目合同管理 果用户有了新的需求,该系统的范围也要增长,则新需求将根据设计和实现相结合的收费率来收费。例如,如果新的需求加起来有100个功能点,那么,多余工作的收费将是967100=96700美元。这种方法的优点在于:客户的理解。客户可以清楚地知道价格是如何计算的,并知道修改需求之后价格如何变化。可比较性。不同的价格表可以进行比较。产生新功能。供应商不承担增加功能的风险。供应商的效率。与时间和材料合同不同的是供应商仍
23、有以合算的方式交付所需要功能的动力。第11章 软件项目合同管理 生命周期的范围。需求不需要在开始时明确,因此开发合同既能覆盖项目的分析阶段,又能覆盖项目的设计阶段。这种方法的缺点是:软件规模度量有困难。代码行数很容易由于采用较为冗长的编码风格而膨胀。对于功能点而言,可能在功能点的数量上产生分歧:在某些情况下,功能点的计算规则可能对供应商或客户不公平。特别是用户几乎不熟悉功能点的概念,因而需要特殊的训练,解决方法就是使用独立的功能点计算器。修改需求。有一些修改可能会严重影响现有的事务处理,却不会对功能点的数量有什么影响,因而必须就如何处理这些修改做出决定。开发末期的修改几乎总要比开发前期的修改费
24、力。第11章 软件项目合同管理 为了减少后一个缺点,有的专家给出了依据修改出现的时间来确定收费的建议,如表11-2所示。表表11-2 变更功能点的额外费用举例变更功能点的额外费用举例第11章 软件项目合同管理 除了以上三种付酬方式之外,还有一些其它的选择方案或经修改的选择方案。例如规格说明的实现可能采用固定价格,同时还附有进行添加或修改所需要收费的条款(按每个功能点FP进行收费)。还有一种情况是当承包商必须购买大量的设备时,价格也会波动,因为这种开销不是由于承包商的失误所造成的,在这种情况下就有可能达成一个谈判的合同:其中劳动按照固定价格计算,而所使用的某个特定组件则按其实际成本计算。第11章
25、 软件项目合同管理 当考虑到合同的义务和报酬时,再一次涉及软件的本质问题(即:相对不可见性和灵活性),这意味着很难确定系统的规模和随后的开发工作量。如果承包商确实规定了一个稳定的工作价格,那么必须对要执行的任务进行仔细的限制。例如,让承包商为每个项目的各个开发阶段都制定同个价格是不切实际的:当需求还没有确定时,怎么可能准确地估计构建软件的工作量呢?因此,有必要商定一系列的合同,每个合同对应系统开发生命周期的不同部分。另一种合同分类方法是以欧盟的规定为基础的,根据选择承包商的方法来确定(至少是初步的区分方法),可分为公开的、受限制的和谈判的。第11章 软件项目合同管理 11.2.4 公开的投标过
26、程公开的投标过程采用招投标方式来确定开发方或软件提供商是大型软件项目普遍采用的一种形式。项目招投标包括对应的两个方面:对于用户单位来说就是招标;对于开发单位来说,就是投标。具体来讲,软件项目招标是指招标人(用户单位)根据自己的需要,提出一定的标准或条件,向潜在投标商发出投标邀请的行为;而投标是指投标人(软件开发单位或软件提供商、代理商)应招标人的邀清,根据招标公告和其他相关文件的规定条件,在规定的时间内向招标人应标的行为。项目招投标的最终结果是双方签订开发合同。第11章 软件项目合同管理 公开的投标过程是指投标人从公开的报刊、网络等媒体上看到感兴趣的招标公告,准备相关材料,向招标机构投出标书的
27、过程,在这种情况下,任何供应商都可以进行投标来争取提供商品和服务。而且所有和投标邀请中列出的原始条件相适应的投标都必须用同一种方法进行考虑和估计。如果一个项目有很多投标者,那么估计过程将是一项很耗时的工作,而且很昂贵。第11章 软件项目合同管理 近几年出现了一个全球性的、消除不同国家之间相互提供商品和服务的人为障碍的运动。例如WTO和欧盟等团体,对确保国家政府和公共团体在没有很好的理由的情况下,不限制与其他国家签订合同,在这个问题上起到了积极的推动作用。WTO监督的协议里面包括政府采购,其中的一个要素是制定执行投标过程的规则。在某些情况下,要求采用公开的投标过程。第11章 软件项目合同管理 1
28、1.2.5 受限制的投标过程受限制的投标过程这种情况,只有那些受客户投标邀请的供应商参加投标。与公开投标不一样,客户可以在任何时间减少所考虑的供应商,这经常是能采取的最好的方法。但是这并非没有风险:如果产生的合同规定了固定的价格,客户就承担了保证供应商所获得的需求的完整性和正确性的责任。当需求文档有缺陷时,有时会让获得合同的投标商在后续情况下要求更多的附加报酬。第11章 软件项目合同管理 11.2.6 谈判的规程谈判的规程在某些特殊情况下,总会有一些原因使得受限制的投标不一定是最佳的选择。例如,发生了火灾,毁坏了部分办公室(包括IT设备)。这里的关键问题是尽快获得代用设备,并使开发重新走上正轨
29、,而且也没有时间重新进行一次冗长的投标过程。另一种情况可能是,一个新软件已经由他人成功地实现,但是其客户决定要在原有系统上再进行一些扩展。由于原先的供应商有非常熟悉现有系统的人员,因此再重新进行一次完整的投标过程来选择潜在的供应商也是很不方便的。第11章 软件项目合同管理 在这些情况下直接接受一个供应商的方法也许是对的。但是可以想象,直接接受一个供应商,客户就很难得到优惠的费用,所以只有在能够清楚判断的情况下才能这样做。第11章 软件项目合同管理 11.3 合合 同同 管管 理理一个软件项目一般是以招投标的形式开始的,作为软件的客户(需求方)根据自己的需要提出软件的基本需求,并编写招标书,同时
30、,将招标书以各种方式传递给竞标方,所有的竞标方都会认真地编写建议书以参加竞标。经过招投标程序,并确定了中标单位后,双方需要签订项目合同。项目合同是指项目业主(需求方)或代理人与项目提供商(承接商)或供应商为完成某一确定的项目所指向的目标或规定的内容,明确相互的权利义务关系而达成的协议。合同是甲乙双方在合同执行过程中履行义务和享受权利的唯一依据,是具有严格的法律效力的文件。作为项目提供商与客户第11章 软件项目合同管理 之间的协议,合同是客户与项目提供商(承接商)关于项目的基础,是项目成功的共识与期望。在合同中,提供商(承接商)同意提供项目成果或服务,客户则同意作为回报付给提供商(承接商)一定的
31、酬金。合同必须清楚地表述期望提供商(承接商)提供的交付物。项目合同对项目开发的双方都会起到重要的保障作用,作为保证项目开发方、客户方既可享受合同所规定的权利,又必须全面履行合同所规定的义务的法律约束,对项目开发的成败至关重要。第11章 软件项目合同管理 软件项目合同主要是技术合同,技术合同是法人之间、法人和公民之间、公民之间以技术开发、技术转让、技术咨询和技术服务为内容,明确相互义务关系所达成的协议。随着我国科教兴国战略的实施及国家扶持高新技术产业政策的落实,围绕着科学研究、技术开发、技术转让、技术服务和技术咨询等有关技术知识的交易也相对增多,技术合同的管理也越来越重要。第11章 软件项目合同
32、管理 合同管理是围绕合同生存周期进行的,合同生存周期分为5个基本阶段,即合同准备、合同谈判、合同签署、合同履行与合同终止。另外,技术合同管理过程也考虑了企业在不同合同环境下承担的不同角色,这些角色包括:需方(甲方或买方)、供方(乙方或卖方)及内部,其中内部是指企业内的不同部门分别承担需方和供方的角色。合同管理过程如图11.2所示。图11.2 合同管理过程(围绕合同生存周期,甲、乙双方就合同管理过程中的问题,关键是就合同争议、合同变更等达成共识)第11章 软件项目合同管理 在合同管理中,需方、甲方、买方的意义是一样的;供方、乙方、卖方的意义是一样的,可以统称,但在合同管理中通常称为甲方或乙方。甲
33、方是对所需要的产品或服务进行采购的单位或个人。包括两种情况:一种是为自身的产品或服务进行采购,另一种是为乙方进行采购(与乙方签订合同的一部分)。“采购”这个术语是广义的,包括软件开发委托、设备采购和技术资源获取等方面。乙方是为甲方提供产品或服务的单位或个人。“服务”这个术语也是广义的,包括为甲方开发软件系统、提供技术咨询、提供专项技术开发服务以及提供技术资源(人力和设备)服务等。第11章 软件项目合同管理 一般来说,在合同管理过程中甲、乙双方各自确定一个合同管理者,负责合同管理的相关工作。本书主要针对软件开发企业的项目管理,所以主要讲解乙方的合同管理。11.3.1 合同准备合同准备企业作为供方
34、,其合同准备阶段包括3个过程:项目分析、项目竞标、合同文本准备。以下分别介绍这3个过程。1.项目分析项目分析项目分析是供方分析用户的项目需求,并据此开发出初步的项目计划,作为下一步能力评估和可行性分析之用。项目分析过程如图11.3所示。第11章 软件项目合同管理 图11.3 项目分析过程(供方根据项目需求,完成需求分析,进行项目规模估算,在此基础上产生初步的项目计划,为下一步能力评估和可行性分析打下基础)第11章 软件项目合同管理 2.项目竞标项目竞标项目竞标过程是供方企业根据招标文件的要求进行评估,以便判断企业是否具有开发此项目的能力,并进行可行性分析。可行性分析是判断企业是否应该承接此软件
35、项目、项目是否可行的依据。首先判断企业是否有能力完成此项目,另外,判断企业通过此项目是否可以获得一定的回报。如果项目可行,企业将组织人员编写项目建议书,参加竞标。竞标过程如图11.4所示。第11章 软件项目合同管理 图11.4 项目竞标过程(供方根据需求分析报告,判断企业能力,并进行可行性分析;如果项目可行,将组织人员编写项目建议书,参加竞标)第11章 软件项目合同管理 3.合同文本准备合同文本准备在合同准备过程中,一般由甲方提供合同的框架结构,并起草主要内容,乙方提供意见;有时,乙方可能根据甲方的要求起草合同文本,甲方审核;当然有时双方可以同时准备合同文本。合同文本准备过程如图11.5所示。
36、图11.5 合同文本准备过程(一般由甲方提供合同的框架结构,并起草主要内容,乙方提供意见;有时,乙方可能根据甲方的要求起草合同文本,甲方审核;当然有时双方可以同时准备合同文本)第11章 软件项目合同管理 11.3.2 合同谈判合同谈判合同谈判是甲、乙双方之间关于合同细节的谈判,在双方都投入了一定的资源后才进入这个阶段,双方都想通过谈判取得对自己最有利的条件。在软件项目中,一边开始准备软件开发工作,一边进行合同细节谈判的情况并不罕见。当然,这并不是甲、乙双方希望看到的情况,双方还是应该在项目的所有工作开始之前先签署项目合同。最终双方要签署合同文件,所以,双方必须就合同中的条款和条件达成全面共识。
37、第11章 软件项目合同管理 1.谈判内容谈判内容合同谈判一般集中在以下几个方面:软件的种类。包括定制的软件、定制的商用软件和买来就用的商用软件。项目内容和范围的确认。内容和范围管理就是为成功实现项目目标而明确规定项目的范围,即确定项目的哪些方面是应该做的,哪些方面是不应该做的。软件项目的内容和范围很难界定,双方在理解上可能存在偏差,因此需要进一步谈判,在签订合同前,最好形成关于软件项目内容和范围的书面文件来进行详细的说明。第11章 软件项目合同管理 技术要求、技术规范和技术方案。要保证开发质量和软件项目的先进性,甲、乙双方在制订技术要求、技术规范和技术方案时,应全面考虑涉及的技术问题、尽可能采
38、用成熟技术、慎重引入先进技术等方面。技术成果归属。软件开发是人的智力产品,当软件产品产生巨大的经济效益后,甲、乙双方经常就技术成果的归属产生纠纷,因此,双方一定要确定是委托开发还是合作开发,最好事先对成果的归属做出约定。价款、报酬或使用费及支付方式。对于技术合同价款、报酬或使用费来说,由于技术合同的情况不同而不可能有统一的标准,只能由当事人根据技术所能产生的经济效益、技术开发成本、技术的工业化程度和成熟程度、各方当事人所享有的权益及所承担的风险等多种因素协商确定。第11章 软件项目合同管理 验收标准。由于软件项目经常出现完工后迟迟不验收的情况,甲、乙双方互相推脱责任,因此在合同签署前,要制订一
39、个符合实际的验收标准。工期和维护期。由于软件开发的不确定性,工作量难以估算,工期很难确定,维护期多长时间为宜也很难确定,工期和维护期的确定要有一定的灵活性,所以甲、乙双方对此也应进行协商。软件质量控制。软件开发需要遵循一定的标准,双方在谈判时要确定这些标准。第11章 软件项目合同管理 在讨论合同时,可以标识出一些关键点,在这些关键点上,需要客户批准,项目才能继续进行。例如,可以将要开发的一个大型系统分割成多个增量,每个增量可以是一个接口设计阶段,在增量构建之前需要客户来批准这个设计,在不同的增量之间都有一个决策点。在每个决策点,需要对软件开发企业给出的可交付物、客户所做的决策以及决策点的输出进
40、行定义。软件开发企业和客户对决策点都负有责任。第11章 软件项目合同管理 2.合同补遗合同补遗在合同谈判阶段,双方谈判的结果一般以合同补遗的形式,有时也以合同谈判纪要的形式形成书面文件。这个文件将成为合同文件中极为重要的组成部分,最终确定了合同签订人之间的意志,在合同解释中优先于其它文件。合同补遗不仅乙方重视,甲方也极为重视,一般由甲方起草。合同补遗或合同谈判纪要会涉及合同的技术、经济和法律等各个方面,作为乙方主要是核实其是否忠实于合同谈判过程中双方达成的一致意见,以及文字的准确性。对于经过谈判更改了招标文件中条款的部分,应说明已就某某条款进行修正,合同实施按照“合同补遗”某某条款执行。第11
41、章 软件项目合同管理 11.3.3 合同签署合同签署合同签署过程就是正式签署合同,使之成为具有法律效力的文件。合同的签署标志着一个软件项目的有效开始,这个时候应该正式确定乙方的项目经理。具体活动描述如图11.6所示。这里需要说明的是项目任务书,必须明确项目的目标和必要的约束,同时授权给项目经理。项目任务书是项目正式开始的标志,同时也是对项目经理有效授权的依据。项目经理需要对任务书进行确认。第11章 软件项目合同管理 图11.6 合同签署过程(合同的签署标志着一个软件项目的有效开始,这个时候应该正式确定乙方的项目经理。项目任务书是项目正式开始的标志,同时也是对项目经理有效授权的依据)第11章 软
42、件项目合同管理 11.3.4 合同履行合同履行合同一经依法成立,就具有相应的法律效力,当事人双方就应当按照约定全面履行自己的义务。1.履行原则履行原则在合同履行时,一般要注意以下原则:(1)全面履行原则。全面履行原则要求按照合同约定的标的及其数量、质量,以及合同约定的履行期限、履行地点、履行方式等,全面、正确、适当地履行合同义务。全面履行原则要求履行的主体正确、履行的标的正确、履行期限、地点、履行方式适当。第11章 软件项目合同管理(2)促进科学技术进步,推动科技与经济结合的原则。合同的履行必须有利于科学技术进步,提高经济效益。科学技术对我国市场经济建设具有重要意义,任何阻碍科学技术进步的合同
43、及其履行都必然是违法的,不仅不会受到法律的保护,还会受到法律的制裁。(3)遵守社会公共道德的原则。合同的履行应当遵守社会公共道德,维护社会公共利益,保护生态环境和资源。(4)保护知识产权的原则。当今社会是知识经济或技术经济时代,尊重知识产权、尊重知识产权权利人的合法权益已成为技术合同的重要原则。第11章 软件项目合同管理(5)及时通知、相互协作和保守技术秘密的原则。技术合同履行往往是一个长期过程,会延续几年甚至几十年,这就需要双方当事人在履行过程中相互协作,出现问题应当及时通知对方,应当保守知悉的对方的技术秘密。2.合同管理合同管理在合同的执行中,要对合同执行过程进行管理,这就是合同管理。合同
44、管理就是确保合同双方履行合同条款,并协调合同执行与项目执行关系的系统工作。合同管理贯穿于项目实施的全过程和项目的各个方面,对整个项目的实施起着总控制和总保证的作用。第11章 软件项目合同管理 企业处于供方的环境,合同管理包括对合同关系使用适当的项目管理程序并把这些过程的输出统一到整个项目的管理中。主要内容包括:合同跟踪管理过程、合同修改控制过程、违约事件处理过程、产品交付过程和产品维护过程。(1)合同跟踪管理过程。合同跟踪管理过程是供方跟踪合同的执行过程。合同跟踪管理过程如图11.7所示。图11.7 合同跟踪管理过程(通过合同跟踪管理,可以及时了解项目的相关情况,对一些突发状况也能很好地应对)
45、第11章 软件项目合同管理(2)合同修改控制过程。在合同的执行过程中,可能发生合同的变更,合同修改控制就是管理合同变更的过程。合同修改控制过程如图11.8所示。图11.8 合同修改控制过程(发生合同变更,应该严格执行变更处理过程,否则,很容易产生问题)第11章 软件项目合同管理(3)违约事件处理过程。如果在合同的执行过程中,发生与合同要求不一致的问题而导致违约事件,需要执行违约事件处理过程。违约事件处理过程如图11.9所示。图11.9 违约事件处理过程(发生与合同要求不一致的问题而导致违约事件,也需要及时处理)第11章 软件项目合同管理(4)产品交付过程。产品交付过程是供方向需方提交最终产品的
46、过程。产品交付过程如图11.10所示。图11.10 产品交付过程(供方向需方提交最终产品,应该进行严格的审核,并由双方签字认可)第11章 软件项目合同管理(5)产品维护过程。产品维护过程是供方对提交后的软件产品进行后期维护的工作过程。产品维护过程如图11.11所示。图11.11 产品维护过程(产品维护应该按照维护类型进行处理,有的维护并不需要即时处理)第11章 软件项目合同管理 3.合同执行过程的管理依据合同执行过程的管理依据合同执行过程的管理依据主要有以下几项:(1)合同文本。(2)工作结果。作为项目计划实施的一部分,收集整理供方的工作结果(完成的可交付成果、符合质量标准的程度、花费的成本等
47、)。(3)变更请求。变更请求包括对合同条款的修订、对产品和劳务说明的修订。如果供方工作不令人满意,那么,终止合同的决定也作为变更请求处理。供方和项目管理小组不能就变更的补偿达成一致的变更是争议性变更,称为权力主张、争端或诉讼。第11章 软件项目合同管理(4)供方发票。供应方会不断地开出发票,要求清偿已做的工作。开具发票的要求,包括必要的文件资料附件,通常在合同中加以规定。11.3.5 合同变更和解除合同变更和解除1.合同变更合同变更合同变更,是指合同成立以后、履行完毕之前,由双方当事人依法对原合同的内容进行的修改。合同法规定,“当事人协商一致,可以变更合同。法律、行政法规规定变更合同应当办理批
48、准、登记等手续的,依照其规定”。根据这一规定,合同的当事人在变更合同内容时应当注意以下几点。第11章 软件项目合同管理(1)合同内容变更与合同订立一样,需要有一个要约和承诺的过程。在双方当事人未达成新的协议以前,原合同有效。如果达不成协议,在签订新协议过程中一方有过错的应当承担缔约过失责任。(2)当事人在变更合同内容时,应当就因此引起的损失承担达成协议,以避免不必要的纠纷。(3)当事人对合同变更的内容约定不明确的,推定为未变更。(4)如果法律、行政法规规定合同变更应当办理登记、批准等手续,应依其规定办理有关手续,否则合同可能不发生法律效力。若法律、行政法规规定在办理登记、批准手续后才生效的合同
49、,未办理有关手续之前不发生法律效力。第11章 软件项目合同管理 2.合同解除合同解除合同解除,是指合同有效成立后,在没有履行或没有完全履行前,因当事人的约定或法律规定,使基于合同发生的权利义务关系终止的行为。合同解除有两种形式,一是协议解除,二是法定解除。(1)协议解除。协议解除是指当事人通过协商一致解除合同关系。协议解除是基于当事人的意思而解除合同的一种形式,是一种双方的法律行为,是合同自愿原则在终止合同关系时的一种运用形式。协议解除有以下两种情况。第11章 软件项目合同管理 事后协商解除。指在合同履行前或履行过程中,经当事人协商一致即可解除合同。使用这种解除合同的形式,当事人在协商时,应当
50、就解除合同后的责任与损失的分担等内容一并协商。约定解除。指在订立合同时当事人就可以约定解除合同的条件,一旦条件成立,有解除权一方的当事人就可以解除合同。使用这种形式解除合同的,在约定条件时,要注意与违约责任和补救措施联系在一起。第11章 软件项目合同管理(2)法定解除。法定解除是指合同成立后,在没有履行或者履行过程中,当事人一方行使法定解除权而终止。法定解除是一种单方的法律行为,即当事人一方在法律规定的解除条件出现时,即可以通过行使解除权而终止合同。法定解除是法律赋予当事人的一种选择权,即当守约一方当事人认为解除合同对他有利时,可以通过解除合同来保护自己的利益。法定解除与协议解除不同,主要在于