http://www.chinaspis.com linrui@chinaspis.com 上 海 漫 索 计 算 机 科 技 有 限 公 司 软件外包与采购管理 —— 从社会分工合作、资源共享中获益 林 锐 博士 http://www.chinaspis.com linrui@chinaspis.com Triangle Gradation Bar Placement and Effect
目录 1. 为什么要进行软件外包与采购 2. 过程域介绍 3. 软件外包管理的方法与规范 4. 软件采购管理的方法与规范 5. 建议 6. “集成化项目管理系统 Future”演示 参考书:《CMMI3级软件过程改进方法与规范》,林锐 著,电子工业出版社,2003
1. 为什么要进行软件外包与采购 1.1 软件外包与采购的目的 1.2 软件外包的两种结果 软件业是一个高速变化、新技术层出不穷的行业,同时又是人力资源成本相对较高的行业。企业 需要采用外包和采购形式来获取待开发产品的部件,最大限度地从社会分工合作、资源共享中获 益。 企业的根本目标是“合法地赚取尽可能多的利润,使企业利益最大化”。这个根本目标就 如同企业的“宪法”,是企业生存和发展之本。 企业所有的特定目标和行动都是围绕上述根本目标开展的,任何背离根本目标的行动都将 对企业造成伤害,应当杜绝。 如果软件外包与采购能够为企业获取更多利益时,就不要自己开发软件。 软件外包的成功示例:印度软件业……CMM……许多中国软件企业企图引入印度软件业的模 式…… 1.2 软件外包的两种结果 好的结局:外包项目做得又好又快,并且省钱; 坏的下场:进度延误、质量底下、费用超支,甚至反目成仇。 因此需要“软件外包管理与采购管理”
2. 过程域介绍 2.1 CMM对应的过程域 CMM 2级6个关键过程域 中文名称 英文名称 需求管理 Requirements Management 软件项目规划 Software Project Planning 软件项目跟踪与监督 Software Project Tracking and Oversight 软件子合同管理 Software Subcontract Management 软件质量保证 Software Quality Assurance 软件配置管理 Software Configuration Management
2. 过程域介绍 2.2 CMMI-SE/SW对应的过程域 CMMI 2级的7个过程域 中文名称 英文名称 需求管理 Requirements Management 项目规划 Project Planning 项目监控 Project Monitoring and Control 供应商合约管理 Supplier Agreement Management 度量与分析 Measurement and Analysis 过程与产品质量保证 Process and Product Quality Assurance 配置管理 Configuration Management
2. 过程域介绍 2.3 全局的软件研发与管理流程 CMM3级精简并行过程(Simplified Parallel Process, SPP)模型,详见林锐的著作。
2. 过程域介绍 2.4 外包管理与采购管理的流程 在立项阶段,产品负责人应当进行“Make-or-Buy决策”,确定待开发产品的哪些部分应当“采购 ”、“外包开发”或者“自主研发”。 外包管理和采购管理是机构的公共职能,有条件的机构应当设立外包管理员和采购管理员两个角 色。由于外包管理和采购管理都是为具体的项目服务的,因此需要项目成员的协作才能把工作做 好。如果机构没有外包管理员和采购管理员的话,由项目经理兼此角色。
3. 软件外包管理的方法与规范 3.1 规程(procedure) 目的:从多个候选承包商中选择最合适的承包商,与其签订外包开发合同,并依据合同监控外包 开发过程以及验收成果。 角色与职责:外包管理员邀请一些项目成员、同行专家、财务人员、市场人员等人组成临时的外 包管理小组。外包管理员为该小组的负责人。 启动准则:在立项阶段,有关人员已经进行了“Make-or-Buy决策”,确定了需要外包的产品部件 (通称外包项目)。 输入:“Make-or-Buy决策”产生的文档,主要是对外包产品部件的描述。 主要步骤: [Step1] 选择最合适的承包商 [Step2] 签订外包合同 [Step3] 监控外包开发过程 [Step4] 外包开发成果验收 输出:《外包开发竞标邀请书》《承包商评估报告》《外包开发合同》《外包开发监控报告》 《外包开发成果验收报告》 结束准则:承包商应交付的所有工作成果都已经通过委托方的验收。 度量:外包管理员统计工作量和文档的规模,汇报给项目经理以及有关领导。
3. 软件外包管理的方法与规范 3.2 如何选择合适的承包商 [1] 外包管理小组起草《外包开发竞标邀请书》(详见文档模板),主要内容: 外包项目基本信息 外包产品部件的详细说明 一些要求和约束(给出质量要求,时间、费用限制等等 ) [2] 外包管理小组根据实际情况制定“承包商评估标准”,常见评估因素: 开发方案是否令人满意?开发周期是否可以接受? 性价比如何?能否提供较好的服务(维护)? 是否具有开发相似产品的经验? 承包商以前开发的产品是否有良好的质量? 承包商的开发能力与管理能力如何? 承包商的资源(人力、财力、物资等)是否充足并且稳定? 承包商的信誉如何?外界对其评价如何? 承包商是否已经取得业界认可的证书如ISO质量认证、CMM 2级以上认证? 承包商的地理位置是否合适?
3. 软件外包管理的方法与规范 3.2 如何选择合适的承包商 [3] 竞标邀请 外包管理小组与候选承包商建立联系,分发《外包开发竞标邀请书》以及相关材料。 候选承包商在给定的时间内递交“应标书”以及相关材料。 [4] 粗筛选 外包管理小组按照“承包商评估标准”对候选承包商进行粗筛选,剔除明显不合格的承包 商。在此评估过程中,外包管理小组要和候选承包商进行交流(如面谈、电话交谈)。评 估结论记录在《承包商评估报告》之中。通过了粗筛选的候选承包商将进入下一轮评估 [5] 评估候选承包商的综合竞争力 外包管理小组按照“承包商评估标准”逐一评估候选承包商的综合竞争力,给出排名。在 此评估过程中,外包管理小组要和候选承包商进行深入的交流(如面谈、电话交谈)。评 估结论记录在《承包商评估报告》之中。 [6] 评估风险 外包管理小组逐一评估与候选承包商建立外包合同的风险,评估结论记录在《承包商评估 报告》之中。 [7] 确定承包商 外包管理小组挑选出最合适的承包商,产生完整的《承包商评估报告》。(见文档模板)
3. 软件外包管理的方法与规范 3.3 如何签订外包合同 [1] 协商。外包管理小组和承包商就《外包开发合同》的主要条款进行协商(谈判),达成共识。 协商的重点内容: 承包金额和付款方式 产品交付方式和交付日期 违约处理 开发计划 监控计划 验收计划 维护计划 [2] 起草合同。外包管理小组和承包商按照指定的模板共同起草《外包开发合同》,见文档模板。 [3]签订合同 外包管理小组和承包商仔细审查《外包开发合同》中的每个条款,确保合同没有错误和隐 患。 合同双方的代表(具有法律效律的人)在《外包开发合同》上签字,此后合同生效。
3. 软件外包管理的方法与规范 3.4 如何监控外包开发过程 [1] 项目进展检查 。外包管理小组按照《外包开发合同》中的“监控计划”,定期检查承包商的 开发进展情况,并记录到《外包开发过程监控报告》之中。见文档模板 外包项目名称 报告日期 委托方监控人 报告批次 第N份 承包方负责人 项目所处阶段 项目进展状况 计划 实际情况 任务与进度 工作成果 费用 人力资源 软硬件资源 问题与对策
3. 软件外包管理的方法与规范 3.4 如何监控外包开发过程 [2] 质量检查 。外包管理小组按照《外包合同》中的“监控计划”,组织人员对承包商的工作成 果进行技术评审、测试,或者参与承包商组织的技术评审和测试,以保证工作成果的质量符合要 求。外包管理小组将评审结论记录到《外包开发过程监控报告》之中。见文档模板 外包项目名称 检查时间 检查地点 委托方检查人员 承包方开发人员 工作成果及版本 检查方式(技术评审、测试) 检查结论 问题与对策
3. 软件外包管理的方法与规范 3.4 如何监控外包开发过程 [3] 纠正偏差 。外包管理小组根据进展检查和质量检查的结论,督促承包商纠正工作偏差。如果 需要更改合同、产品需求或开发计划,则按照变更控制规程处理。
3. 软件外包管理的方法与规范 3.5 如何验收外包开发成果 [1] 验收准备 承包商将待验收的工作成果准备好,并将必要的材料提前交给外包管理小组。 外包管理小组慎重地确定验收人员。 外包管理小组与承包商确定验收的时间、地点、参加人员等。 [2] 审查与测试 成果审查。验收人员审查承包商应当交付的成果,如代码、文档等等。确保这些成果是完 整的并且是正确的。验收人员将审查结果记录在《外包开发成果验收报告》之中。 验收测试。验收人员对待交付的产品进行全面的测试,确保产品符合需求。验收人员将测 试结果记录在《外包开发成果验收报告》之中。见文档模板 [3] 问题处理。如果验收人员在审查与测试时发现工作成果存在缺陷,则外包管理小组应当视问 题的严重性与承包商协商,给出合适的处理措施。 如果工作成果存在严重的缺陷,则退回给承包商。承包商应当给出纠正缺陷的措施,双方 协商第二次验收的时间。如果给验收方带来损失,则依据合同对承包商作出相应的处罚。 如果工作成果存在一些轻微的缺陷,则承包商应当给出纠正缺陷的措施,双方协商是否需 要第二次验收。 [4] 成果交付与签收。当所有的工作成果都通过验收后,承包商将其交付给外包管理小组。双方 的责任人签字认可。外包管理员通知本机构的财务人员,将合同余款支付给承包商。
4. 软件采购管理的方法与规范 4.1 规程(procedure) 目的:从多个候选供应商中选择最合适的供应商,与其签订采购合同,并依据合同验收产品部件 角色与职责:采购管理员邀请一些项目成员、同行专家、财务人员、市场人员等人组成临时的采 购管理小组。采购管理员为该小组的负责人。 启动准则:在立项阶段,有关人员已经进行了“Make-or-Buy决策”,确定了需要采购的产品部件 。 输入:“Make-or-Buy决策”产生的文档,主要是对需采购的产品部件的描述。 主要步骤: [Step1] 选择最合适的供应商 [Step2] 签订采购合同 [Step3] 采购物品验收 输出:《采购竞标邀请书》《供应商评估报告》《采购合同》《采购物品验收报告》 结束准则:供应商应交付的所有工作成果都已经通过采购方的验收。 度量:采购管理员统计工作量和文档的规模,汇报给项目经理以及有关领导。 参考书:《CMMI3级软件过程改进方法与规范》,林锐 著,电子工业出版社,2003
5. 建议 对外包与采购管理小组进行必要的培训。 对外包与采购管理过程域中产生的所有有价值的文档进行配置管理。 选用合适的软件工具,尽量减少外包与采购管理的工作量。
6. 集成化项目管理系统Future演示 6.1 Future软件介绍 Future是基于Web的集成化项目管理系统。Future1.0主要功能包括项目规划、项目监控、需求管 理、质量管理、配置管理、合同管理和日常工作管理等。 Future的主要功能覆盖了CMM 2级的所有6个过程域。使用Future可以大大降低软件项目管理的难 度和工作量,有效提高软件产品质量、提高生产率并且降低开发成本。 Future的目标是“让项目管理变得简单有效”。
6. 集成化项目管理系统Future演示 6.2 使用Future管理软件外包项目 以公司真实外包项目为参考(请学员参与),创建一个用于演示的软件外包项目。 演示Future的项目规划 演示Future的项目监控 演示Future的需求管理 演示Future的质量管理 演示Future的配置管理(文档管理) 演示Future的合同管理 演示Future的日常工作管理