大家好,我是Frank,一个爱学习,爱折腾,什么都懂点的万能PM。
昨天晚上给「项目实施训练营」的同学讲《系统上线》这节课的内容,最后答疑环节,有一个同学问:系统上线,都有哪些问题?昨天晚上给予了回答,分别从数据问题,权限问题,产品需求没对齐,测试不充分,开发考虑不周引起上下游系统出现 bug等进行了答疑。今天我想借着昨天这会同学的提问,进行延展一下:系统上线,你遇到过哪些坑,怎么解决的?那下面,我根据过去做项目,在系统上线阶段,遇到的一些问题,进行问题,及对应的解决方案的梳理,供你参考,可以帮你规避一些坑。如果你没做过项目,更要看看,多看看经历过的人,都遇到过哪些问题,怎么解决的,哪些是你可以应用到你自己的高项论文里边。在新系统开发,验证完毕之后,能不能正常切换上线成功,很重要的一个问题就是,旧系统的数据,能不能正常的符合预期进行数据迁移到新系统。如果迁移失败,或数据迁移不一致,都会导致新系统不能正常切换使用。比如,我曾今做的一个智能客服项目,客户旧系统的在线会话数据有3000多万条,录音记录和录音数据有1000万左右,服务工单数据有300万左右,客户数据有500万。那这么大量的数据,我们当初项目比较赶,只预留了在上线前一周来干这个事情。后面在做的时候,发现这个量太大,我们在接口批量从对方系统读取数据,转换,然后再往我方写历史数据,双方接口都有一些限频,容易触发到系统的限制,及CPU,内存高位运维,服务很卡,降低了效率,此外我们还遇到迁移过程中,出现一些报错,两边系统数据不一致,排查问题,修复,又耽误了一些时间。最后我们的项目,延期了一周才上线。原因就是导入历史数据,出现了一些问题,耽搁了时间。此外,数据迁移相关的问题,还有一些,比如数据字段不规范,通不过系统的校验,比如单选,多选,关联,多态等字段。再比如,老系统可能没有数据唯一id,而进到新系统必须要有唯一id,那如何给旧系统的数据都生成虚拟的唯一id与新系统对应等。充分做好客户方历史数据的调研,分析和导入方案评估,及工作量评估是必须的。另外,需要把数据迁移的工作提前,与测试阶段收尾进行并行,提前验证,并把历史数据导进系统,而不是在上线前来做这些数据的导入。这样,可以规避掉上线前导历史数据,出现各种问题,也有充足的时间来解决和应对。有的人说,生产没有上线,怎么能提前把数据导入进系统呢?我想说,你就不能把历史数据,导入到生产环境的一张临时表里面,正式切换的时候,再把生产环境这个临时表的数据,在DB层面挪到对应的业务表上边吗?我相信开发同学,或有经验的同学能听懂。系统上线,很多人其实会忽略权限相关的问题,没有高度重视,我以前也犯过同样的问题。那大概是十年前一个寒冷的冬天,整个项目组十几个人,晚上十点开始,做系统的上线发布。原本以为晚上2个小时可以搞定。可发布的时候,权限相关的代码发布不太顺利,在测试环境验证的权限没问题,到生产环境,总有权限报错的问题。表现出来的问题就是,用户权限数据初始化不完整,有的人无法登录,认证不通过。有的人登录成功,缺失部分菜单模块。有的人,在操作某个功能按钮,没有权限。当时是搞了一个通宵,全程压力巨大,紧张,又冷又饿。好在天亮后搞定了,回去睡到晚上才醒。测试阶段,在测试环境,UAT环境测试验证的时候,不要忘记,在生产正式环境的权限要求来严格进行验证,系统每个角色,对应要在系统操作的流程和功能都要完整模拟走完,严格遵守这些角色的用户故事线去验收对应的环境,这样可以解决很多类似这种权限及后台配置相关的问题。另外用户的权限初始化验证,一定要提前测生产环境,把一些潜在的问题在发布之前解决。这样后续发布,会顺利很多。有时候,做项目,没有那么规范,加之业务方可能也没有充分参与。前期的一些需求,可能业务方,产品经理,开发,测试等角色理解的偏差,会导致最终上线的需求,和用户要的有偏差。比如,我以前做CRM系统,商机模块,商机明细子表,客户说我要在每一行明细填不同的产品,要选产品型号,数量,销售价格,折扣,税率,税前金额,税后金额,然后告诉我们公式,税前金额=数量*销售价格*折扣。结果我们都是按这个公式设计的。结果上线之后,财务的用户跑来说,有一些海外的产品对应的商机,订单等,需要换另外一个公式,且需要换成美元。你看这个需求,其实就是需求没完全对齐,上线后就来一些问题反馈,或被迫要接新需求才能满足用户的业务使用。需求调研,尽可能做到三个全面,人员全面,工具全面,结构全面。人员全面的意思是,同一模块可能涉及的不同角色用户要调研全面,不能遗漏某种角色的需求。工具全面,指的是,我们要在收集需求阶段工具上要全面,比如用户就在现场,可以采用访谈,用户在其他分公司,可以用远程会议来收集需求,用户面广而多,可以用问卷调查。如果需求不那么明确,可以标杆对照,参考同行竞品的。结构全面,指的是,需求的结构要完整,比如业务功能需求,权限需求,UI界面交互需求,安全需求,性能需求等。此外,根据需求调研结果进行需求分析,出产品详细设计稿之后,需要跟用户对齐需求细节,交互,权限等最终效果,做好书面的确认。最终还是有新的需求出现,那之前有确认留底,可以名正言顺地走新需求排期,处理起来就不会那么被动。
我相信每个信息系统项目,都配备测试工程师,有时候可能还不止一个。那,这么专业的测试人员,为啥在测试环境做测试没有问题,到了发布到正式环境的时候,就出现各种奇奇怪怪的问题呢?并且这里面很多问题,可能在之前的测试流程里面,可能都没有出现过。我想,这种情况大家应该都不陌生。根据我的个人经验,出现这类问题,主要有几个原因。
测试人员对业务需求的背景理解不透彻,忽略了一些背景和前提条件,漏测了。而生产环境是有这些依赖的,结果产生了异常。
没准备测试用例,或测试用例准备不充分,或测试用例没有进行细致的评审,导致测试项遗漏。
测试人员站在技术的角度测试,忽略了业务流程和用户的操作习惯和路径。
测试环境与生产环境配置不一致,导致测试的时候没出现问题。
测试没有严格的验收流程,缺少关键用户的验证,直接上线发布导致问题。
解决方案:
1、完善测试及验收流程,确保发布之前,在测试环境验收通过。
2、测试工作开始之前,应当设计测试用例,并经过评审,确认无误。
3、测试人员应该主动了解需求背景,及用户故事线。
4、确保测试环境和生产环境的配置项信息一致,对于增量迭代的需求,基于生产的模块开发,测试环境的功能和配置应该与生产保持一致,再做测试。
5、开发相关的问题。
在实际工作中,有一些问题不得不说,是开发导致的,实话实话哈。比如,我以前一个智能外呼的项目。需求大概是这样子,根据客户的最近跟进时间,倒叙排列,计算当前时间开始,有90天以上没有跟进的客户,筛选出来,批量轮询调用语音机器人外呼接口,进行语音拨打电话,然后外呼系统的接口返回的拨打结果,回写外呼数据上边的一个接听状态字段。结果你们敢想,发生了什么吗?这个哥们,update写成了delete,本来要更新接听状态字段,结果把呼叫记录给删除。这个找谁说去,没人帮他背锅。类似这样的还有,比如,改了接口协议,或某个字段,忘记考虑兼容其他调用方。比如,接口设计没有做限速,被调用方给无限请求把服务打挂了,比如,技术方案设计不合理,等等。
解决方案:
技术这块,我不敢指点哈,有一个建议就是,充分理解需求本身,设计技术方案,一定要思路清晰,考虑问题要全面。最后,就是作为技术leader,忙碌的同时,要注重代码review这件事情,做好这个,其实就能避免很多坑了。另外不要忘记高并发,大数据量的场景,不仅要保障功能,也要保障性能扛得住,经得起业务高峰的考验。
6、系统推广的问题。
有时候,系统上线了,在客户方内部很难推广,没有多少人使用。比如,某生产制造企业,销售员工基本都是10几年的老员工,他们有稳定的客户群,且都是大客户,要让他们使用CRM系统,来规范化录入线索,客户,商机,并在系统记录每个客户的跟进情况,每个客户的商机,每个阶段都要填关键任务和关键信息,POC阶段,报价阶段要经过系统审批等,这么多操作,销售会觉得很难。但这些才是线索到商机L2O流程的标准最佳实践。如果推广由客户的IT团队来推广,其实很难的。需要从公司的高层,CEO,从上往下去推广,才会事半功倍。
解决方案:
上边提到了,具体推广的问题,分析背后都是什么原因,然后针对性的解决,让系统真的对客户有价值,慢慢地,系统才能被客户接受。否则,被替换的成本就太低了,可能未来客户就不用你系统了。
OK,以上就是今天分享的全部内容啦。
你在项目上线过程中,遇到哪些坑,如何解决的,欢迎来交流探讨。
如果你没有项目经验,想学项目实战,欢迎来找我咨询项目经理实战课,手把手教你做项目。
对了,软考考生,想了解项目实施,也非常适合。
常驻小尾巴:
1、如果你需要加入软考学习付费群(入群门槛39.9元起,每满50人涨价10元,群内有问必答),可以关注公众号,回复w,获取我的联系方式。
2、项目经理入门实战(录播课),299元。
3、软考高项第4版知识库,109元。
4、高项论文背景定制,论文辅导课,论文批改,私信沟通,根据需求定制。
5、思维导图录播课,99元。
6、2024年度成长陪伴微信群,99元。(没有固定内容交付,随时会在群里分享:读书笔记、个人观点、自媒体账号与变现、思维导图制作技巧、学习方法、时间管理等内容)。
欢迎点赞,在看,转发给我鼓励~