译者按: 等待用户反馈BUG,一切都晚了!实时监控线上应用才是王道。

原文: Why relying on your users to report errors is the dumbest thing you’ll ever do

译者: Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

我们热爱coding。

当我们coding的时候,就如同从零建造一栋大楼。新的特性、新的功能、绝佳的设计都在每一次更新后被用户所使用,期待他们的喜爱和赞美。这样的一个过程让我们感到心灵上的慰藉和拥有为数不多的成就感。

然而,现实并没有想象中美好。

如果debug是移除bug的流程,那么编程就一定是将bug放进去的流程。

软件工程师将大量时间花在了其它事情上。他们需要参加各种会议、讨论需求、制定计划、将现有的冗余代码重构,以及还有一项花费时间很多的工作:修复bug。

我还没有遇到过一位喜欢在代码中去找bug的工程师,大概因为查找和复现一个bug往往要花费很多时间。

一直以来,debug就像大海捞针一样。他们需要亲自去发现问题的原因然后寻找解法,而不是依赖于用户的截屏反馈。

用户的截屏并不能告诉你足够的信息,往往你会问更多。

你用的哪个浏览器,什么版本,操作系统是哪个,可以具体一点告诉我刚刚你是怎么操作的吗,你之前在哪个页面,你是怎么到这个页面的?

就算问了用户这么多问题,也不一定能解决问题。

Debug总是要花很多时间,然而还是一头雾水。

坐等用户反馈真的好吗?

很多开发团队依然依靠用户反馈来改进产品,这其实是很荒谬的。

在快餐连锁店,客户用餐完毕之后,需要自己将没吃完的食物和用过的餐巾纸扔到垃圾桶。快餐店的食物可能一点也不好吃,客户没吃几口就扔到垃圾桶然后直接走掉。除非客户真的是一个爱抱怨的人而且恰好有时间,才会如实评价。否则,你只会认为一个客户吃完饭满意的离开了。

然而,他再也不会来这里吃了!

一些开发者会这么认为:如果没有用户反馈问题,那就代表我们的产品棒棒哒,对不对?认为“如果用户使用产品遇到问题,用户就会反馈”是比较局限的。最终你会发现只有1%的用户会反馈问题,然而事实上多得多。

开发者依靠很有限的信息去尝试debug一个问题,往往不能解决。

你开发的软件并没有你想象的那么完美!

一个在大型线上零售店工作的朋友跟我聊过他们解决公司线上订单系统的一个重大问题的故事。他们经过好几天的排查,都没有发现问题所在。最后决定使用一个专用工具来监控和诊断应用错误。

最终的发现令人惊恐!

八个服务器中的一个内存不足然后报错,导致用户的订单流程失败。也就是说:“每八个用户中有一个收到影响”。

发现和解决这个问题使得一个月的销售额提高了2万美元。事后评估发现总共影响了5000名用户,但是只收到2个用户反馈。虽然解决了bug大家都很开心,但这个错误导致了10万美元损失。

不建议这么做:一出错就给自己发邮件报警

你可以坐在电脑面前盯着错误日志流。当你休息的时候,可以雇一个小伙伴这么做。或则,当异常出现的时候,给自己发报警邮件(貌似是个不错的主意)。直到你真的这么做了,你就不会这么想了!

你需要意识到:对于小的个人项目,一有错误就通过邮件报警还可以。但如果业务量起来了,访问量打了,事情就会变得一团糟:

  • 由于版本以及兼容性,很多错误信息不完整
  • 很难去指定一个报警规则,报警变成噪音
  • 如果一个错误刚好在循环里面,可能一晚上给你发5万封邮件
  • 错误没有优先级或则严重性区别,混在一起
  • 当你查看了超过100封邮件以后,你再也不回去读它们了

你会开始忽略这些邮件,甚至把它们归类到一个单独的文件夹然后发现无从下手而很少去碰。毕竟,从几千封邮件中找到严重的问题并解决很不容易。

ELMAH - 记录程序异常

ELMAH (Error Logging Modules and Handlers) 是一个错误记录服务。它可以动态地加入到一个ASP.NET项目中,而不需要重新编译或则重新部署。ELMAH不支持所有的程序语言,他提供的功能也有点局限。ELMAH适用于小型的个人项目。

专业BUG监控

如果你想认真对待应用BUG,可以使用一个专业的BUG监控服务,比如国外的Raygun(或则我们Fundebug)。一个专业的BUG监控服务可以帮你:

  • 通过过滤和排序来定位严重错误
  • 配置多种报警方式,比如邮件、Slack、或则HipChat
  • 使用一个监控服务来追踪多语言多平台
  • 相似错误自动聚合
  • 团队协作齐力解决BUG

如果你使用简单的方案(直接邮件报警),那么你需要停下手头的工作,花费两三个小时去复现一个bug。这是非常浪费时间,非常低效的做法!如果一个团队注重快速迭代,那么他们会愿意为开发者节省花费的debug上的时间,去开发产品的新功能、新特性。

总结

我们希望技术实现自动修复软件BUG。不过,软件自愈依然还有一段距离。你可以使用一些错误监控服务来使得整个debug更加简单和高效。

