前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第六十四期:我们为什么做不到"零BUG"上线

第六十四期:我们为什么做不到"零BUG"上线

作者头像
terrence386
发布2022-07-15 10:39:38
2270
发布2022-07-15 10:39:38
举报
文章被收录于专栏:JavaScript高级程序设计

为什么我们做不到零Bug上线

之所以会思考这个问题,倒不是因为这两次上线遇到了Bug,也不是因为上线导致下班的时间比较晚。

而是因为不知道从什么时候开始,我似乎已经把零Bug上线变成了我自己的一个目标。但是即便在开发过程中把能够想到的问题提前沟通好,代码里写好判断,留出缓冲余地。有时候即便测试环境通过测试,但是一旦发布到生成环境,进行验收的时候还是会出现意想不到的问题。

所以最近这几天我一直在思考这个问题,到底是什么原因导致我们没办法做到零BUG上线?

回想一下过往的上线经历,或许可以找到一些答案。

去年入职的公司,版本1.0第一次上线,前端部分已经通过测试,发布到生产环境,只等后端发布生产环境,线上验证下流程即可完成发布工作,但是后端部分迟迟无法发布,导致一直忙到后半夜也没有完成上线工作,最后排查出来原因是因为,后端新入职的员工分支合并错误导致的无法上线。

还有一次,小程序已经按照需求文档开发完成,但是提交审核时,迟迟无法通过审核。原因是产品经理提供的原型PRD流程不符合小程的登录流程,于是又临时商定修改登录流程,给用户开放出体验界面,又折腾大半夜...

一来二去,发现每次上线都会遇到各种各样的问题。于是TL找了个时间约大家一起开了个会,分享一下各自在开发以及上线过程中的问题。记得大家当时提出了很多问题,大概有这么几个:

  • 重视程度低
  • 缺少环境(nginx之类)
  • 产品经理对需求细节讲的不透彻
  • 产品经理临时加的紧急需求
  • 后端接口数据格式不符合要求
  • 测试人员测试覆盖率低
  • 个人技术能力无法完成对应需求
  • 设计人员给UI时间比较晚
  • 开发及上线流程问题
  • 历史遗留Bug
  • 等等

看一看上面显示的问题,现在回想起来,好像大家(包括我自己在内)都只发现了别人的问题,产品经理临时加需求了,PRD描述不清楚了,设计稿出的太慢了,接口给的不规范了,历史遗留问题了,总之在当时基本上没有人站出来说一句,这个问题是因为我个人的疏忽导致的。也或许是其实大家已经发现了这个问题是自己的问题,但是就是没有人愿意承认。

导致我们没办法零BUG上线的原因有很多。

比如客观原因有,现在的项目基本上都是采用的前后端分离的模式进行开发,即便前端发布到线上验证后没有问题,也并不能保证后端服务发布到线上也没有问题;反之,后端服务发布到线上,也没法保证前端在线上环境不出问题。即便前后端线上验证后都没有问题,也不能保证项目整体依赖的环境不出问题,比如云服务挂了,遭到恶意攻击等等。

又比如团队的人员构成问题。新加入的成员无法理解原有的代码逻辑,修改代码后导致出现新的问题。有些人即便看到问题但是忙于其他的事情,没有及时反馈进行修改。

还有第三方依赖的问题。某些功能依赖于第三方服务,但是上线的时候才发现第三方的服务无法满足现有需求,于是又临时改方案,重新进行开发。

其实,上面说了这么多,归根结底都是一个问题,什么问题呢?人的问题!其实也是自身的问题。

为什么这么说呢?

产品经理临时加需求,我们可以跟他沟通具体排期时间啊;PRD描述不清楚,我们就一遍一遍的去沟通啊;设计稿出的慢,我们可以先做依赖设计稿比较少的部分啊;测试人员测试覆盖率低,我们可以自测啊;针对历史遗留问题,我们提前安排解决时间呗,为什么要留着这些问题呢?

其实仔细思考一下,我们做不到零BUG上线,归根结底还是因为我们并没有真正的理解需求,没有认真的去思考一些问题,没有以一个认真的态度去对待身边的人和事儿。

当然,这其中也涉及到一些难以明言的问题,比如团队氛围,团队成员差异,每个人都是一个独立的个体,没办法保证团队里所有的人想法都是一致的,或者我们所在的团队真的可以称之为【团队】,这些东西很难去描述出来,只能自己去思考,去体会。

但是有一点可以肯定的是,假如我们从自身做起,真正的静下心,沉淀下来,按照自己的目标去做些事情。积极的沟通需求,沟通解决方案,在开发过程中做好代码的容错,把握好业务的流程和细节。即便我们做不到零BUG上线,在上线后发现问题,解决问题的时间也可以大大缩短,甚至我们真的可以做到真正的【零BUG上线】,上线->通过验收->无其他问题。

但现实往往是我们对自己的要求太低了。程序能用就行了,管它界面丑不丑呢?管它一个请求花多长时间呢?复杂的部分让别人去做吧,我挑个简单的写写;我是小组组长,任务给你们分一下就行了,我就看着你们写;产品经理出的什么文档啊,这么辣鸡;后端写的什么接口啊,字段还用拼音,也是醉了;

表面上看,都是别人的问题,似乎跟自己一点关系都没有?但是真的没有关系吗,其实未必。

其实对于零BUG上线的理解有两层意思。第一层是代码通过了测试团队的测试,在正式发布前没有BUG。第二层意思是发布到生产环境后通过验收,没有其他的问题。

新的一年,希望大家都能【零BUG上线】,都能实现自己的理想。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaScript高级程序设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档