前言
有朋友分享了他们公司的瓜,有点搞笑,又有点心酸。
潜水吃瓜
我司有个App体验问题反馈群,专门用于反馈App的线上问题,群里什么人都有,不知道自己是什么时候被拉进群,只是好久没在里面发过言。前天早上突然发现有好多未读消息,与往常一样,有红点未读强迫症的我,趁着番茄时间点进去打算快速滚动浏览。
万万没想到,还真让我吃到了瓜。
众生相
首先介绍生产瓜的大佬们。
前端开发:小前
后端开发:小后A
后端开发:小后B
后端测试:小测A
前端测试:小测B
产品:小产
事情的起因公司二老板发现iOS App上"转发帖子"的功能不好使了,于是在小群里@了产品老大并附带了出现Bug的视频,产品老大立即找到对应负责的产品小产,小产立马在反馈群里转发了老板与产品老大的聊天记录,并@了小前,因为是老板发现的问题,所以大家都很重视,火急火燎地开始排查,于是有了下面的对话。
小前:这个需求都上线好几年了,代码都没动过,@小测B 你看看呢?
小测B:@小产 方便问问老板是哪个版本的App吗?
小产:应该是最新版本,你试一下。
十分钟后...
小测B:我试了最新版本和前面几个版本都没发现问题呢?@小前,你复现了没?
小前:代码没动过,@小后B 接口有变过吗?
小后B:调了一下接口,接口没问题,看了日志也没发现异常,你排查一下代码@小前。
小前:@小产,只有一个用户反馈有问题吗?能借用老板的账号登一下不?
二十分钟后...
小产:@小前 账号密码我私发你了
小前:@小测B,账号密码我私发你了
小测B:...
小测B:@小前 复现了,崩溃了😅
小前:好的,我试试
十五分钟后...
小前:@小后B,你那边返回的"relative_id"怎么是空串呢?我记得之前是整型,现在返回空串导致App解析失败了。
小后B:这个数据我是透传的,@小后A,你们有改了数据吗?
小后A:前天洗过一波数据,有一些无效的用户的脏数据清除了,这个和@小测A 说过了,他应该测了吧?
小测A:@小后A 你给我的影响范围没有包含"转发帖子"的功能。
小前:...
小测B:...
小后B:...
小产:所以谁来修复这个Bug?
小前:以前是纯前端还可以直接发版,现在转大前端了,移动端发版周期比较长,覆盖率也是个问题,建议后端想想办法。@小后A @小后B。
小后A和小后B商量后
小后A,我先把数据恢复一下等部署了你再验验 @小测A、小测B
问题到此就修复了。
然后就开始了复盘(定责)探讨(甩锅)。
小测B:大家填一下这个复盘文档,研发责任人这块填谁?
群里寂静无声,落针可闻。
小后A:@小前,前端这块是不是应该兜一下底呢?
小前:是可以优化一下,但是这个需求都上线好几年都没出问题了,
产品:也没有几年吧,刚看了一下,就一年两个月...
小前:你们清洗数据也没通知我和@小测B,我们很被动。
小后A:清洗数据和这个需求没有必然联系,况且后端的数据也不是说完全准确,不能完全依赖后端数据的正确性。
小前:之前约定的那个字符串就只能传数值类型的,防不胜防,谁也不知道你们的骚操作。
小后B:没有说过这字符串只传数值类型的,要不然为什么不直接定义为数值类型的,我觉得当时应该考虑到了存在非数值类型的可能。
小前:总之我记得有说过,要不然我为什么没有做兜底?,本身产品的设计上也有点小瑕疵,不应该关联这个"relative_id"
产品:...和产品有什么关系?之前都是过了评审的,而且当时开发说不太好做,最后权衡了一个最简单的方案,连这个都能出问题...这个问题上,感觉用例可以覆盖更广一些。
小测A:清洗数据的需求是@小后A提出来的,也知会了你 @产品,但是影响范围上你们都没有给我列出来,我的用例里没有这个case。
小后A:@小测A 不是我个人提出来的,是本身就需要清洗,我也可以不用洗,只是洗了更好的返回正确的结构数据,方便了大伙。后面涉及到前端的改动应该由@小测B 来测试,他比较熟一些。
小测A:这和熟不熟没关系,就是你没给出正确的点。
小后A:如果我都能给出全部的影响点了,那不是我自己测更好?
小测A:我又不懂你们内部逻辑,不可能知道你们的影响点。
小后A:那这个无解。
小测B:所以该怎么处理?线下拉个会碰一下吧。
产品:刚看了这个Bug还影响了不少的线上用户,需要评估一下损失,等定损级别出来之后你们叫上各自的老大一起对一下吧。
看看DeepSeek如何判案?
他们还在纠结如何定责时,我把整个文章扔给了D老师,他很快就给我划分了责任顺便还教育了一下我...
尘埃落定
对了,小前的出问题的代码段大致如下:
//dart
void main() {
String relative_id = "";
var value = int.parse(relative_id);
print('Hello world! - dart.jsrun.net ${value}');
}
几天之后,结果通报出来了。
各位看官,你们猜猜结果如何,谁会背锅?
不知道私底下他们是如何进行博弈,最后上峰拍板结果是:
小后A、小后B、小测A、小前共同扛起了这口黑锅。
看官们,你来评评理,觉得是人判得合理还是AI判得更合理?谁是无辜的?