你还在等着用户反馈BUG?

译者按: 等待用户反馈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/
时间: 2024-10-11 02:14:20

你还在等着用户反馈BUG?的相关文章

iOS:移动端“用户反馈和客服”的几个平台SDK的介绍

简单阐述: 用户反馈功能几乎是每个app都有的一个功能点,通过反馈功能实现与用户的连接.沟通,随时随地收集用户意见反馈和Bug报告,即时和用户保持沟通,在一定程度上提升了app的竞争力.而给app评分也是一个常见的功能.在目前的技术实现中,有那么几个平台SDK可供使用,分别是:网易七鱼.Bugtags.Instabug.微客服.环信客服.融云客服.阿里百川等. 平台SDK: 1.网易七鱼: 介绍: 无缝融合多渠道 在线客服.呼叫中心.客服机器人.工单系统,由表及里全面打造高效的客户服务体系. 文

记我兵荒马乱的一周(0808-0812)--用户反馈及修改点验证

夜深了,但我还不愿睡去,总觉得应该对上周那五天兵荒马乱的工作生活做个总结备忘,心里有个底,才能睡得踏实. 上周主要做了3件事,那便一个个讲起. 第一件事:测试用例的执行 在这件事上,没有出太大的问题,基本是属于回归测试和冒烟测试,因为是很成熟的产品,回归一般问题比较少,冒烟测试的话,新开发出的软件BUG很多,找起来也相对容易. 不过作为下周的常规工作之一,还是需要注意以下几点 : 1. 提升用例执行的速度,每次的用例,执行起来都会有一些不懂意思的或不知道如何执行的,或许跟其他人交流下最开始是如何

“吐个槽”产品分析体验报告:小步快跑的用户反馈

反馈模块的一个重要特征是不同类型产品的反馈模块形式比较接近,这也是吐个槽能够存在的基础.它可以以一个相对普适性的模板来服务不同需求的产品,这种思路是很好的,将一套解决方案应用于多个问题提升了利用效率,避免了重复造轮子. 此外吐个槽能够和应用.网页.公众号等完美兼容,几乎可以覆盖到所有的产品,接入方案简单,操作灵活.不过吐个槽依然有缺陷,即功能不够丰富,它可以满足用户的基本需求,但满足度不够高,依然有很大的提升空间.接下来,让我们来细细分析. 一.反馈模块概述 1. 吐个槽产品定位 吐个槽为其它应

平台建设-用户反馈跟踪模块

目标:在产品灰度或者发布后,能快速收集用户反馈信息,跟踪问题.并做每个迭代的反馈跟进,反思和追踪问题原因,如何避免等问题. 途径:爬虫获取bbs的反馈信息 以浏览器为例子: 1.技术分析,获取用户反馈爬虫用的是Jsoup,看下列关键代码: 把a标签包含所需关键字的反馈加入反馈列表,获取a标签的text和href.具体爬虫要自己看看html结构 Document doc = Jsoup.connect(url).post(); Elements ss=doc.getElementsByTag("a

友盟用户反馈自定义UI-Android

友盟用户反馈SDK是友盟为开发者提供的组件之一,用户反馈也是每款应用必不可少的模块.如果你想方便的收集用户的反馈建议,并且与发送反馈的用户进行沟通交流,那么友盟用户反馈SDK是你不错的选择,使用友盟用户反馈SDK两行代码实现开发者和用户轻松高效沟通.从友盟BBS看到许多开发者都希望通过自定义UI,来实现用户反馈功能.下面就为大家来讲解如何使用友盟用户反馈SDK来制定UI.这里以一个demo来说明. 首先上图,这是自定义的UI界面: 注:部分资源文件来源于某开源App 使用友盟用户反馈的数据接口,

Android NDK开发(八)——应用监听自身卸载,弹出用户反馈调查

转载请注明出处:http://blog.csdn.net/allen315410/article/details/42521251 监听卸载情景和原理分析 1,情景分析 在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底.这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可

Sprint 5 summary: UI 界面更新,Azure端部署和用户反馈分析 12/28/2015

本次sprint主要完成的任务有对手机APP的UI界面的更新,同时对Azure客户端的部署进行了相应的学习和有关的程序设计.同时对于ALPHA release的用户反馈做出相应的分析以确定接下来工作的重点. 工作进度: 1. UI 的界面更新和完善工作主要由兆阳负责,主要是对APP中的自动标签和浏览布局进行了相应的改进.其中大部分与Sprint2中的界面有所区别,并且对整体的APP工作性能有了一些改善.相应的改进feature有如下: 1). 个人活动分类浏览: 其中将用户的各个照片依据内容,时

【真人众测报告解读】玩家反馈BUG分析

TestBird真人众测报告加入了全新的玩家反馈BUG分析,是针对自动化兼容性测试的一个真人补充分析.这一板块由三个部分组成,它们分别是BUG严重程度分类视图.具体BUG列表.手游测试经理建议三个方面.今天我们来详细介绍着三个方面吧! BUG严重程度分类视图 为了让开发者清晰看出各类BUG的分布情况,TestBird众测报告提供了BUG严重程度分类视图.试图将BUG严重程度分为致命.严重.普通.轻微四个等级,并以圆饼图的形式呈现.简洁明了,方便开发者了解游戏的BUG概况. 具体BUG列表 了解概

android+json+php+mysql实现用户反馈功能

相信每个项目都会有用户反馈建议等功能,这个实现的方法很多,下面是我实现的方法,供大家交流.首先看具体界面,三个字段.名字,邮箱为选填,可以为空,建议不能为空.如有需要可以给我留言. 下面贴出布局代码,这里用到一个<include layout="@layout/uphead">就是把另外一个布局文件引入到这个布局中. <?xml version="1.0" encoding="utf-8"?> <LinearLayo