热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

一次“背锅”和“解锅”后的反思

中秋过的真快,还没体会到就到最后一天了。今天在图书馆,突然想写篇与技术无关的,但是我们工作中经常发生的事情。本来不想写这种类型的文章,怕这种文章降低自己形象显得太low。但是一来想

  中秋过的真快,还没体会到就到最后一天了。今天在图书馆,突然想写篇与技术无关的,但是我们工作中经常发生的事情。本来不想写这种类型的文章,怕这种文章降低自己形象显得太low。但是一来想锻炼下自己的文笔叙事能力,越怕这怕那越不敢动笔,越不动笔越没长进,总要开个头来个正向刺激循环;二来相比技术类型的文章,故事类型的文章应该更受大家待见观看;三来这种工作中常见的“甩锅”事件值得大家探讨评论一下,碰撞的火花下交换解决思路,或许以后再碰到类似的事情,能够更迅速完美的解决。

  故事是这样的,昨天周六,突然有客户反馈了一个问题过来,说公司产品有个业务操作展示错乱了,下一步操作无法执行。问题很快反馈到我们研发大群来了,由于前一天刚好产品迭代了一个版本,负责人是后端的一位小Leader,于是这个问题先由后端的这个同事接了。这个同事看了下接口返回数据,没看出什么问题,马上判定说是前端这边的问题,怀疑是前端这边进行了逻辑修改,要前端去定位原因。

  由于前端部门老大回老家了,这个任务就落到我头上了。客户发现的问题,还是这么明显的操作,我们竟然没有自查出来,测试也没测出来,那问题就严重了。我也不敢怠慢,顾不得去玩了,赶紧回家连上公司电脑查原因。先查这块逻辑最近git记录,没有发现明显的更改逻辑;然后又切换了四个月前的一个代码分支看效果,发现效果和如今一样。因此我判断,应该不是前端这边的问题,是后端返回的数据出问题了。但是是哪块的数据出问题了,由于这块业务比较复杂,代码很多,我一时也找不出来。于是先把我的判断观点抛到群里,建议后端同事去自查下代码,最近有没有对这块逻辑进行更改。

  这个后端同事真是对自己太自信了,说后端返回的数据没有看出什么问题,绝逼是前端的问题,让前端去自查代码定位原因!尼玛,这话我有点不爱听了,这是合作互赢的态度吗?但是由于我一时拿不出有力的证据来反驳,只好不和他继续讨论了,先妥协了去看代码。由于他有我们前端代码的权限,然后受我那个判断观点启发,于是他切了前端五个月前的分支代码来看效果。其实他在进行这步操作的时候,我也在进行这个操作,发现五个月前的代码竟然展示正常!这什么操作?我一时没整明白了!

  这时他已经把他的“重大发现”赶紧发群里了,四个月前和今天的代码显示不正常,而五个月前的代码显示正常,是不是表示前端在四个月前就已经制造出了这个bug,这么长的过程前端同事都没发现,测试部门同事也没发现!

  这个锅就大了,难道我们前端都是干饭的?我赶紧冷静了一下,梳理了下逻辑,回忆了下四个月前的那次版本迭代,是在那个版本中对这个逻辑进行了大修改和功能增加。那个功能刚好是我负责更改的,因此印象还是很深刻。我对自己写的东西还是很有信心的,另外我对当时负责测试的那个同事的业务能力也很有信心。这么明显的bug,首先我不可能自查不出来;其次就算我没自查出来,不可能测试同事也没测出来;再次退一万步讲,就算测试同事当时没有测出来,不可能四五个月的时间过去了,产品、开发、测试、运营还有客户这么频繁的使用还没发现这个问题。

  但是那位后端同事,就抓住这个点不放了,坚持质疑为什么五个月前的代码可以正常显示和操作,而现在却不正常了?我一时说不出个所以然来,只好提议后端能不能部署一个四个月前的分支测试环境,让我对比下数据,快速定位问题。后端同事听不进去,坚持是前端的问题,说后端返回的数据看起来没有问题,没必要部署以前的后端代码,这个问题只需要前端去查看自己的代码,就能解决。

  我有点生气了,大家都意识到问题的严重性了,都想快速把问题解决掉。但是你这么自信,这么坚持自己,是国共合作团结一心共同抗日该有的态度么?既然说服不了他,只能我妥协了,去看代码。网络突然卡起来了,然后自己笔记本屏幕有点小,远程看代码看的有点眼花,干脆直接去公司了。还是公司的双屏幕好,马上就看出返回的数据中有个地方异常了,我手动改了下,然后效果就显示正常了。应该就是这个原因了,我赶紧截图单独发给这个后端同事,让他去查下这个数据为什么异常了。

  但是这个同事真的真的是对自己的判断太自信了,不认同我这个说法,坚持为什么五个月前的代码可以正常显示,为什么现在却不正常了,硬抓住这个点不放,要我去看前端代码解决这个问题。这感觉就是有点顽固了,平时感觉这小伙挺好打交道的,怎么突然这样呢?我只好说,那我们同时进行,我去查我这边的代码,你去查你那边的代码,等下我会给你答复旧版本正常新版本异常的问题。他回了句:不太可能是后端问题,但是我可以去看下。我去,你对自己写的功能有自信,难道我对自己写的功能就没自信了吗?过了一会,他说他也在来公司的路上了。

  我决定要拿出有力的答复来狠狠的打他的脸,开始认真过一遍代码再梳理些已经被遗忘的逻辑。代码太多了,看得我头晕脑胀,不过好歹整理出思路了,但是一时不知道怎么组织语言表达出来。然后我突然惊喜的发现了自己电脑里保存了一条以前的旧数据,打开一看,果然印证了我之前的猜测,是新数据异常造成了这个现象。这时候他也来公司了,我叫他赶紧过来看,一时不知道怎么形象准确的表达,所以我请他看我的操作。但是他一直在那说为什么旧版本正常,而新版本不正常,说了好几次。我生气了,沉了脸说:你能不能先看下我这个操作。他这才停下来看我如何操作。没想到我在操作的过程中,突然知道怎么组织话语,把新旧版本不同表现的原因说出来了。

  他这才稍微认可我的说法,又说,为什么如今你们对我们的数据格式这么依赖。我说,你看看这个效果图,你的数据有返回我们马上就能用的数据吗?新加的功能让我不得不根据目前的数据格式进行遍历提取我们需要的数据。他又说,这是当初你们老大和我定下来的数据格式..... 然后他就回他座位找问题去了。 等了好一阵子,我去问他,找到原因了吗?他说已经改好通知运维发预发布了,一行代码引发的血案。

  我这才松了一口气,这个问题终于解决了。但是,既然已经改好了怎么不通知我一下,害我在那等那么久,那没什么事我先回家了.......

  可能是当时没反应过来,回来后我才在反思今天发生的这个事。这个后端同事今天表现出来的自信和质疑,让我一度很生气,但是在找到最后的原因后,我为什么不去打击一下他那嚣张的气焰,为什么我最后的表现竟然是”松了一口气“,玛尼这不是有点犯贱吗?为什么明明是我这边的道理,怎么感觉好像一直像是我这边的问题,怎么一直是我这边在妥协?如果他不要那么自负,早一点去自查代码,这个问题不是很快就解决了,何须我这边去忙活半天。我后面为什么不去质疑他这么重要的功能是能随便改动的吗?代码的严谨性呢?后端那边经常说代码审查代码审查,这是怎么审查的?代码改动了,没有去考虑相关的功能影响吗?没有去通知相关的人去进行测试? ......

  以上的质疑算是我自己一时的意淫,真要去做了以后大家都这么干,那工作氛围得成什么样?再说人哪有不犯错的,以我目前这表达能力,万一哪次犯错了被人揪住小辫子那不得给踩死。但是该有的说法是不是还得说出来,一来大家都是为了公事,为了把事情做好,没有私人恩怨;二来不想自己在别人的印象中是一个软蛋,可以随便捏拿,得有一些菱角,大家和平共处,一起把事情做好。凭心而论,我们公司研发都还是比较单纯的,很少有因为推脱工作责任而互相推诿互相攻击的,大家互相协作互相配合,工作氛围还是不错的。但是我身边的一些同学朋友的公司,里面的工作氛围真是不可描述啊,我有时听了他们的描述,感觉这甩锅真是甩出了新高度,某些人身上自带攻击性,说话句句带刺,心理有点不正常啊,这种环境下真不知道这些小伙是怎么坚持下来的!

  总结一下就是:工作中,我首先表示我的和平处理态度,互相尊重,互相协作;但是如果你一味的甩锅,和打压我,那我也要亮出我的獠牙来。另外这个表达能力真得好好的提升下,一段准确形象的表达可以节省多少口舌;再厉害一点的表达能力,应该是既能把意思表达清楚,又能使人心悦诚服的接受。

  还有什么呢?

  



推荐阅读
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 从Oracle安全移植到国产达梦数据库的DBA实践与攻略
    随着我国对信息安全和自主可控技术的重视,国产数据库在党政机关、军队和大型央企等行业中得到了快速应用。本文介绍了如何降低从Oracle到国产达梦数据库的技术门槛,保障用户现有业务系统投资。具体包括分析待移植系统、确定移植对象、数据迁移、PL/SQL移植、校验移植结果以及应用系统的测试和优化等步骤。同时提供了移植攻略,包括待移植系统分析和准备移植环境的方法。通过本文的实践与攻略,DBA可以更好地完成Oracle安全移植到国产达梦数据库的工作。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 职业道路的选择与建议
    职业道路的选择与建议2010-09-2621:31:53标签:职业感悟建议   [推送到技术圈]版权声明:原创作品,允许转载, ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 弹性云服务器ECS弹性云服务器(ElasticCloudServer)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境 ... [详细]
author-avatar
jac
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有