写点什么

开发质量提升系列:问题登记列表(下)

用户头像
罗小龙
关注
发布于: 2021 年 01 月 27 日
开发质量提升系列:问题登记列表(下)

上文,生产问题的解决思路是,首先对系统进行紧急修复,让系统可以恢复正常继续营业;接着就要分析生产问题产生的根本原因,从根本上去思考如何避免问题重复产生(也就是长期方案);最后把长期方案落实并验证,这样就基本上彻底解决生产问题了。但是,光对生产问题进行排查与修复,运气好的话 1 个小时内能完成,不好的话得花上一整天。一旦问题得到暂时的解决后,人得到放松就会把问题抛诸脑后了,何从谈起从根本上彻底解决问题呢,这时候,就是问题登记列表登场的时候了。

问题登记列表就相当于生产问题处理的一个异步机制。当生产问题得到临时处理后,可以先把问题的基本描述及临时解决方案先登记起来,后续再安排一个时间,整个开发团队或者技术骨干一起讨论问题的根因及解决方案,使用团队的力量而非个人的力量去解决。这样做的好处是,第一可以集思广益使问题得到最优解,第二是避免问题的解决都压在一个人的肩膀上,影响他的工作情绪。

问题登记列表的表头主要有以下几项内容:

  • ID:问题登记的 ID 号,一般使用自然序列,用于沟通或关联使用;

  • 问题基本描述:简单说明问题的背景及表象。比如某个存储过程从原来的 5 分钟跑完变成 50 分钟跑完,影响报表展示,可以登记为“XX 存储过程截至到 XX 日期前跑批完成时间为 5 分钟,到 XX 日期时跑批时间突然变为 50 分钟”;

  • 临时解决方案:用于登记为了紧急修复问题所采取的方案,用于跟踪处理过程的溯源,避免与未来的长期方案出现冲突。比如上述问题,临时解决方案可以登记为“对存储过程耗时较久的 SQL 添加了 8 线程并行处理,跑批时间回落到 10 分钟内”;

  • 根因分析:去挖掘问题产生的根本原因,为长期方案提供解决依据。比如上述问题,根因分析可能是“经排查耗时较久的 SQL,发现所用了的 A 表原来是每天分区的,结果日期 XX 的数据却没有产生分区,导致对 A 表进行全表扫描。而 A 表没有产生分区的原因是因为 XX 原因导致的”;

  • 长期方案:完成根因分析之后,长期方案的思路自然会浮现在水面上,这时候就要对最终的解决方案进行最优解的选择,可以是正面解决问题,也可以跳过问题做兼容性操作,或者其他解决方案。比如上述问题,长期方案可以为“A 表完成分区操作后,先判断当日的分区是否正常生产,若非正常生成就重新执行分区语句,直到分区生成,或者超过 10 次没有生成成功就报错提示”;

  • 处理状态:登记生产问题的处理状态,一般状态分为待处理、正在处理、完成处理;

  • 责任人:生产问题一定要落实到具体的人,才容易去推动和解决;

  • 处理日期:登记生产问题的最终处理完成日期,方便以后对生产问题的回顾。

*问题登记列表样例

最后多说一句,问题登记列表在生产问题的解决过程中是一个非必要的角色,但是属于开发质量提升的重要工具之一,只有在开发团队中落实到位,形成一种思维和习惯,才能真正把这个工作用好

 

总结:

  • 问题登记列表相当于生产问题解决的一个异步处理机制,先把问题基本描述及临时解决方案登记下来,后面再集中时间分析根因及找出最优解的长期方案;

  • 问题登记列表一般具备 ID 号、问题基本描述、临时解决方案、根因分析、长期方案、处理状态、责任人及处理日期的内容;

  • 问题登记列表是开发质量提升的重要工具之一,只有落实好才能发挥应有的价值。


发布于: 2021 年 01 月 27 日阅读数: 10
用户头像

罗小龙

关注

镜花水月 2020.08.18 加入

数据工作者,目前就职于商业银行数据部门,擅长数据架构、数据建模、数据开发及数据分析

评论

发布
暂无评论
开发质量提升系列:问题登记列表(下)