软件外包项目管理方法.docx
《软件外包项目管理方法.docx》由会员分享,可在线阅读,更多相关《软件外包项目管理方法.docx(17页珍藏版)》请在冰豆网上搜索。
软件外包项目管理方法
软件外包项目管理方法
公司LOGO
修订记录
版本号
日期
作者
批准人
批准日期
描述
1前言
随着公司业务的发展,业务需求不断增大,分工日益专业化,但由于人力资源的制约,开发成本的控制,从而保证企业核心竞争力的发展,公司选择软件外包开发的项目将会成为趋势。
毋庸置疑,企业信息技术资源外包能使企业关注核心业务,节省人财物投入,优化资源配置,提高信息化水平,顺利实施企业战略,最终提高企业在市场上的竞争力。
管理好外包软件开发项目,有效控制外包软件项目的成本、进度、质量,使软件外包开发过程有章可循,保证软件质量,加强开发管理。
2目的和适用范围
基于公司发展和外包软件项目实施的现状,制定本管理方法,用以科学有效对各类软件外包项目开发进行管理,更好的指导相关项目工作。
本管理方法适用于所有软件外包项目开发管理。
3项目外包总体流程
所有的外包项目必须按照公司的统一外包流程进行实施,外包流程包括1)需求产生2)统一决策3)供方评选和定标4)合同评审5)签订合同6)监督和评价管理7)验收付款8)记录归档管理9)年度供方评审九个流程环节。
3.1需求产生
项目需求是项目启动的根源,我公司软件项目需求的产生有以下主要的途径:
1)市场的需求调研:
主要通过市场部门的市场调研或者客户的直接反馈产生。
2)自主研发和策划:
公司内部还根据自身的业务特点和优势,自主研发软件。
3)新技术的演进:
由于新技术的发展变化带来软件研发需求。
4)内部需求:
公司内部工具软件的开发需求。
3.2项目统一决策
项目需求产生后,需通过公司作统一的评审决策,从而决定该项目是否采用外包方式及具体的项目外包合作方式,具体包括如下两个过程:
3.2.1外包申请
1)业务和资源评审:
首先由发包部门对整个项目的技术和业务层面进行评审,同时对部门内部的资源进行综合评估,确定资源是否满足该项目的开发要求。
从而向采购部相关部门和管理层提出项目是否外包及外包方式的申请。
2)项目成本和规模评审:
由市场部门向客户了解该项目的总投资情况和建设规模,发包部门从项目成本和投资角度去考虑项目是否采用外包和外包方式。
3)风险评估:
根据业务的类型和外包可引致的风险进行分析,预估外包的可控性和对公司可能造成的影响进行评估,提出项目质量控制的方式。
4)统一评审决策:
由项目经理提交《外包申请评审表》,公司管理层和采购部等相关部门经过评审,最终决定该项目开发是否采用外包以及外包方式。
3.2.2外包审批
1)外包方邀请:
由发包部门和采购部邀请外包方进行项目交流,外包方出具方案和报价。
2)外包项目成本和规模评审:
由发包部门对外包工作量、资源、规模和利润进行核算。
3)外包审批:
由项目经理填写《外包方评选审批表》,逐级审批。
3.3供方评选和定标
供应方的选择是外包项目是否成功的关键,选择适当的合作伙伴能有效保证项目的进度和质量,并能达到控制项目成本的最终目的。
外包合作伙伴的选择根据总公司的供方评选流程和相关规定进行,步骤具体如下:
1)供应方的技术评估:
由发包部门根据本项目的技术要求对供应方的公司整体实力和外包人员的个人能力进行评估,择优选用。
2)项目外包商务洽谈:
由采购部和发包部门联合相关部门与供方进行商务方面的洽谈,包括具体的项目外包结算方式和结算标准、支付方式等。
3)定标:
采购部和发包部门分别在《外包方评选审批表》出具相关意见,由公司管理层和相关部门逐层审批定标。
3.4合同评审
组织合同评审。
3.5签订合同
合作伙伴确定后,项目正式进入启动阶段,在项目启动前期需市场部门和承包商签订针对该项目的相关合同和协议,从法律上保障双方合作的有效性。
3.6监督和评价管理
项目进入启动阶段后,由发包部门专派一位项目经理,对整个项目进行监督和管理,并与外包公司项目组进行良好的沟通和交流,具体包括:
项目计划,项目进度和质量管理等,具体分工计划和安排如下:
3.6.1项目计划
项目经理制定需求,设计,开发,测试,部署验收,知识库管理各个阶段的所需工作时间和人力资源情况。
3.6.2项目进度管理
外包项目进度分五个里程碑:
“需求-设计-开发-测试-部署验收”,每个里程碑完成时,组织相关人员进行评审,评审通过后,方可进入下一里程碑。
3.6.2.1需求评审里程碑
主要包括两项工作:
需求调研和编写相关资料;需求评审
1.需求调研和编写相关资料的参与人员:
本公司项目经理,专家,系统分析师和市场部相关人员,外包公司项目组,外包公司项目组需按项目计划规定的时间内完成以下工作:
a.《领域模型类图》,
b.《快速GUI原型》,
c.《用例图》,
d.《用例文本描述》,
e.《包图》,
f.《系统需求说明书》,
g.《系统核心难题解决方案可行性分析报告》,
h.《软件系统解决方案》
I.《活动图》
j.“客户确认需求”(需求评审通过后提供)
2.需求评审参与人员:
本公司项目经理,外包公司项目组,系统分析师,系统顾问,产品经理,专家。
评审流程:
软件系统解决方案(包括背景,软件架构和实现原理)->系统需求说明书(客户要求实现哪些功能)->系统核心难题解决方案可行性分析报告(理论可实现)->原型演示->领域模型类图->包图->用例图->活动图
根据评审结果:
评审通过,则组织与客户进行需求确认,本公司向客户提交”系统需求说明书”,原型和活动图,如果客户确认本公司整理的需求,双方在”系统需求说明书”中签名进行确认,进入设计里程;如果客户对本公司提交的需求有异议,则外包公司项目组要尽快继续完善需求,直到客户确认为止。
评审不通过,则外包公司项目组要尽快继续完善需求,后再提交评审,并根据考核标准,作出相应考核。
3.6.2.2设计评审里程碑
主要包括两项工作:
编写相关资料;设计评审
1.编写设计相关资料的参与人员:
本公司项目经理和系统分析师,外包公司项目组,以本公司项目经理和系统分析师为指导建立框架,外包公司项目组需按项目计划规定的时间内完成以下工作:
a.《健壮性图》
b.《领域模型类图》(更新)
c.《用例文本描述》(更新)
d.《概要设计说明书》
e.《顺序图》
f.《设计类图》
g.《数据库设计PowerDesign物理模型图》
h.《详细设计说明书》
2.设计评审参与人员:
本公司项目经理,外包公司项目组,系统分析师
评审通过,进入开发里程;
评审不通过,则外包公司项目组要尽快继续完善需求,后再提交评审,并根据考核标准,作出相应考核。
3.6.2.3开发评审里程碑
主要包括两项工作:
编写代码;开发评审
1.编写代码的参与人员:
外包公司项目组,需按项目计划规定的时间内完成以下工作:
a.单元测试用例
b.源代码(需按本公司制定的代码开发规范编写)
c.代码版本管理
2.开发评审参与人员:
本公司项目经理,外包公司项目组,系统分析师
评审通过,进入测试里程;
评审不通过,则外包公司项目组要尽快继续完善需求,后再提交评审,并根据考核标准,作出相应考核。
3.6.2.4测试评审里程碑
1.测试工作的参与人员:
外包公司项目组,需按项目计划规定的时间内完成以下工作:
a.系统功能测试报告
b.系统集成测试报告
c.系统性能测试报告
2.测试评审参与人员:
本公司项目经理,外包公司项目组,系统分析师
评审通过,进入部署里程;
评审不通过,则外包公司项目组要尽快继续完善需求,后再提交评审,并根据考核标准,作出相应考核。
3.6.2.5部署验收评审里程碑
主要包括四项工作:
安装部署准备;安装部署评审;运维和归档
一、安装部署准备
1.安装部署的参与人员:
以本公司项目经理为指导,外包公司项目组成需按项目计划规定的时间内完成以下工作:
a.安装部署包
b.系统安装手册
c.系统操作手册
d.系统培训计划
2.安装部署评审参与人员:
本公司项目经理,外包公司项目组,系统分析师
评审通过,做好上线准备,同时向客户提交上线申请,待客户确认后,系统择机上线;
评审不通过,则外包公司项目组要尽快继续完善需求,后再提交评审,并根据考核标准,作出相应考核。
二、运维
1.运维的参与人员:
以本公司项目经理为指导,外包公司项目组成需完成以下工作:
a.系统维护手册
b.上线升级申请单
在对系统进行升级维护(或客户提出需求变更)时,先对新的部署包标记新版本,外包公司项目组对要升级的功能进行功能测试和集成测试,待测试组测试通过后,再填写”上线升级申请单”,后向客户提交上线升级申请单,客户同意后才能进行升级。
三、验收
系统正常运行一段时间后,进入验收里程,客户提供“用户使用意见”,邀请相关专家与客户召开项目验收会议,提交相关验收文档,客户和专家同意验收,验收圆满成功。
验收通过后按照外包结算流程和合同的要求与外包方进行商务结算。
四、归档
验收后把系统所有相关文档和源代码分类提交给项目经理归档。
五、外包公司项目组对已验收的项目提供及时与高质量的免费维保服务。
a.人力外包提供不少于两个月的免费维保服务,具体根据外包合作期限计算,外包公司根据维保内容定期提交报告。
b.整包及模块外包,外包公司须提供一年/两年的免费维保服务,具体根据合作内容计算,外包公司根据维保内容定期提交报告。
4项目外包决策标准
外包项目界定的基本原则是:
不涉及公司核心竞争力的软硬件产品。
具体从以下四方面因素进行决策:
1)业务层面:
项目所涉及的业务内容非公司核心业务。
2)技术层面:
项目所涉及的主要技术是否超出公司开发团队目前的技术范畴,如果这些新技术的研发需要投入较高的研发成本,则可以考虑采用外包方式,如视频识别技术等。
3)资源层面:
项目要求的资源超出公司开发团队目前的资源负荷,需通过外包补充资源缺口。
4)项目成本:
外包项目一般项目合同额不超出原合同金额扣减公司管理成本和税收成本,项目金额如果超出,需经公司领导及相关部门商议具体决定。
5外包合作方式
软件外包项目分为人员外包和项目外包,也称ON-SITE和OFF-SITE,其中项目外包又可以细分为整体项目外包和功能模块外包两种方式。
●人员外包(租借人员),以人日为单位,根据实际考核过的考勤记录和人力外包服务考核为主要依据进行付款。
●整体外包,项目做整体的外包处理,在主合同预付款超过30%(包含30%)的情况下,按照3:
3:
3:
1的比例进行分期付款,同时在每期付款前(除预付款外)提交外包服务工作考核。
●模块外包,将项目下的相关软硬件研发模块进行合理的分包,转交外包方进行代码编写,按模块进行验收付款。
模块外包可采用一次性付款方式,也可采购分期付款方式,同时在每次付款前(除预付款外)提交外包服务工作考核。
从项目风险角度考虑,人员外包方式的风险较小,但外包人员素质参差不齐,项目外包人员管理困难,造成项目开发的效率不高,项目开发成本相应也较高;整体项目外包方式的风险相对较大,整体项目外包成败的关键在于发包方的项目管理水平和承包方的综合技术能力,但整体项目外包方式能有效控制项目开发成本,提高项目开发的质量和效率;模块外包方式风险低且可控性高,能有效控制项目的成本和质量,另一方面能保障公司的核心竞争能力,是最优的外包方式,但该方式要求本公司具有经验丰富的系统分析师和设计师。
外包操作方式的具体选择,由公司外包评审成员根据项目的成本、技术要求、业务范围及外包商的能力而决定,评审成员由公司领导、采购部、发包部门、质监部和审计部的相关人员构成。
6供方选择标准
公司对外包项目承接商的评审选择,主要从以下几方面进行:
⏹整体技术力量
⏹开发团队素质
⏹公司管理水平
⏹历往合作经验
⏹整体技术方案
⏹商务报价
评审成员由公司领导、发包部门及相关部门人员构成,应本着科学、公平、公正的原则,进行严格评审选择。
外包项目承接商提交的情况介绍和相关资料,必须真实有效,如果出现弄虚作假情况,我公司将有权取消其参选资格,或终止合作关系,并追究相关责任。
外包项目主要对于额度过大或者具备特殊意义的项目,可采用外包开发竞标的形式进行供方选择。
7外包项目监督管理方法
外包项目的监督管理是外包项目管理中的重要环节,是项目成败的关键,针对不同的外包合作方式,我们制定了以下不同的项目监督管理方法。
7.1人员外包管理方法
采用人员外包方式,项目管理的重点在于对外包人员的监督和考核。
7.1.1外包人员能力评估
外包人员的能力水平直接影响项目的进度和质量,因此外包人员的选用需先通过一系列的能力评估和测试,这也方便我方项目经理了解外包人员的专长,从而有针对性的安排各项工作。
具体的能力评估包括:
⏹技术能力评估:
包括基础开发技术测试和相关项目经验的面谈两部分,基础开发技术测试以笔试为主,具体的题目需要针对项目作适当的调整。
⏹沟通能力测试:
项目开发过程中需要项目成员之间的频繁沟通,因此需要对外包人员基本沟通能力进行测试,包括书面沟通能力和言语沟通能力。
7.1.2团队角色分类
上图是人员外包的团队组建的角色示意图,但并不是项目的实际角色。
人员外包一般地为程序开发人员和程序测试人员的外包,我方需明确一个项目经理作为我方代表,对项目进行全程监督和管理,同时承包方需提供一名项目组长作为代表,通常人员外包类项目的需求分析和系统设计由我方提供。
7.1.3考勤考核制度
1)外包人员的作息时间由我方项目经理根据项目具体要求制定安排,原则上参照相关劳动法规执行,但如遇特殊情况,双方可以具体协商解决;
2)外包人员的出勤记录由我方项目经理进行严格考核,形成书面记录,并作为项目验收付款的主要依据;
3)外包人员如遇特殊情况需要请假,须提前一周以上向我方项目经理提交申请,并获得同意;
4)按照合同,外包人员在整个项目进行过程中不允许随意更换,如遇特殊情况,须提交说明申请,并经我方项目经理同意,形成书面记录。
7.1.4工作考核制度
如上图所示,外包人员的工作考核流程具体分为“制定计划”、“接受任务”、“实施执行”、“工作报告”、“工作评审”“评价监督”六大步骤。
1)制定计划:
我方项目经理以整体项目进度计划为依据,为外包人员制定阶段性工作任务。
阶段的定义可以是天、周或者月度。
2)接受任务:
承包方项目组长对我方分配的任务进行评估,确定是否接受分配的任务,如认为分配的任务不合理,可以与项目经理进行沟通。
3)实施执行:
由组长对任务包进行内部分派,具体由每个外包人员进行代码编写和测试。
4)报告提交:
实施完毕后,由每个外包人员对阶段性工作提交报告,工作报告的模板如附件所示:
5)工作评审:
项目经理统一对外包人员的工作进行评审,并将结果阅知承包方的项目组长,并归档。
6)评价监督:
项目经理每月5日前填写《外包项目日常评价记录》,提交到项目助理处,由项目助理统一汇总提交到质量监督部、采购部、审计部。
7.2项目整体外包管理方法
在保障不影响我公司的核心竞争能力的前提下,对于小型项目且承包方的综合实力较强的情况,可采用项目整体外包的合作方式。
如上所述,项目整体外包管理简单方便,但风险较大,一方面项目进度和质量难以控制,另一方面这种外包方式一般来说投入成本较高。
因此项目整体外包的重点在于承包商的选择和项目实施过程中的进度和质量控制。
7.2.1承包商整体实力评估
承包商在项目初期需根据项目需求,在规定时间内向我方提交如下文档:
⏹项目整体解决方案
⏹项目详细开发计划
⏹项目报价
⏹项目成员名单列表
⏹公司资质说明
同时,我方须对承包商的开发团队及其整体解决方案进行考核。
7.2.2团队角色分类
上图是项目整体外包方式的角色分类示意图,对于项目的人员组织结构要求如下:
1)我方须指定唯一的项目经理,作为我方代表,全力负责对项目整体进度控制和质量监督。
2)承包商须指定唯一项目经理,作为承包商的代表和接口人,负责与我方项目经理的沟通和工作报告和交流。
3)承包商项目成员数量须满足我方提出的最基本人员数量要求,以保证项目有足够的人力资源。
7.2.3进度和质量管理方法
外包项目实施按照以下几个步骤实施:
需求分析、项目设计、代码开发、系统测试、工程实施、试运行、用户培训、系统验收。
项目进度和质量管理须贯穿于项目实施的整个流程。
下面是关于项目管理的一些制定和方法:
1)整体计划阶段:
承包商须根据接收到的系统需求,提供针对本项目的人员及相关资源配备情况。
2)需求分析阶段:
承包商需提供概要进度计划及细化的项目需求说明书。
3)项目设计阶段:
承包商需提供概要说明书、详细设计说明书相关测试文档,并提供详细的进度计划。
4)项目开发阶段:
承包商需提供完整的、准确的源代码,源代码文档有详尽的说明和注释,另外在整个项目开发阶段需定期提交项目进度报告、定期组织项目总结会议。
5)系统测试阶段:
提供详细的系统测试报告,包括测试样例、测试方案和测试结果。
6)工程实施阶段:
需提供详细的施工计划文档,并遵守相关的施工规章制度。
7)系统验收阶段:
承包商需提供用户使用说明手册、系统维护手册、数据字典、系统设计方案。
同时我方根据系统需求对系统整体功能进行验收。
7.3功能模块外包管理方法
功能模块外包方式项目的可控性教高、风险相对较低,但要求发包方有较高的系统需求分析和系统设计经验,功能模块外包项目管理重点在于对外包模块的质量和开发进度控制。
7.3.1开发团队整体实力评估
功能模块外包方式对外包团队的技术要求不高,但开发团队的整体外包实力水平直接影响项目开发的进度和质量,因此项目启动前需对外包团队的核心人员进行基本考核,具体包括:
⏹团队成员过往项目经验
⏹团队成员基本开发/设计技术能力
⏹团队成员是否具备本项目的所要求技术能力
⏹团队管理人员领导能力
⏹团队项目开发流程制度
7.3.2团队角色分类
上图是功能模块外包项目的角色分类示意图,我方负责项目的需求调研和分析、项目的整体设计及主要的功能模块划分;承包方需负责详细的功能模块的设计及相关的开发工作。
1)我方须指定唯一的项目经理,作为我方代表,全力负责对项目整体进度控制和质量监督。
2)承包商须指定唯一项目经理,作为承包商的代表和接口人,负责与我方项目经理的沟通和工作报告和交流。
3)承包商项目成员数量须满足我方提出的最基本人员数量要求,以保证项目有足够的人力资源。
7.3.3进度和质量管理方法
1)前期准备阶段
前期准备阶段即外包团队正式参与到项目前的阶段,前期准备阶段,外包公司需满足如下需求:
⏹提供项目成员组织名单及角色分配,包括核心成员和非核心成员,并注明各成员在项目团队中的角色,外包人员在整个项目进行过程中不允许随意更换,如遇特殊情况,须提交说明申请,并经我方项目经理同意,形成书面记录。
⏹外包项目组必须指定唯一的项目经理作为外包公司的代表,负责本项目外包方的工作安排、进度控制等。
⏹外包团队的核心成员须专项负责本项目,不能同时负责其它项目
2)需求分析阶段
需求分析工作由我方独立负责,我方将向外包公司提供完整的需求分析文档,但部分口述的需求,外包方需根据自己的理解整理成需求文档,方便双方对需求的确认。
3)系统设计阶段
系统各细化的功能模块由外包公司自行设计,在本阶段外包须提供如下阶段性成果:
⏹模块设计文档:
外包团队对每个功能模块须提供详细的设计文档。
⏹制定开发计划:
外包团队针对每个功能模块,制定相应的开发进度计划。
⏹功能测试文档:
对每个功能模块,编写相应的测试文档,提供测试用例。
4)系统开发阶段
设计经双方确认通过后,外包方就可以进入开发阶段,我方将根据开发方在设计阶段提供的开发进度计划对项目进行进度上的检验,此阶段外包方需要遵守如下约定:
⏹阶段性进度报告:
暂拟定外包方需每天提供简要的天进度报告和详细的周进度报告。
⏹阶段性总结会议:
外包方需组织核心成员参加每周一的项目阶段总结会议,对目前的工作进度向我方进行汇报,对相关问题展开讨论,并明确下阶段计划。
⏹完整源代码:
代码开发需按照指定的规范,开发完成后外包方需提供完整的源代码、代码有详尽的说明和注释。
5)系统测试阶段
外包方内部的模块测试需向我方提交详细的系统测试报告,包括测试样例、测试方案和测试结果。
6)系统验收阶段
承包商需提供用户使用说明手册、系统维护手册、数据字典、系统设计方案。
同时我方根据系统需求对系统整体功能进行验收。
8外包管理商务部分
项目成果经过验收后,按合同相关规定向承包商支付项目款项,根据具体项目情况,分为:
1)对于按人日计费的项目,依照二个月(或更长,根据合同规定)的时间段,进行阶段性付款。
每次付款前,项目经理需提交外包工作考核,根据考核结果进行付款。
2)对于按整体报价的项目,按合同具体细则付款,原则上在项目没有全部验收的情况下,付款比例不超过30%。
每次付款前,项目经理需提交外包工作考核,根据考核结果进行付款。