机器人项目里,很多问题并不是没有记录。

软件有更新日志,电气有替代记录,结构有图纸修改,测试有问题单,现场群里也能翻到当时的调试说明。单独看,每一条记录好像都在。

但过了几个月,问题又出现时,团队还是会卡住。

比如一台机器人又开始偶发掉线。

软件翻到一条记录:“优化通信稳定性。”

电气翻到一条记录:“连接器由原方案替换为新方案。”

结构记录里写着:“调整线束固定方式。”

测试问题单显示:“连续运行通过,问题未复现。”

现场人员又补了一句:“当时好像还临时放宽过一次通信超时。”

记录都有。

但真正要追问题时,大家反而更迷糊:

这些记录说的是不是同一次问题?

它们分别在哪台机器、哪个版本、哪个工况下生效?

最后验证通过的,到底是哪一种硬件、软件、参数和装配组合?

这时候才会发现,项目不是没有记录,而是记录之间没有形成关系。

每个专业都写了自己那一段,但后来仍然还原不出当时那台机器人。

每条记录都对,却没有指向同一条变化链

这些记录单独看都没有错。软件记录程序变化,电气记录连接变化,结构记录安装变化,测试记录验证结果,现场记录当时怎么把问题先跑过去。

问题在于,它们经常分散在不同文件、不同工具、不同群消息和不同专业语言里,没有明确指向同一个问题、同一台机器和同一次验证。

但机器人是整机系统。

后来真正需要知道的,不只是某个专业做了什么,而是这些动作有没有指向同一个问题,最后有没有形成一套明确的系统状态。

这里说的系统状态,就是当时那台机器人实际使用的硬件、软件、参数、装配方式和运行条件组合。

每个人记录的是自己的动作,但后来需要还原的,是整台机器的系统状态。

缺的不是记录,而是四个对象之间的关系

一条真正能支撑回溯的项目记录,至少要能串起四个对象:

问题,改动,系统状态,验证范围。

拿前面的偶发掉线来说。

第一,问题是什么。

是某一次通信掉线,还是某一类姿态下的偶发掉线?是单台机器出现,还是多台机器都出现?问题对象不清楚,后面的记录就很难归到同一条线上。

第二,改动是什么。

软件逻辑改了什么?通信超时参数有没有调整?连接器是不是替换过?线束固定方式有没有变化?这些动作如果只是分散在各自记录里,就很难判断它们是不是同一次处理的一部分。

第三,系统状态是什么。

最后保留下来的到底是哪一版软件、哪一组参数、哪一种连接器、哪一种线束固定方式和哪一套装配状态。后来要还原的不是单个动作,而是这些动作组合成的系统状态。

第四,验证范围是什么。

这套状态在哪台机器、哪些姿态、哪些负载和哪些环境下验证过?只在一台样机上跑通过,和多台机器、不同人员、不同工况下都能成立,不是一回事。

这四个对象如果串不起来,记录再多,也很难支撑后续排查。

问题单关了,也可能还原不出系统历史

测试记录里只写“问题已关闭”,往往只能看出在某个条件下,现象没有再出现。

但它不一定说明,当时究竟是哪组改动起了作用,最后固化了什么状态,验证边界覆盖到了哪里。

也就是说,现象暂时没有再出现,不等于系统历史已经能还原。

后面一旦问题回来,团队又会重新开始问:

当时到底是哪一次掉线?

软件、参数、连接器和线束固定方式分别改过哪些?

最后保留下来的系统状态是什么?

那次验证覆盖的是哪台机器、哪个版本和哪些工况?

这不是记录数量的问题,而是记录之间有没有形成可追溯关系的问题。

后来查记录,只追三个问题

所以后来再看机器人项目里的记录,我通常不会只看那一句“改了什么”。

各专业通常已经记录了“改了什么”,真正容易缺失的是这些改动属于哪个问题、最后进入了哪一种系统状态,以及这个状态在哪里验证过。

我会继续追三个问题。

第一,这条记录属于哪个问题?

如果一条软件记录、一条电气记录、一条结构记录和一条测试记录其实都服务于同一个问题,它们就应该能互相对应。否则后面的人很难知道这些动作是不是同一条变化链。

第二,它最后进入了哪一种系统状态?

要能说清楚最终状态是什么:哪套硬件、哪版软件、哪组参数、哪种装配状态、哪套测试条件。否则记录只是动作清单,不是系统历史。

第三,这个状态在哪里验证过?

一台样机验证过,不代表所有机器都验证过;当前任务验证过,也不代表最差工况、维护复装和后续版本都成立。

这三件事能追出来,项目记录才真正能帮助后来的人还原现场。

好记录是为了还原当时那台机器

好的项目记录,不是把每次动作都写得很长。

它真正要解决的是:以后有人回头查问题时,能不能顺着同一条关系链,重新拼出当时那台机器。

当时是哪一个问题,做过哪些改动,最终形成了哪一种系统状态,又在哪些机器、版本和工况上验证过。

记录不缺,缺的是关系。

关系一断,后面的联调、测试、交付和维护,就只能拿着一堆真实的资料重新猜。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