热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何更有效地提升对支持部门的协助与支撑?-EnhancingSupportfortheSupportDepartment:StrategiesandBestPractices

尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。

With the best will in the world, whatever software you (and me) write will have some kind of defect in it.

凭借世界上最好的意愿,无论你(和我)编写什么软件都会有一些缺陷。

What can I do, as a developer, to make things easier for the support department (first line, through to third line, and development) to diagnose, workaround and fix problems that the user encounters.

作为开发人员,我可以做些什么来使支持部门(第一行,第三行和开发)更容易诊断,解决和修复用户遇到的问题。

Notes

  • I'm expecting answers which are predominantly technical in nature, but I expect other answers to exist.
  • 我期待的答案主要是技术性的,但我希望其他答案存在。

  • "Don't release bugs in your software" is a good answer, but I know that already.
  • “不要在软件中发布错误”是一个很好的答案,但我已经知道了。

9 个解决方案

#1


5  

  • Log as much detail about the environment in which you're executing as possible (probably on startup).

    记录有关您正在执行的环境的详细信息(可能在启动时)。

  • Give exceptions meaningful names and messages. They may only appear in a stack trace, but that's still incredibly helpful.

    提供有意义的名称和消息。它们可能只出现在堆栈跟踪中,但这仍然非常有用。

  • Allocate some time to writing tools for the support team. They will almost certainly have needs beyond either your users or the developers.

    分配一些时间为支持团队编写工具。他们几乎肯定会有超出您的用户或开发人员的需求。

  • Sit with the support team for half a day to see what kind of thing they're having to do. Watch any repetitive tasks - they may not even consciously notice the repetition any more.

    与支持团队坐了半天,看看他们要做什么样的事情。观察任何重复的任务 - 他们甚至可能不会有意识地注意到重复。

  • Meet up with the support team regularly - make sure they never resent you.

    定期与支持团队会面 - 确保他们永远不会怨恨你。

#2


4  

If you have at least a part of your application running on your server, make sure you monitor logs for errors.

如果您的服务器上至少运行了一部分应用程序,请确保监视日志中是否存在错误。

When we first implemented daily script which greps for ERROR/Exception/FATAL and sends results per email, I was surprised how many issues (mostly tiny) we haven't noticed before.

当我们第一次实现每日脚本grery for ERROR / Exception / FATAL并发送每封电子邮件的结果时,我很惊讶我们之前没有注意到的许多问题(大多数是微小的)。

This will help in a way, that you notice some problems yourself before they are reported to support team.

这将有助于您在向支持团队报告之前自己发现一些问题。

#3


4  

Technical features:

  • In the error dialogue for a desktop app, include a clickable button that opens up and email, and attaches the stacktrace, and log, including system properties.
  • 在桌面应用程序的错误对话框中,包括一个可打开和发送电子邮件的可单击按钮,并附加堆栈跟踪和日志,包括系统属性。

  • On an error screen in a webapp, report a timestamp including nano-seconds and error code, pid, etc so server logs can be searched.
  • 在webapp的错误屏幕上,报告包含纳秒和错误代码,pid等的时间戳,以便可以搜索服务器日志。

  • Allow log levels to be dynamically changed at runtime. Having to restart your server to do this is a pain.
  • 允许在运行时动态更改日志级别。必须重新启动服务器才能做到这一点很痛苦。

  • Log as much detail about the environment in which you're executing as possible (probably on startup).
  • 记录有关您正在执行的环境的详细信息(可能在启动时)。

Non-technical:

  • Provide a known issues section in your documentation. If this is a web page, then this correspond to a triaged bug list from your bug tracker.
  • 在文档中提供已知问题部分。如果这是一个网页,那么这对应于来自您的错误跟踪器的分类错误列表。

  • Depending on your audience, expose some kind of interface to your issue tracking.
  • 根据您的受众群体,为您的问题跟踪提供某种界面。

  • Again, depending on audience, provide some forum for the users to help each other.
  • 再次,根据受众,提供一些论坛,供用户互相帮助。

  • Usability solves problems before they are a problem. Sensible, non-scary error messages often allow a user to find the solution to their own problem.
  • 可用性在出现问题之前解决问题。明智的,非可怕的错误消息通常允许用户找到他们自己的问题的解决方案。

