目录
步骤七:定期专人跟进优化事项,一人一项事情跟进确保责任到人(一人一项)
场景分析
特别是大公司一般大项目非常复杂,业务的不断变革和不断地更新迭代。针对开发的产品就会有更高的要求,如何让开发出来的产品跟随着业务变化而不断的适配。如何去针对历史问题进行优化?经常会有历史包袱,如何解决?项目越来越大,业务迭代功能越来越复杂如何对前期设计不合理,方向不正确的进行调整?如何针对历史框架进行升级,尤其是计算机的语言在不断地进步会不断出现信息安全漏洞,框架迭代大版本不兼容。底层设计未考虑到未来的兼容性问题?每个项目都会遇到庞杂的数据流传输走向不清晰,修改困难且非常难处理?目前列举的也只是在产品迭代几年的情况就会出现,更何况是十年以上二十年以上的系统,如何让用户越用越好。系统越做越好呢?是否有一个方法或者策略可以去做呢?我们是否经常遇到说这是历史代码历史问题的情况,甚至回复无法解决要解决特别困难,需要大量资源等。
经过我待过的项目当中里面有70-80个微服务的情况,产品越做越强大越做功能越多。然而前期设计的考虑不足。随着时间的越久出现的历史包袱就越来越重。越来越容易出现系统的故障,底层设计和数据架构设计的问题越来越突出。那么我们是否要考虑将这些微服务进行一次治理,是否应该要对底层架构进行一次升级和大的改造呢?可能很多人都会觉得功能不出故障就好,至于以后有问题以后再想办法打补丁解决。这样只会增加后来人的包袱,然后到不得不重构的地步既增加了开发成本也浪费了大量资源和人力来进行系统重构。重构之后是不是还会再次出现慢慢的历史包袱积累呢?我想肯定会出现的会形成一个恶性循环也就是系统用不过5年的情况呢?如何解决这些棘手的问题,我们有没有真正的方法呢或者策略呢?
长期优化策略
步骤一:共识大方向和方案制定
1、团队达成共识,必须要短期的业务需要迭代优化也需要指定长期的产品优化在每年做预算就需要把这部分内容计算进去;
2、历史包袱或者更好跟快的框架使用迭代升级。必须要有一个详细的清单并且做好优先级,每年的规划当中需要将历史包袱完成;需要指定到人或者团队;以及完成优化的具体时间。
3、除了历史包袱解决还要主动引入一些先进的技术迭代更新作为长期的技术投资项,提前预研这些技术。
如果要解决大项目当中的历史包袱,团队当中必须达成一致的想法就是要做好短期的任务前提下也要有规划的做好长期的规划方向。业务-产品-开发-测试必须要形成统一的认识也就是如果历史包袱不解决那么损失会更大;并且对产品的品牌和口碑影响是不可逆的损耗。必须要得到一个强有力的责任人发起各岗位配合才能真正落地。前期最难的事情肯定是让团队的所有成员都接受这种变化,原先只需要对业务需求迭代功能负责,如何让长期优化深入到团队的没有个人心里面最少需要核心骨干接受这种变化;并且非常支持这种改变才能真正落地;方案需要架构师团队,产品经理团队不断深入业务了解未来业务大概方向,针对性的提出优化整改方案。方案需要经过整个团队的人员认为可行并且达成一种共识。
步骤二:梳理大项目的功能
1、如何梳理功能?方案设计完成之后,越大的项目功能点会越多;针对需要优化的内容将团队当中的成员划分不同小组,针对小组梳理不同的功能。
2、如何确保功能梳理正确没有缺漏?小组成员都有产品开发测试一起进行,不同针对要解决的问题将功能依据一份整改方案项列举出来:如:底层的公共组件变更,所有的组件需要开发将代码功能列举出来。测试根据功能补充遗漏的部分。产品根据梳理出来的功能判断是否合理是否需要删除功能或者优化功能。相互补充,相互检查功能是否有缺漏。
3、大项目如何在产品的层面上面判断是否有遗漏,方案是否合理?需要将所有的小组梳理的功能进行一次汇总,针对功能逐条逐行的过,耗时会比较长。但是大项目如果要做到零失误则必须要精细化管理,逐条说出原因。按照方案设计的原则惊醒功能评审是否合理。遇到不合理的功能则需要业务参与判断功能是否下架,或者调整业务是否接受。
步骤三:可执行里程碑计划
1、梳理出来的任务需要小组的团队成员根据现有资源,现有的业务需求进行一次无干扰的评估。针对现有功能开发调整评估工作人天。
2、根据资源情况,判断长期的方案是否分期,如何分期上线。以及现有的功能如何确保无误的按时交付制定可行的里程碑。如何确保里程碑是否合理,小组成员针对功能有明确的认知以及不允许出现模棱两可的情况。一般需要团队负责人根据5w2H的工具进行问询分析。针对不明确的地方需要采用此种方式,针对明确的可以快速跳过。
步骤四:强大的公共基础能力-提前建设
1、在做长期优化之前,一定要根据长期方案当中的公共建设提前半年到一年就开始进行。目的是为了针对大项目其他微服务使用公共服务能力防止重复工作浪费时间,且公共代码编写和公共能力建设必须保证代码质量非常好的一批人去做开发。里面兼容性和设计理念必须能够有适配性。
2、建设公共能力之前先收集产品当中的公共困难和团队的各种历史遗留问题清单,根据清单开发针对性的能力。
3、提前建设优化方案达成的可检查属性设置,能够在系统层面反馈优化的情况作为运营和数据支撑。
步骤五:计划执行过程,细致精细化管理(挑战很大,容易变形)
1、在执行计划过程当中会遇到各种突发问题,如何防止业务变形则需要一个有效的应变小组成员:总体组成员一般为业务负责人,产品负责人,技术负责人等,根据问题不同的团队应变讨论应对措施,一般问题从提出到解决不超过两天,必须有可行的决策和方案设计。
2、各小组的任务必须要细分到每一天的任务,每一个成员的任务都必须严格按照日清日结的方式完成任务。并有专门协助的成员根据整个项目进度,总体组里面按照小组汇报每日的进度。
3、为了确保产品各环节能够稳定平稳上线,且不出问题需要小组负责人定期抽查任务的实际执行情况,确保执行过程当中按照预先方案执行。如:产品需要确保功能按照预先的计划保质保量执行,开发需要确保代码质量是否按照预先的方案编写,测试需要确保功能测试是否按照用例执行。如何确保呢?1、可以在线编辑任务的方式跟进;2、可以线下excel的方式跟进。3、不管何种方式都需要有一个统一的地方维护,可以线上也可以线下入口统一。
步骤六:短期迭代优化和长期方案执行
1、产品的迭代版本业务功能肯定还在不断推进。
2、根据长期优化方案循环步骤一到五。
步骤七:定期专人跟进优化事项,一人一项事情跟进确保责任到人(一人一项)
1、长期跟进的事项需要有一个专门的人负责,责任到人。
2、所有的事项必须确保一人一项,专项跟进和负责。
步骤八:监控生产优化是否达成,抽检(日志,业务等)
1、抽查优化成果,需要确保有检验机制存在。可以是线上线下的数据收集等方式
2、最好是能够在开发层面做好监控,防止优化不到位的情况,出现返工。
步骤九:定期团队专项任务复盘和奖惩(激励和目标对其)
1、根据团队专项任务完成情况复盘。根据完成情况予以奖惩机制。
2、团队之间不断拉齐专项任务情况,可以做到团队内部相互的良性竞争。达到产品越做越好的目的。