后台一个读者找我吐槽了一件事,因为产品上线后的问题,自己无辜背了个大锅,觉得很不爽。

事情是这样的。

他们开发的一款产品经过测试后上线了,Android 和 iOS 版本同步在应用市场发布。本以为万事大吉,没想到出 bug 了。

说是 bug,也谈不上。因为并不是技术原因导致的功能异常或逻辑错误,而是一个原本应该从后台动态获取图片的页面变成了全是本地静态图片。

我说得再简单一点,就是他们的商品列表原本应该每一行展示不同的商品图片,现在变成了全展示一样的图片。

发现问题后,前端程序员立马查了查代码,发现这个图片并不是通过接口从服务器获取的,而是直接加载的一张本地图片。

导致的结果,就是商品列表根本看不到真实商品的图片,即便接口能正常返回图片地址,前端也没有解析。

这就麻烦了,因为前端都是 App,而 App 的更新必须要打包发布新版本且用户更新后才能解决这个问题。

先不说谁的锅,为了快速搞定这个问题,他们采取了两个行动。

第一,修改前端代码,将原来加载本地图片的逻辑改为从数据接口中读取图片资源并展示。修改完成并测试后,立马加急提交应用市场审核。

第二,为了覆盖已发布的版本,他们在后台开启了强制更新策略。即只要用户打开 App 就会出现一个弹窗并提醒用户只能更新到最新版才能使用。

这种强制更新策略一般是不建议使用的,因为用户体验不好。但遇到这种情况,也只能这样。

事后他们开会复盘这件事,追责具体是什么原因导致了这次事故,是技术不仔细、还是测试没认真、或是产品定义不清楚。

在还原整个事情经过后发现,上线前之所以没发现这个问题,是因为在测试服务器上就只放了这一张默认图片,而开发在写前端页面的时候就直接把图片复制到本地并把加载链接写死了。

测试在准备测试数据的时候,在后台上传的也同样是这张默认图片,并且其他数据都做了区分,唯独就是嫌麻烦没有多准备几张图片。

当大家都以为是测试数据时,雷就埋下了。

而查看产品经理提交的 PRD 时,里面也没有特别写明这张图片需要从后台接口中获取,只是描述了功能属性。

最后领导在判责的时候,认为是产品经理在需求确认、开发跟进、最终验收环节不到位导致了问题的出现。说白了,这个锅产品背。

这哥们儿自然觉得很委屈,谁都知道这种图片都是要动态获取的,明明是前端开发写死了,为啥还要自己背锅?

结果领导给了一句话,「你是产品负责人,产品不背锅,谁背?」。

说实话,我觉得这事儿对产品经理有点不公平。

如果纯粹从微观层面来看问题责任人,我认为应该是开发。毕竟,代码写死这种操作是绝对禁止的。

可从宏观层面看,产品经理既然是产品的最终负责人,这个责任也得担着。谁让产品成功时大家只知道产品经理是谁,而不知道具体是哪个开发、哪个测试呢。

有句话说得好,欲戴皇冠必承其重。

其实类似的问题在日常产品开发中有很多,大多是因为需求不够细致导致的前端写死,有的是文案没法改、有的是逻辑没法改、有的是数据没法改。

所谓的写死,就是把一些原本应该从后台服务器动态获取的信息以固定的方式写在了前端代码中,然后随着安装包一起发布。

要避免这类问题,首先就是要在需求环节做好明确定义,并体现在 PRD 中。

这里提供一个小建议,但凡涉及到数据展示、逻辑控制、文案显示的地方,产品经理都可以在 PRD 中列一个表做特殊标注,哪些是静态数据、哪些是动态数据、哪些是固定逻辑、哪些是可变逻辑,一目了然。

这么一来,产品需求很明确、开发也很清楚、测试也不迷糊,出问题的概率就会小很多。

此外,对于不懂技术的产品经理,有空也可以学一些简单的技术知识,这能帮你们更好的理解前后端技术原理以及功能背后的实现机制。

说起技术,很多人一上来就会问要不要学编程,要不要自己能上手写代码。其实我之前说过,技术能力和技术思维是有区别的。

对于绝大多数产品经理来说,掌握技术思维就够了,而上手干活儿的技术能力那是人家专业的人该干的事儿。

所谓技术思维,就是明白基础技术原理、了解内在工作方式、熟悉软件产品的整体结构等,目的是为了能让你更好的判断需求、处理问题、完成沟通。

对于实际工作来说,建议可以从先了解前端技术开始,因为这块跟平常工作结合比较紧密,相对后端技术的复杂性来说也好理解一些。

这里有一份关于前端技术学习的资料,比较适合技术入门的小白。包括 HTML 入门、CSS、以及简单的 JavaScript。

打开网易新闻 查看更多图片

这份资料包是免费给你们的,你可以通过它快速验证自己是否适合学前端,并且快速认识和了解前端的三大核心技术:HTML、CSS和JavaScript。

同时,你还会学到新手小白的第一个真实可上线的实战项目,更重要的是掌握前端项目从开发到发布上线的完整流程,帮你补充一些技术知识。

如果你已经熟练掌握 HTML、CSS 等基础知识的话,也可以尝试 JavaScript 高级篇来进阶,课程包含 JavaScript 设计模式、数据类型、浏览器底层原理等学习内容。

小白建议不要直接尝试高级篇内容,比较烧脑,可以先从基础知识开始了解。

对了,如果你们对如何与程序员高效沟通的话题感兴趣,下次我可以安排一篇文章和你们聊聊。

希望对你们有所帮助。

·················唐韧出品·················

安可时刻

昨天发生了一件很神奇的事,我在微信上给好友发送那份教育监管的PDF文件时,我这边显示发送成功了,但对方就是没收到。

经过多人的测试,可复现。可以肯定,微信屏蔽了那份文件的原始ID,但这个体验是做的真不好。

今天,与64816位读者一起见证彼此成长

后台回复“w”,可加我个人微信