在你的用户发现问题之前发现,并且不要单纯依赖用户反馈问题!

版权声明:
转载时请注明作者Fundebug以及本文地址:
https://blog.fundebug.com/2017/08/30/rely-on-users--to-report-error-is-not-good/

你还在等着用户反馈BUG?相关推荐

  1. 【神回复】看 App 运营高手如何应对六大奇葩用户反馈!

    每天处理大量繁冗杂乱的用户反馈信息,运营人员已累觉不爱,再遇到用户的"奇葩需求",运营人员简直是要抓狂泪奔.反馈需求.吐槽产品.各种调侃.暴强评论,让人无言以对.默默流泪..... ...

  2. KOFLive Beta 下载情况及用户反馈

    KOFLive Beta版本在上周六(2011/3/5)零时正式对外发布,截止到现在(2011/3/13 10:00 pm)总共下载量是1631次,这个数据来源于以下几个站点: 我们有两个官方下载站点 ...

  3. PMCAFF问答精选 | 对于用户反馈,产品经理需要第一时间给出回应吗?

    出品|PMCAFF产品经理社区 编辑|夏然(lxr0907) 产品经理圈一直流行着用户为王.体验至上的"真理",辣么对于用户反馈,产品经理需要在第一时间给出回应吗?下面我们来听听奋 ...

  4. 从用户反馈看简书APP

    最近在系统地学习"第三节课"的产品经理课程.有一个模块是通过用户反馈发现问题,课间思考作业是以简书为例,整理简书在App store的点评情况.恰好我也是简书的用户,同时手机上也装 ...

  5. 需求分析||如何分析用户需求-以摩拜单车用户反馈为例

    分析用户需求是产品经理必不可少的一项技能,那么收到用户的反馈后,如何对需求进行优先级分类呢?最后如何建立需求池?下面以摩拜单车app点评为例,进行了比较详细的分析. 由于是之前做的分析,数据比较过时, ...

  6. “呆呆”beta版下载情况及用户反馈

    "呆呆"beta版于上周日(2011/3/6)正式发布,得到各位童鞋.群众的大力支持,我们提供了两个官方下载点, Cnblog上的下载链接:http://www.cnblogs.c ...

  7. android 用户反馈界面,如何通过用户反馈实现产品优化——以「foodie」APP为例

    用户反馈尤其是低分评价,非常需要产品方注意和甄别.通过分析用户反馈,可以更好地了解产品自身.竞品威胁以及未来的机会点等,从而帮助产品更高效地迭代.本文以「foodie」为例,阐述了如何有效搜集用户反馈 ...

  8. 听见用户的声音,爱奇艺全渠道用户反馈分析的探索与实践

    01 前言 随着互联网用户增长拐点的到来,竞争态势更多转变为博弈存量用户,做到极致的用户体验就成为其中关键.用户反馈作为用户对产品体验最直接的表达,是改善及衡量用户体验的重要输入,它具备海量.多样化的 ...

  9. App 运营 | 最美应用 CEO 马力谈处理用户反馈的那点体会

    本文作者 马力,最美应用 CEO 最美应用旗下有多个产品,包括最美应用.最美锁屏.最美壁纸.最美时光等.作为产品经理和 CEO,我每天早晨第一件事就是看数据和反馈.很多人每天用的最多的是微信.微博,对 ...

最新文章

  1. Linux/CentOS优化配置 汇总
  2. IDEA运行第一个Spring Boot应用程序
  3. 原生php实现账单功能
  4. 使用ADO.NET的参数集合来有效防止SQL注入漏洞
  5. nvidia控制面板只有3d设置?
  6. 单片机c语言取反符号怎么打,arduino取反怎么写
  7. STM8L低功耗停止看门狗
  8. 百度文库文档免费下载教程
  9. 深度学习入门-基于python的理论与实现-深度学习
  10. 机器学习教程之朴素贝叶斯、贝叶斯信念网络
  11. Seaweed-fs
  12. 关于marked数组处理
  13. Found multiple @SpringBootConfiguration annotated classes
  14. 弱口令总结(什么是弱口令)
  15. Certbot的使用
  16. python爬取京东手机数据_用scrapy爬取京东的数据
  17. 人机对话的梦想与AI智能音箱
  18. 【今日CV 计算机视觉论文速览 第94期】 4 Apr 2019
  19. 如何学习Hadoop,学习Hadoop要学什么?怎么学?
  20. K3S - 轻量级Kubernetes集群

热门文章

  1. [CSAPP笔记][第一章计算机系统漫游]
  2. android有用的知识
  3. 编译器是怎样工作的?用lex和yacc 写一个计算器(2)
  4. 前Citrix CTO认为虚拟化将解决现有的安全问题
  5. 无序列表属性 隐藏方式 JS简介
  6. nagios自定义监控API插件
  7. INDEX FULL SCAN和INDEX FAST FULL SCAN的区别
  8. Java开源搜索引擎
  9. 第三章 三层交换配置DHCP服务器
  10. 区块链的价值在于建立信任,而ICO却在摧毁信任