这个问题部分是哲学性的,部分是应用的,所以不要对我评价太高:) 我认为我们大多数人已经或计划在我们的实践中发布我们自己生产的产品。这是指可以编写的所有内容,无论是某物或网站的后端,移动设备的应用程序还是桌面解决方案。由于我主要(你可以在我的问答中看到这个话题的流行)为Android做移动开发,所以我的判断会接近这个行业,但我们每个人都能理解我对这个领域的推理他的作品。
所以,让我们假设一个程序员(例如,我)正在锯他的应用程序(程序)。锯开又长又硬,在这个过程中暴露出数以万亿计的虫子和侧柱。错误被修复,拐杖被发明。现在你已经到了将你的作品发布到世界上的地步,到目前为止只用于内部测试。例如,在 Google Play 控制台中有封闭测试之类的东西。一切都已布置好,您正在等待反馈。例如,在编写程序的过程中,我连接了各种捕获错误的解决方案:一开始是这样,Fabric.io在项目顺利进行后Firebase,我连接了Firebase. 我想大多数人都知道这个服务的魅力,但是,我还是允许自己再写一遍,这个服务连接到项目,并允许您接收有关应用程序运行期间发生的错误的数据。该服务已连接,一切运行稳定。您收到错误,修复它并发布更新。如果不是为了一件事,该方案似乎是简单易懂的。在测试过程中,每个人的行为都不同,因此并不总是以相同的方式行事。而且我认为有些情况下应用程序崩溃了,你得到一个错误,但在你的测试过程中,一切都在这个位置还可以。现在实际上是问题的本质 - 如何理解用户正在做什么,应用程序正在稳步下降。毕竟程序员和用户的思维方式不同(无意冒犯用户)。是的,你可以直接行动——一个错误出现了,修复它并发布了它。但是,如果你修复了你认为正确的东西,但最终没有得到修复。当用户收到错误时如何捕捉这些条件?也许有一些解决这个问题的方法?
让我们每个人绕过错误,只有正确的代码伴随:)
至于崩溃,它只是修复和修复,修复已经修复并修复了两次和三次......如果用户以某种方式不按照你的逻辑按下某些东西并且应用程序崩溃并出现错误,那么只有你应该受到责备,只有一个解决方案 - 修复。应用程序不应该崩溃,以便用户不执行或单击应用程序(我不考虑硬件问题和固件差异)。
如何跟踪用户在出发前做了什么?使用事件(例如,在同一个 Firebase 中)。用事件覆盖应用程序(实际上是用日志),结果,您本身将获得出色的统计数据,并且在崩溃的情况下,您可以跟踪用户操作链。
稍微偏离主题,但我认为这是一个有趣的问题:)
答案很简单:不可能!
但是您可以猜测用户将如何使用应用程序以及在应用程序内进行操作。经验会对此有所帮助(您自己的或其他人的(后者在大多数情况下是为了钱))。不,这不是开发体验,也不是自己使用程序的体验,假装自己是一个愚蠢的、完全不合逻辑的用户(它不会起作用,我试过了)。这是对用户(即很多)需要什么、他们将如何行动以及在程序中看到什么的某种理解(他们的愿景与我们开发人员所看到的非常不同(例如,我们看图看一件事,他们看到了完全不同的东西,而这个“其他”的选项数量巨大,无法解释))。
你在哪里可以获得这种经验?在这里,您将主要帮助与用户进行交互。他们的各种评论,反馈(当他们给你的邮件写愤怒的信时,他们说“这东西不像我想的那样工作”),各种问卷调查(很少见,但它可以让你很好确定用户需要什么、他们喜欢什么、有什么问题等等)等等。
另一个不错的选择是聚集与编程无关且不太精通计算机/智能手机的朋友(取决于程序的目标受众)。让他们使用你的程序。这时候,你看他们,他们不会明白什么,等等。你甚至可以自己写下来,做笔记。但不要告诉他们,否则实验不会成功。请记住,普通用户 - 如果他不理解某些内容,那么在下一分钟他很可能会关闭并删除该应用程序。