Process:

  • watch your logs. For a server side product, regular reviews of logs will be a good early warning sign for impending trouble. Make sure support knows when you think there is trouble ahead.
  • 看你的日志。对于服务器端产品,定期检查日志将是即将发生问题的良好预警信号。确保支持知道您认为未来出现问题的时间。

  • allow time to write tools for the support department. These may start off as debugging tools for devs, become a window onto the internal state of the app for support, and even become power tools for future releases.
  • 留出时间为支持部门编写工具。这些可以作为开发人员的调试工具开始,成为应用程序内部状态的窗口以获得支持,甚至成为未来版本的电动工具。

  • allow some time for devs to spend with the support team; listening to customers on a support call, go out on site, etc. Make sure that the devs are not allowed to promise anything. Debrief the dev after doing this - there maybe feature ideas there.
  • 允许开发人员花一些时间与支持团队一起度过;在支持电话上听客户,在现场外出等。确保开发者不被允许承诺任何事情。在做完这个之后汇报开发者 - 那里可能有一些特色。

  • where appropriate provide user training. An impedence mismatch can cause the user to perceive problems with the software, rather than the user's mental model of the software.
  • 适当时提供用户培训。阻抗不匹配可能导致用户感知软件问题,而不是用户的软件心理模型。

#4


2  

Make sure your application can be deployed with automatic updates. One of the headaches of a support group is upgrading customers to the latest and greatest so that they can take advantage of bug fixes, new features, etc. If the upgrade process is seamless, stress can be relieved from the support group.

确保可以使用自动更新部署您的应用程序。支持小组的一个令人头疼的问题是将客户升级到最新和最好,以便他们可以利用错误修复,新功能等。如果升级过程是无缝的,那么可以从支持小组中解除压力。

#5


1  

Similar to a combination of jamesh's answers, we do this for web apps

与jamesh的答案组合类似,我们为Web应用程序执行此操作

  • Supply a "report a bug" link so that users can report bugs even when they don't generate error screens.
  • 提供“报告错误”链接,以便用户即使在不生成错误屏幕时也可以报告错误。

  • That link opens up a small dialog which in turn submits via Ajax to a processor on the server.
  • 该链接打开一个小对话框,然后通过Ajax提交给服务器上的处理器。

  • The processor associates the submission to the script being reported on and its PID, so that we can find the right log files (we organize ours by script/pid), and then sends e-mail to our bug tracking system.
  • 处理器将提交与报告的脚本及其PID相关联,以便我们可以找到正确的日志文件(我们通过脚本/ pid组织我们的文件),然后将电子邮件发送到我们的错误跟踪系统。

#6


1  

Provide a know issues document Give training on the application so they know how it should work Provide simple concise log lines that they will understand or create error codes with a corresponding document that describes the error

提供已知问题文档提供有关应用程序的培训,以便他们知道应该如何工作提供他们将理解的简单简洁日志行或使用描述错误的相应文档创建错误代码

#7


1  

Some thoughts:

  • Do your best to validate user input immediately.
  • 尽力立即验证用户输入。

  • Check for errors or exceptions as early and as often as possible. It's easier to trace and fix a problem just after it occurs, before it generates "ricochet" effects.
  • 尽可能早地检查错误或异常。在问题发生之前,在它产生“弹跳”效果之前,更容易跟踪和修复问题。

  • Whenever possible, describe how to correct the problem in your error message. The user isn't interested in what went wrong, only how to continue working:

    尽可能描述如何更正错误消息中的问题。用户对出了什么问题不感兴趣,只对如何继续工作感兴趣:

    BAD: Floating-point exception in vogon.c, line 42
    BETTER: Please enter a dollar amount greater than 0.

    BAD:vogon.c中的浮点异常,第42行更好:请输入大于0的美元金额。

  • If you can't suggest a correction for the problem, tell the user what to do (or not to do) before calling tech support, such as: "Click Help->About to find the version/license number," or "Please leave this error message on the screen."
  • 如果您无法建议更正问题,请在致电技术支持之前告知用户该做什么(或不做),例如:“单击帮助 - >关于查找版本/许可证号”或“请在屏幕上留下此错误消息。“

  • Talk to your support staff. Ask about common problems and pet peeves. Have them answer this question!
  • 与您的支持人员交谈。询问常见问题和烦恼。让他们回答这个问题!

  • If you have a web site with a support section, provide a hyperlink or URL in the error message.
  • 如果您的网站包含支持部分,请在错误消息中提供超链接或URL。

  • Indicate whether the error is due to a temporary or permanent condition, so the user will know whether to try again.
  • 指示错误是由临时或永久条件引起的,因此用户将知道是否再次尝试。

  • Put your cell phone number in every error message, and identify yourself as the developer.
  • 将您的手机号码放在每条错误消息中,并将自己标识为开发人员。

