记录一条没少,为什么还是还原不出当时那台机器人?
机器人项目里,很多问题并不是没有记录。
软件有更新日志,电气有替代记录,结构有图纸修改,测试有问题单,现场群里也能翻到当时的调试说明。单独看,每一条记录好像都在。
但过了几个月,问题又出现时,团队还是会卡住。
比如一台机器人又开始偶发掉线。
软件翻到一条记录:“优化通信稳定性。”
电气翻到一条记录:“连接器由原方案替换为新方案。”
结构记录里写着:“调整线束固定方式。”
测试问题单显示:“连续运行通过,问题未复现。”
现场人员又补了一句:“当时好像还临时放宽过一次通信超时。”
记录都有。
但真正要追问题时,大家反而更迷糊:
这些记录说的是不是同一次问题?
它们分别在哪台机器、哪个版本、哪个工况下生效?
最后验证通过的,到底是哪一种硬件、软件、参数和装配组合?
这时候才会发现,项目不是没有记录,而是记录之间没有形成关系。
每个专业都写了自己那一段,但后来仍然还原不出当时那台机器人。
每条记录都对,却没有指向同一条变化链
这些记录单独看都没有错。软件记录程序变化,电气记录连接变化,结构记录安装变化,测试记录验证结果,现场记录当时怎么把问题先跑过去。
问题在于,它们经常分散在不同文件、不同工具、不同群消息和不同专业语言里,没有明确指向同一个问题、同一台机器和同一次验证。
但机器人是整机系统。
后来真正需要知道的,不只是某个专业做了什么,而是这些动作有没有指向同一个问题,最后有没有形成一套明确的系统状态。
这里说的系统状态,就是当时那台机器人实际使用的硬件、软件、参数、装配方式和运行条件组合。
每个人记录的是自己的动作,但后来需要还原的,是整台机器的系统状态。
缺的不是记录,而是四个对象之间的关系
一条真正能支撑回溯的项目记录,至少要能串起四个对象:
问题,改动,系统状态,验证范围。
拿前面的偶发掉线来说。
第一,问题是什么。
是某一次通信掉线,还是某一类姿态下的偶发掉线?是单台机器出现,还是多台机器都出现?问题对象不清楚,后面的记录就很难归到同一条线上。
第二,改动是什么。
软件逻辑改了什么?通信超时参数有没有调整?连接器是不是替换过?线束固定方式有没有变化?这些动作如果只是分散在各自记录里,就很难判断它们是不是同一次处理的一部分。
第三,系统状态是什么。
最后保留下来的到底是哪一版软件、哪一组参数、哪一种连接器、哪一种线束固定方式和哪一套装配状态。后来要还原的不是单个动作,而是这些动作组合成的系统状态。
第四,验证范围是什么。
这套状态在哪台机器、哪些姿态、哪些负载和哪些环境下验证过?只在一台样机上跑通过,和多台机器、不同人员、不同工况下都能成立,不是一回事。
这四个对象如果串不起来,记录再多,也很难支撑后续排查。
问题单关了,也可能还原不出系统历史
测试记录里只写“问题已关闭”,往往只能看出在某个条件下,现象没有再出现。
但它不一定说明,当时究竟是哪组改动起了作用,最后固化了什么状态,验证边界覆盖到了哪里。
也就是说,现象暂时没有再出现,不等于系统历史已经能还原。
后面一旦问题回来,团队又会重新开始问:
当时到底是哪一次掉线?
软件、参数、连接器和线束固定方式分别改过哪些?
最后保留下来的系统状态是什么?
那次验证覆盖的是哪台机器、哪个版本和哪些工况?
这不是记录数量的问题,而是记录之间有没有形成可追溯关系的问题。
后来查记录,只追三个问题
所以后来再看机器人项目里的记录,我通常不会只看那一句“改了什么”。
各专业通常已经记录了“改了什么”,真正容易缺失的是这些改动属于哪个问题、最后进入了哪一种系统状态,以及这个状态在哪里验证过。
我会继续追三个问题。
第一,这条记录属于哪个问题?
如果一条软件记录、一条电气记录、一条结构记录和一条测试记录其实都服务于同一个问题,它们就应该能互相对应。否则后面的人很难知道这些动作是不是同一条变化链。
第二,它最后进入了哪一种系统状态?
要能说清楚最终状态是什么:哪套硬件、哪版软件、哪组参数、哪种装配状态、哪套测试条件。否则记录只是动作清单,不是系统历史。
第三,这个状态在哪里验证过?
一台样机验证过,不代表所有机器都验证过;当前任务验证过,也不代表最差工况、维护复装和后续版本都成立。
这三件事能追出来,项目记录才真正能帮助后来的人还原现场。
好记录是为了还原当时那台机器
好的项目记录,不是把每次动作都写得很长。
它真正要解决的是:以后有人回头查问题时,能不能顺着同一条关系链,重新拼出当时那台机器。
当时是哪一个问题,做过哪些改动,最终形成了哪一种系统状态,又在哪些机器、版本和工况上验证过。
记录不缺,缺的是关系。
关系一断,后面的联调、测试、交付和维护,就只能拿着一堆真实的资料重新猜。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)