道法术出自老子《道德经》,道,是规则、自然法则,上乘。法,是方法、法理,中乘。术,是行式、方式,下乘。“以道御术”即以道义来承载智术,悟道比修炼法术更高一筹。“术”要符合“法”,“法”要基于“道”,道法术三者兼备才能做出最好的策略,最终以器去呈现和支撑。
日常工作中新知识学习、新技能扩充、未知问题解决、项目实施交付,都可以从道、法、术、器这几个层面入手,找对解决方案,选对解决措施,将问题逐一击破。对于软件公司而言,提高项目的交付效率及成功效率,一方面可以积累经验,打造品牌力量,另一方面可以保障资金链的连续性。本文将从道、法、术、器几个层面阐述如何更好的提高项目的交付效率。
道
道是根本,是追求的目标,是价值观、对目标价值的定位。在软件项目的交付过程中,道体现在以下几个层面,项目筛选,选择符合公司战略发展及业务模式的相关项目;将业务范畴内的项目进行归类,划分不同阶段、不同行业、场景分别由专业人员负责;项目引导阶段优先按照公司内部标准实施人员式引导客户,为交付奠定基础;各岗位人员各司其职,专业的人做专业的事。
1 项目筛选
提高项目实施成功率,需要从源头对项目进行筛选,包括对项目类型、利润、周期、难易度的筛选。当前公司主打SOA综合集成、数据治理分析两大类项目,在承接项目之前需要判断及甄别项目是否符合公司发展战略及是否能为公司带来价值。
- 判断项目是否为公司主打模式或顺应后续发展模式,项目中所使用产品方案与现有产品方案契合程度,不符合公司战略方向、主营业务范畴内的项目直接Pass,不在无用的商机上浪费过多的人力、精力。
- 衡量项目收益金额减去整个项目的实施周期与人天成本后,是否可以获得等比的利润,进而决定项目的交付方式,如:卖产品做培训、驻场实施、家里开发远程支持等。
- 难易程度根据项目需求与所用技术,判断是否可以顺利实施,要知道取舍及衡量哪些值得做、哪些不能做或即使做了也没有大的价值意义。
2 项目归类
项目归类主要是对项目的类型进行划分及整理,便于按照类型承接项目和沉淀最佳实践,更加明确何种项目是主打且容易交付的,何种项目是较有难度且容易拖期的,为项目更好的进行筛选奠定基础,根据不同项目类型采用不同实施人员法论及对应的项目人员。
- 首先从大方向入手,根据集成类项目划分为SOA综合集成及数据治理分析两部分,之后根据现有产品进行灵活组合、拆分,形成该区域内的不同解决方案,最终根据用户需求进行方案的匹配和优化。
- 之后从细节区分,按照类型、行业、领域、方案、阶段分别进行归类,如:IT治理—综合集成项目—地产行业—住宅及商业混合地产—综合集成方案等,保证方案更有针对性,贴合行业、企业特点。
3 售前方案
每个项目都具备一定的特性,售前方案的准备需要区别于不同类型、阶段、行业、领域,从而有针对性的进行方案匹配,售前过程中遇到方案与客户需求具备一定差距的情况,需要对方案进行针对性的引导,屏蔽不必要的需求,使其尽量与主打解决方案相对应,技术实现也尽可能与产品功能相对应。
- 方案匹配:准备方案能够匹配、迎合客户主要需求,如:数据治理、数据分析、统一门户、应用集成等。
- 贴近行业:除方案匹配外,还要在客户行业业务上做出精准的引领建议,如:地产行业、制造行业、零售行业等业务模式与信息化建设如何结合,每一项方案的落地时机、前提、管控粒度等。
- 沟通引导:方案交流过程汇总,一方面尽可能多、尽可能准的获取客户需求、关注点,另一方面结合需求现场演绎发挥,引导客户按照既定的方案规划,为后续实施奠定基础。
- 产品落地:将产品与方案融合,不断精品化,涵盖主要的业务场景及典型的实现方式,不仅仅是依赖于功能,包含对应的解决方案。
4 各司其职
在项目生命周期的不同阶段,分别设立专岗人员,从商务销售、售前人员、产品研发、项目交付、测试部门、售后运维6个方面划分部门、岗位,各岗位各司其职。
- 商务销售:与客户建立良好沟通渠道,具备敏锐的洞察力,顾问式商务模式,前两次的拜访可以独立完成,并简单讲解对应的方案进行引导;项目进行时与实施人员配合对项目的收款节点进行推进,辅助商务事宜的推进。
- 售前人员:售前工作人员需要结合客户的需求带着匹配的方案去现场讲解、演绎,过程中确认、挖掘、引导客户的需求,推进方案的落地。
- 产品研发:研发人员保证产品功能的完备性、扩展性,能够将标准的解决方式在产品中匹配落地,同时支持项目现场产品问题的解决及特殊项目的定制开发。
- 项目交付:交付团队保证项目客户满意度、实施工作进度、里程碑节点、收款节点,工作管理细化,遇到问题及时暴露、解决。
- 测试部门:保证产品的功能、安全、性能、压力的测试,项目现场实施过程中功能测试,对接过程中友商系统基础搭建及使用了解。
- 售后运维:产品销售项目的售后技术支持;实施项目交付后项目的运维,运维项目中遗留问题及客户新增需求的反馈。
法
法是措施方法,是实现价值的保证,以法的层面制定针对问题的解决方式与方法,提高项目的交付率不仅依赖于项目交付团队,还要在项目的全生命周期中有法可依,有迹可循。包括商务之法、项目管控之法、对项目人员的培训管理之法、知识沉淀积累之法、资源求助协调之法、制定体制支撑之法。
1 商务配合
对于项目的整体实施过程,商务的配合占据重要的作用,很多项目关键节点需要商务人员的共同推动,具体包括客户跟进、客户引导、需求把控、节点推进等,相关具体方法如下。
- 方案配合:与商务人员明确客户具体需求,配合商务人员进行多次项目方案的撰写,辅助打单。
- 信息对称:对每次交流内容进行整理、汇报,并与商务人员交互明确,保证双方信息一致,便于后续工作开展。
- 客户引导:实施人员在方案方面对客户需求进行引导,商务人员在后期对实施人员引导内容进行商榷、固化。
- 需求把控:双方共同配合把控项目实施内容,实施人员给出工作量评估,商务方从周期,工作量,难度多方面缩小实施范围。
- 节点推进:对于项目中的关键节点进行商务与实施双推进,实施人员推进确认,商务方推进收款。
2 项目管控
项目管控部分主要建立项目实施人员法论,从实施人员法到管控体系全方位监管项目实施。实施人员法包括项目中各个环节的工作方法、意识形态,管控体系包括项目中的工作制度、代码标准、文档标准等。
- 管控体系:建立项目管控体系,从售前、需求调研、功能设计、实施开发、测试上线、验收运维全面涵盖,建立项目管控制度,按部门明确职能职责划分,保障项目得力开展,全方面有效支撑。
- 标准体系:建立文档标准(各阶段输出文档规范及样例,产品、方案对接标准)、代码开发标准(命名、设计、接口规范)、扩展开发标准(产品分支、项目扩展)、测试标准(测试时机、方式、标准)、问题反馈机制(暴露问题以邮件方式反馈,邮件包含记录问题说明及类型的Excel、详细描述问题截图及重现过程的Word),让每一次项目的输出(文档、代码、效果)都能成为下一阶段或下一项目的参考、依据。
- 需求明确:需求调研要详细,不要主观臆断或猜想,不明确及时与客户确认,同时保证每位项目成员对需求精准明晰,撰写需求描述文档要详细。
- 设计细致:结合项目需求进行可落地的详尽设计,明确功能约束,技术要点,设计需要详细明确出相关功能涉及到的技术预研,以设计倒逼需求的完善度及合理程度。
- 计划精细:项目计划需要明确到人、详细到人天,同一项工作不能有多人同时负责,如果是多人负责则需要把工作进行再次拆分直至明确至个人,计划需要随着项目进展、动态和突发事件等进行实时更新排期,并按时发送给相关负责人查看。
- 风险管理:对项目拖期、人员变动等风险进行管理,需要项目经理具备风险意识及敏锐度,能力不足的情况下要多做汇报,及时暴露问题,之后对问题总结积累经验寻找共性。对于人员变动风险,项目经理应随时做好准备,并根据变动人员工作进行分解重排,平滑交接工作,与变动人员确认工作无漏项偏差。
3 人员培养
人员的能力也是项目交付成功率中重要的衡量因素,项目前、项目中、项目后都可以作为人员培训的最佳节点,责任意识是一切事情做好的前提,在项目的不同阶段进行知识积累、能力提升,保障项目人员的综合素质,具体能力如下:文档能力、规划能力、沟通能力、代码能力、执行能力等。
- 文档及撰写:根据客户不同行业及业务场景进行针对性方案培训,如:产品组合模式、业务常见需求、行业积累最佳实践等
- 规划与把控:对项目全生命周期各环节需要注意哪些事项进行培训,如:节点把控、常见风险、预知难题、沟通方式、推进方式等。
- 沟通及交流:注重面向不同对象沟通的细节及技巧,如:面向领导重结果、轻过程;面向信息团队重落地,轻理念;面向业务团队重应用、轻技术等。
- 产品及代码:对项目成员进行体系化的产品培训,如:掌握常规使用、参与部分产品研发、了解底层原理、使用技巧,过程中同时加强代码能力的提高。
- 意识与方法:针对项目人员能力短板进行培训及规避,充分发挥项目成员优势,改善及屏蔽劣势,整个项目组成员之间能力互补,过程中注重实战运用和经验积累,让其多参与项目历练,真实感受项目中的工作,在失败、挫折中成长。
在项目交付过程中注重人员培训体系建设,公司每一位技术人员均是按照项目经理的标准进行培养,选拔适合成为项目经理的员工,从责任心、团队意识、抗压能力、细心程度、沟通能力等多方面选拔和针对性培养。
4 沉淀积累
沉淀积累方面,不只是项目成员自身能力的积累,还包括公司对整个项目实施交付方法论的积累,行业知识、领域知识的学习。通过项目过程中快速学习、掌握客户业务模型,项目完成后成员总结复盘,找到培训、管理方法的问题,进而调整优化;通过对项目中的成果、经验、教训的沉淀,作为后续项目的弹药支撑。
- 行业学习:基于现有产品、行业理解、项目积累可以以开放、勇敢的心态快速学习客户业务模式了解客户业务领域,过程中相关行业类比学习,不断深入行业领域,加深行业理解,同时沉淀方法、优化迭代。
- 项目复盘:每个项目节点、总结会议、项目结束后等时段,都由项目人员进行项目工作的总结复盘,交流分享经验及教训,便于团队快速学习、借鉴。
- 成果沉淀:在项目过程中相关集成系统对接的方式、更简单的集成配置手段、基础环境搭建、相关工具使用、业务方案总结、产品介质、功能代码等,便于后续项目或类似需求可以快速复用、修改,节省交付时间。
- 完善迭代:不断完善既有的方法论,产品、工具、文档、机制、体系都需要不断进行迭代和升级,并以文档形式纳入公司知识中心;对知识中心功能及管理完善,根据文档性质、类型进行类别划分,同时支持全文检索,方便对文档进行查找学习。
5 资源协调
集成项目实施过程中面向不同行业、类型的系统应用厂商,客户在不同管理模式、业务环节下的管控需求也各不相同,产品应用及实施开发过程中,一定会遇到需要协调资源的情况,对于这部分需求应该及时向公司汇报及提前申请资源协助,之后将难点攻克问题放在公司内部其它支撑人员身上,项目现场人员继续稳步推进项目其它实施内容,以保证项目顺利进行。
- 技术人员协调:对于产品功能上的BUG或缺失,通过协调研发人员进行功能的修复或扩展,并由双方进行工作量评估及计划制定,之后开展;对于项目中扩展开发的个性化内容,需要详细描述用户需求,并给出具体的扩展开发思路和设计,之后着手进行扩展工作,计划同样需要明确到人天。
- 美工资源协调:对于门户类、数据分析类项目,客户注重展现方面的美观,项目组人员要尽可能规避在项目现场反复修改界面的情况,需要提前协调美工人员进行界面的设计,并明确交付时间,根据客户需求出具2-3个版本供客户选择。
- 测试资源协调:项目中测试工作切勿等到功能全部开发完成后再开始,应该及时对开发完成的功能模块进行测试,提前协调公司测试人员,并说明测试内容及提供测试环境和手册,具体内容包含项目现场扩展的相关功能,理解客户的业务模式,分角色、功能进行模拟实际场景测试。
- 外部资源协调:一方面为聘请相关行业领域的业务专家,在项目售前方案部分进行助力(提供资料、演绎片子),需要提前预约时间、统一口径;另一方面为被集成厂商的协调,需要提前与客户沟通,由客户进行推进协调对方提供资源;对于伙伴资源的协调,需要明确当前节点及问题,在信息一致的情况下开展。
6 体系支撑
人都有惰性,没有规矩不成方圆,对于项目管理同样需要体系的支撑,满足项目管控的需求,对项目全生命周期层层把关,提升项目的交付率。
- 售前体系:售前人员熟悉方案,沟通前内部演练模拟客户沟通情况,将方案演绎、产品演示划分分别进行,输出各产品的演示关键点、演示方案,演示之后进行总结及汇报。
- 实施体系:项目实施过程中建立项目管控体系,项目日汇报、周总结,计划滚动更新;及时暴露问题,项目进展阶段推演,控制项目需求范围,把控项目各工作进度节点。
- 测试体系:内部产品、公司项目均需要遵循测试体系进行全面测试,按照不同角色从使用、操作、维护多角度测试,从安全、性能、功能层面进行自动化脚本测试,生成测试报告,成果交付对应负责人员。
- 运维体系:项目交付后进行内部交接,遵循项目运维体系,明确项目内容、背景等信息,对项目中遗留问题解决,产品层面问题反馈至研发部门进行解决,客户反馈问题及时响应,提升客户的信任度。
术
在项目交付过程中法可以保证不偏离大局,术可以让其通过更多的技巧把事情做好,包括:计划、沟通、过程推演、节点把控、上线等方面。前期计划合理,分解到位;过程中明确面向不同群体的沟通机制及方法,推演项目进展,明晰剩余工作,保证各里程碑节点的进度,快速见效分步上线,交付客户培训内容及输出产物。
1 团队协作
无论是项目中、工作中均会涉及到团队间的协作、配合,如:项目团队之间,部门工作是,协作其他人员共同完成工作,参与完成共同工作时均涉及到团队间的协作。
- 项目经理:项目团队是团队的最小单元,而项目经理是项目团队的重要因素,需要管理团队成员,保证项目团队内部团结,缓解内部的紧张情绪,能够调动团队成员,避免因外界因素影响团队内部的沟通、共处。
- 团队成员:组织部门是组成公司的重要团队,部门负责人需要明晰团队成员的性格特点,有针对性的培养,合适的人做合适的事情。
- 协作人员:在工作推进过程中需要协作完成工作的人员为协作人员,被协作人员与协作人员进行友好的连接,明确需要协作的内容,交付的标准、交付的时间、交付的标准等,过程中跟进工作的进度,保证工作交付的及时、准去、有效。
- 干系人员:推进工作过程中悉知、参与的人员为干系人员,干系人可能是相关领导、商务、伙伴等,更多是负责审查、统筹、把握方向等,在工作推进过程中需要与相关的干系人员同步工作进度,保证消息的一致性。
2 计划合理
项目中一定要制定工作计划,执行计划前,在脑海里或现实模拟一遍相关工作,理清大概思路及任务中的重点细节,之后着手开始计划,计划制定后与相关人员进行明确、审查,防止过于乐观或评估偏差。
- 整体计划入手,明确项目总共有几部分,每部分都是什么,大体怎么操作,之后设计计划包含内容,工作项、人、设计完成时间,开发完成时间,测试完成时间、进度等都要涵盖。
- 细分整体计划,将计划分解到人、天,个人计划分解到天、0.5天、甚至是小时,过程中注重可执行、可考核,伴随需求调研不断清晰及明确,需要进一步细化、更新、完善至蓝图确认后,计划整体应不为改变。
- 打好提前余量,对于项目计划中有困难的工作需要将计划时间预留充裕一些,这样在遇到问题时,可以有缓冲时间,不至于措手不及。
- 进度及时更新,对计划工作完成度进行更新,明确标记已完成、未完成、进行中的工作,继而快速定位、调整,保证项目的清晰性。
- 计划优先排列,需求变更、新增任务、计划拖期等现象都会导致计划变更,及时对应调整计划的同时,根据优先级进行工作的重新排列。
- 计划每日汇报,团队成员每日总结自身的工作日报与项目经理交互,项目经理总结本周团队工作计划,滚动更新整体计划的工作进度及变化情况。
3 沟通交互
沟通交互能力是项目必不可少的技能之一,很多时候沟通效果直接影响沟通事宜的成败,项目中包括与客户交互、领导交互、同事交互、被集成商交互、伙伴交互等,面对不同的对象,需要注意不同的策略和方式。
- 沟通意识:需要具备沟通意识,及时与领导沟通交互,并且要保证反馈信息和客户信息准确性、一致性,不要“报喜不报忧”,不能对问题避而不谈,对风险忽略不计,需要将项目的风险、问题及时反馈、暴露,共同迎难而上、解决问题。
- 客户沟通:保持良好的关系,积极友好但不低下,有原则有立场;面对不明确的需求要与客户反复确认,切勿主观臆断;按时定期向客户汇报项目进展情况,保持客户的知情权;根据不同角色客户采用不同的沟通方式及语言,换位思考保证交互明确,对交互内容进行邮件确认;避免被动沟通,占据主导地位,赢得客户的认可,便于后期验收工作。
- 领导沟通:实事求是,既不扭曲事实也不隐瞒问题;及时汇报项目工作进度,先汇报结果,再汇报过程,并且保证反馈信息和客户信息是准确一致的;及时暴露项目中产生的问题,寻求解决方式及资源协作;汇报简单明了、抓住重点,避免拖沓不知所云。
- 同事沟通:坦诚相待,不隐瞒、不针对,以解决问题为原则;具备团队意识,沟通过程中相互激励;需求交流时,需要将客户或伙伴需求准确无误的传达给同事,之后确认是否有歧义;描述问题需要将其带入场景。
- 被集成商沟通:不可以太软弱和退让,尽可能保证以和为贵;过程中不需要太强势,但立场要坚定,坚持以我方为标准;表明双方在项目中的立场并不是取代关系,而是共同利益关系;沟通无果必要时寻求客户出面解决。
- 伙伴沟通:需要尊重事实,表明项目的情况,保证双方信息一致,共同推进项目;不可与伙伴过于亲近;除共同交付的项目外,注意公司项目及产品情况的保密性,不需要交流其它正在推进过程中的项目事宜。
4 项目推演
对于项目需要谋定后动,在项目前期进行项目推演可以加深对客户需求的理解,同时辨别出哪些需求是不合理、不必要的;其次可以预测评估项目中的风险,尽可能规避不必要的影响与伤害;根据推演梳理整个实现流程,避免遗漏细节。
- 将客户需求进行汇总、梳理、归类,明确实现需求需要开展的工作,确定实施范围。
- 对项目过程全盘模拟,对后续演变进行推演,将项目最好、最坏的情况分析出来,匹配最坏情况的解决方案,如何应对问题,如何避免问题,从当下开始解决问题的方案。
- 在项目推演中对需要协调的资源进行明确、列举,并提前告知预约相关技术人员,保障实施进度。
- 具备风险管控意识,评估项目中的未知风险,并做出相应的应对手段,包括延期风险、人员流失风险、协作配合风险等。
- 具备敏锐的洞察力,不要人云亦云,对客户的动态包含公司内部的动态、与项目相关人员调整、影响项目推进的事宜均需要与领导汇报。
5 节点管控
项目节点也叫项目的里程碑,每个里程碑都伴随着项目的收款,所以节点的把控十分重要,以集成类项目为例,项目启动、蓝图确认、部分功能上线、试运行、项目验收都是重要的节点。
- 项目各里程碑节点、收款节点、工作完结阶段要明确标记出来,以节点倒逼工作管理,输出工作审查内容,如:当前阶段所在节点,是否存在拖期,拖期工作、原因有哪些,如何解决等。
- 每个项目节点都需要保证有内容输出,蓝图确认阶段需要交付细化到人天的计划、功能说明书、设计规格说明书等,并在蓝图确认会上进行蓝图确认。
- 部分功能上线需要具备上线报告、测试报告、运行报告等相关文档;验收阶段需要将项目中所有的文档、介质、方案等进行提交之后,与客户进行验收确认。
- 每个节点前,需要提前与相关人物知会,例如通知伙伴推进收款;通知公司进行交付物及成果审查;通知客户对节点时间,交付内容,签署内容明确,尽量交付一次,一次成功。(注意:保证一次成功的前提是事前已进行多轮沟通、调整、完善。)
- 所有问题都要在节点来临之前暴露,并处理解决,不能影响节点的验收工作;时刻具备风险意识,切勿乐观行事,节点时间出现一点偏离都要引起注意,否则会出现越拖越久的现象。
- 准备备选方案,必要时“退而求其次”保证项目整体环节不脱节、不偏失、不崩盘,先验收或上线部分功能。
6 分步上线
项目中不要等到所有功能开发完成之后再集体上线,要采用分步上线方式,对客户关注的且重要的功能优先进行上线,让客户先用起来,之后逐步对后续开发的功能进行上线推进。
- 对于多模块功能,根据项目实际完成情况,上线功能由易到难,由局部到整体,可以先推3-4个模块上线,重在客户先用起来。
- 由静态到动态优先成果展示,随后逐步丰富,伴随客户参与使用的同时进行完善、迭代、丰富,对于功能难点或不能如期交付的内容可以后续进行逐步转移。
- 即使客户认为功能没有完全完成,不同意上线工作,也要注意引导,说服其进行部分功能的上线,为后续验收奠定基础。
- 严格把控首次上线时间,不可过于急迫也不可过于拖沓,通常在项目蓝图确认后1~1.5个月左右推进为宜。
- 根据项目实际情况,对于工作量大且实施周期短的项目,可以在实施过程中逐步对甲方人员进行培训,后续承接实施开发工作。
- 项目中、后期邀请甲方信息团队介入项目开发工作,对项目中涉及的产品使用、基础开发、功能开发进行多轮培训,交接项目至甲方信息团队运维,交付平台文档、开发规范、对接规范、使用手册、运维手册等,培训业务人员使用、操作。
器
工欲善其事,必先利其器,这里的器指辅助项目交付所有工具的统称,可以真切的在项目实施过程中对交付带来辅助作用,从实施落地产品层面不断精细化,提高产品的质量,过程中对开发环境有效管控,对整体项目工作完善、测试优化升级,本文中的器指产品、沟通手段、开发环境、文档管理手段、部署测试等。
1 产品要求
产品本身标准化功能需要能够与项目典型需求、场景匹配度较高,大多数场景能够基于平台快速落地,若想项目顺利交付,一定要具备高质量的产品,对产品进行精细化、精品化管理。
- 产品需求与项目业务场景高度匹配,不需要特别扩展开发,拿来即用。
- 具备高质量的产品,产品经过充分的验证与测试(功能测试、场景测试、安全测试、压力测试),生成测试报告作为对外发版的依据。
- 产品具备扩展能力,可以根据客户个性化功能快速扩展开发,整体上具备易扩展、易维护等特性。
- 记录各个产品版本升级内容,功能扩展和BUG修复等信息;记录在建、已建项目使用的产品种类、版本号环境等信息;记录从某个版本升级到某个版本,需要替换哪些文件,数据哪些改动等信息。
2 沟通方式
项目过程中沟通是重要的环节,沟通渗透在项目的各个环节中,沟通可能是正式、非正式、临时、公开、内部各类形式,沟通不要拘泥于过分的礼节,核心目标是解决项目所面临的问题。
- 沟通制度:建立高效的沟通机制,从制度入手,让项目团队成员明确汇报的方式、方法、时间及内容,从制度上制约以保证高效沟通。
- 远程会议:利用相关沟通工具及手段保证信息的有效传递,避免歧义或失真,具体的方式包括远程会议,通过语音或录屏的方式,进行问题的沟通与确认。注意:网络可能会出现延迟演示过程中操作不要过快,影响演示或交互效果。
- 临时沟通:项目过程中临时问题点的沟通,可能对内也可能对外,对突发事件进行电话交流,交流前需要明确对方是否方便;直面问题、暴露问题并总结沟通内容,发送至各负责人员。
- 公开沟通:将客户与项目团队召集在一起进行交流讨论,如项目启动、蓝图、汇报、验收,通常此类型的汇报线下需要进行多次的调整、磨合、完善,保证在正式公开汇报时甲方领导的满意程度。
- 内部沟通:以分享或会议的方式进行问题汇报、总结、探讨,总结出最佳实践,供大家学习及借鉴。
3 开发环境
项目实施期间,通常不会直接在正式环境中进行部署或测试,一般都会先搭建测试环境,在测试环境中进行功能的开发、配置、数据的导入或迁移等操作,整个功能实施开发完成后,也会在搭建的测试环境中进行一系列联测,在无问题后,进行正式环境的迁移。迁移过程也需要模拟,一定要注意备份,不可轻易操作,模拟过程中将产生的问题记录,以防在正式环境出现问题。对于开发环境需要进行统一管理,明确不同的环境配置。
对接过程中需要统一基础环境,包括开发环境、配置环境、测试环境、运维环境,产品的版本与实际的应用版本相互匹配,切忌团队人员各自为战,造成因环境差异所导致的问题,影响工作的推进。
开发过程中遵循项目开发规范,包含命名规范、设计规范、对接规范等,保证项目中扩展的功能代码自注释,不将代码依托于个人手中,保障基于规范后续人员能够快速了解、理解、掌握开发功能。
4 工作环境
工作环境是一个泛化的概念,并不是仅仅是外在的办公环境同样包含服务器环境、居住环境等,下面分别从办公环境、服务器环境、居住环境几个方面说明。
- 办公环境:目前公司承接项目更多是需要出差在客户的办公环境进行驻场办公,而在项目现场实施工作人员需要客户提供相对独立的办公环境,便于与公司同事及相关业务人员进行沟通,同事办公环境需要满足与客户方能够记性有效的见面交流;
- 服务器环境:需要客户提供部署服务器包含正式、测试环境,公司承接的项目更多是远程运维而非长期驻场服务,服务器能够连接外网且被外网连接,或者通过VPN、跳板机的方式访问,。
- 居住环境:长期实施的项目中项目团队需要在客户办公环境周围租赁居住环境,建议居住环境选择安全通透、居住舒适、交通便利的。
5 部署测试
项目推进、交付过程中产品部署是基础环节,功能测试是必要环节,在整体过程中需要优先提供相关部署的环境要求及测试大纲,而整体过程中结合相关工具快速完成部署、测试工作。
- 部署环节
- 基础要求:明确部署模式,集群部署还是单机部署,部署之后需要对功能进行测试,借助脚本编写自动化恢复、启动模式,统一管理部署模式,无论是单机、集群环境。
- 环境要求:为客户提供部署环境的服务器要求,包含网络、CPU、存储等,为客户提供准备协调时间,典型环境需要能够被外网连接且能访问外网。
- 测试环节
- 基础要求:交付项目现场及客户人员前需要进行闭环的测试,包含面向业务、场景、角色、人员的实际操作模拟测试及平台本身的性能、安全、功能测试,测试人员对自身测试负责输出测试报告。
- 工具使用:使用Jmeter、Fiddler、Wireshark工具进行安全、性能、稳定性的测试,输出测试报告交付客户。
6 文档模板
上文有提到项目进行的每个阶段都需要有对应的输出物,项目中需要建立对应的文档规范机制,机制中明确文档的格式设置、交付节点、质量要求等。
- 项目前期整合客户的需求,纳入需求文档,通常在需求文档整理至70%~80%的程度就应该开始撰写设计文档,倒逼需求中是否存在遗漏、缺失,完善、充实需求文档。
- 在设计文档做70%开始进行测试文档编写,按照用户使用、操作情况匹配测试方案,通过测试文档倒逼设计文档的合理性,同时不断完善、丰富、修改、更新、细化。
- 在测试文档进行到70%开始进行实施落地,结合需求、遵循设计内容进行项目实施落地。
- 项目中一定要使用SVN、文档管理软件、内部知识中心等进行文档的管理。
- 项目中不同阶段出具不同的文档
1) 项目启动
- 《XXX集团SOA综合集成项目-需求调研清单》(Excel):记录整合项目中涉及的集成系统的清单,包含系统的名称、架构语言、厂商、数据库、集成难度等;包含项目中涉及的对接人员(伙伴、客户、项目组成员)。
- 《XXX集团SOA综合集成项目-项目启动汇报》(PPT):对项目的背景、项目中的工作内容、涉及产品介绍、项目的整体计划什么时间完成什么事情,对项目进度的展望、预期效果的预演。
- 《XXX集团SOA综合集成项目-项目启动会议纪要》:对项目启动大会的会议内容进行整理记录,包含会议概要(在什么地点、什么时间、哪些人参与的什么会议);会议内容(会议召开的内容说明);会议结论(当前会议的结果,确认的工作)。
2) 项目蓝图
- 《XXX集团SOA综合集成项目-需求规格说明书》:对项目调研的需求进行总结,明确项目需要做哪些事情,做到什么程度,不同需求的功能约束是什么,为功能设计做铺垫。
- 《XXX集团SOA综合集成项目-设计规格说明书》:根据项目调研的需求进行功能实现的设计,明确功能开发思路,开发步骤,技术要点及可能存在的注意事项,在功能设计的同时需要考虑产品的测试,明确对当前的目标用户如何使用,倒逼设计是否合理。分两个版本,客户交付为概要设计,内部为详细设计。
- 《XXX集团SOA综合集成项目-系统测试规格说明书》:根据项目设计功能,明确当前功能的使用人员、频度,在功能设计的同时需要考虑产品的测试,明确针对当前的各类目标客户如何使用。
- 《XXX集团SOA综合集成项目-集成标准规范》:根据项目功能,明确项目功能接入规范如:统一认证、工作台集成、应用集成、数据集成等。
- 《XXX集团SOA综合集成项目-整体工作计划》(Excel):项目中各个阶段,工作内容,时间节点,人天评估,对应负责人说明。
- 《XXX集团SOA综合集成项目-蓝图确认工作汇报》(PPT):以PPT的形式汇报,明确项目情况,项目工作计划,对应方案确认(部署、集成等),项目管理模式介绍(SVN管理、会议、项目汇报等),明确项目需求、设计、部署、规范等。
- 《XXX集团SOA综合集成项目-蓝图确认会议纪要》:对项目蓝图的会议内容进行整理记录,包含会议概要(在什么地点、什么时间、哪些人参与的什么会议);会议内容(会议召开的内容说明);会议结论(当前会议的结果,确认的工作)。
- 《XXX集团SOA综合集成项目-蓝图确认单》:对项目蓝图的工作内容的确认,项目双方(客户方、实施人员)签字,盖章。
- 《XXX集团SOA综合集成项目-18.05.02需求调研会议纪要》:对项目需求调研的过程进行记录,作为会议纪要。
3) 项目上线
- 《XXX集团SOA综合集成项目-系统使用手册》:对项目上线内容提供系统使用手册,本文档基于后续上线内容进行不断迭代更新,明确上线功能使用模式及访问方式。
- 《XXX集团SOA综合集成项目-系统测试报告》:对项目上线内容提供系统测试报告,明确测试功能的结果。
- 《XXX集团SOA综合集成项目-上线确认单》(类比于分项验收单):对项目上线的工作内容的确认,项目双方(客户方、实施人员)签字,盖章。
- 《XXX集团SOA综合集成项目-上线培训会议纪要》:对项目内容提供系统测试报告,明确测试功能的结果。
4) 项目测试
- 《XXX集团SOA综合集成项目-系统测试规格说明书》:与项目设计文档相互对应,对项目功能进行测试,包含测试功能的清单,功能描述,功能测试结果。
- 《XXX集团SOA综合集成项目-系统测试报告》:对项目测试功能内容提供系统测试报告,明确测试功能作用、测试过程、测试结果。
5) 验收文档
- 《XXX集团SOA综合集成项目-需求规格说明》
- 《XXX集团SOA综合集成项目-设计规格说明》
- 《XXX集团SOA综合集成项目-系统测试规格说明书》
- 《XXX集团SOA综合集成项目-系统测试报告》
- 《XXX集团SOA综合集成项目-系统使用手册》
- 《XXX集团SOA综合集成项目-系统维护手册》:对项目中涉及产品、服务器的基本维护,如MySQL数据库启停、门户服务器启停、ESB服务器的操作等。
- 《XXX集团SOA综合集成项目-常见问题汇总手册》:对项目在上线试运行阶段用户反馈的常见问题总结,避免同样的问题需要反复解答。
- 《XXX集团SOA综合集成项目-分项验收确认单》:对项目已经上线的工作内容的确认,项目双方(客户方、实施人员)签字,盖章。
- 《XXX集团SOA综合集成项目-验收确认单》:对于项目完成工作,实现的功能的总体的认可与验收,是项目交付客户信息中心的标志,双方对项目的工作内容认可。
- 《XXX集团SOA综合集成项目验收工作汇报》(PPT):对于项目完成工作的汇报,包含项目的回顾(里程碑经历),工作内容(项目中实现的事情),成果展示(实现哪些成果,为客户带来的价值),后续展望(后续的工作及合作)。
- 《XXX集团SOA综合集成项目-项目验收会议纪要》:对项目验收的会议内容进行整理记录,包含会议概要(在什么地点、什么时间、哪些人参与的什么会议);会议内容(会议召开的内容说明);会议结论(当前会议的结果,确认的工作)。
6) 交接会议
- 《XXX集团SOA综合集成项目-项目经理汇报(项目复盘)》(PPT):对项目经历进行总结,根据项目设计的Excel一步一步的复盘包含项目的回顾,复盘历程(启动、蓝图、实施、上线、验收),个人总结等。
- 《XXX集团SOA综合集成项目-项目经理汇报》:对项目经历进行总结,基本与PPT同构,基于项目复盘的内容总结项目遇到的问题、经验、教训、收获,出清单。
- 《XXX集团SOA综合集成项目-项目副经理汇报》:对项目经历进行总结,总结项目的案例进行讲解,更加侧重于项目的意义,为企业带来的价值等。
- 《XXX集团SOA综合集成项目-项目交接会议纪要》:对项目交接的会议内容进行整理记录,包含会议概要(在什么地点、什么时间、哪些人参与的什么会议);会议内容(会议召开的内容说明);会议结论(当前会议的结果,确认的工作)。
7) 项目运维
- 《XXX集团SOA综合集成项目-运维交接手册》:对项目交接内容进行整理,包含项目的背景、成员、情况,说明项目中产品的扩展开发情况,遗留的问题,后续推进事宜。
- 《XXX集团SOA综合集成项目-运维调整说明》:产品服务部在项目运维阶段对项目功能的调整,调整的内容,解决的问题以及结果的说明。
- 《XXX集团SOA综合集成项目-运维问题追踪表》(Excel):项目中客户反馈问题记录表,包含问题的描述,问题的类型,反馈时间,解决状态等。
如何提高集成类项目的交付率一直是各个实施人员不断研究的问题,对于周期长、难度大的集成类项目,越早交付越能获得价值和收益,反之会导致拖期甚至做成烂尾,损失利益。面对这种情况,就更需要实施人员不断的去完善项目的交付体系、工具及意识方法,从“道、法、术、器”四个方面综合优化,提高交付率的同时,加强项目中风险管控与预测能力。