Ok, the last item probably isn't practical, but wouldn't it encourage better coding practices?

好吧,最后一项可能不实用,但它不会鼓励更好的编码实践吗?

#8


1  

  • Provide a mechanism for capturing what the user was doing when the problem happened, a logging or tracing capability that can help provide you and your colleagues with data (what exception was thrown, stack traces, program state, what the user had been doing, etc.) so that you can recreate the issue.

    提供一种机制,用于捕获用户在问题发生时正在执行的操作,日志记录或跟踪功能,可以帮助您和您的同事提供数据(抛出的异常,堆栈跟踪,程序状态,用户一直在做什么等等。)以便您可以重新创建问题。

  • If you don't already incorporate developer automated testing in your product development, consider doing so.

    如果您尚未在产品开发中加入开发人员自动化测试,请考虑这样做。

#9


1  

Have a mindset for improving things. Whenever you fix something, ask:

有改善事物的心态。每当你修理一下,问:

  • How can I avoid a similar problem in the future?
  • 如何在将来避免类似的问题?

Then try to find a way of solving that problem.

然后尝试找到解决该问题的方法。


推荐阅读
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • PHP网站日志深度解析与数据洞察分析
    通过对PHP网站日志进行深入解析与数据洞察分析,可以有效提升网站性能和用户体验。由于网站日志数据量庞大,通常需要借助专业的日志分析工具来处理。常用的工具包括光年日志分析工具和WebLog Expert等,这些工具能够帮助技术人员快速识别并解决网站运行中的各种问题,从而优化SEO效果和提升整体运营效率。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
  • 《精通 jQuery》第六章:深入解析与实战应用
    《精通 jQuery》第六章:深入解析与实战应用本章详细探讨了 Ajax 技术的核心机制及其实际应用。Ajax 通过 XMLHttpRequest 对象实现客户端与服务器之间的异步数据交换,从而在不重新加载整个页面的情况下更新部分内容。这种技术不仅提升了用户体验,还提高了应用的响应速度和效率。此外,本章还介绍了如何利用 jQuery 简化 Ajax 操作,并提供了多个实战案例,帮助读者更好地理解和掌握这一重要技术。 ... [详细]
  • 在软件开发领域,“池”技术被广泛应用,如数据库连接池、线程池等。本文重点探讨Java中的线程池ThreadPoolExecutor,通过详细解析其内部机制,帮助开发者理解如何高效利用线程池管理任务执行。线程池不仅能够显著减少系统资源的消耗,提高响应速度,还能通过合理的配置,如饱和策略,确保在高负载情况下系统的稳定性和可靠性。文章还将结合实际案例,展示线程池在不同应用场景下的具体实现与优化技巧。 ... [详细]
  • 在MFC开发过程中,利用Windows内置的文件对话框可以显著提高文件操作的效率。本文总结了使用文件对话框进行文件选择和处理的经验,详细介绍了相关API的调用方法和参数设置,如`CFileDialog`类的使用、结构体`OPENFILENAME`的配置以及如何获取选中的文件路径。通过这些技巧,开发者可以快速实现文件的打开、保存等功能,提升应用程序的用户体验。 ... [详细]
author-avatar
手机用户2502906377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有