热门标签 | 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.

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


推荐阅读
  • 本文介绍了在CentOS 6.4系统中安装MySQL 5.5.37时遇到的启动失败和PID文件问题,并提供了详细的解决方案,包括日志分析、权限检查等步骤。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 掌握Mosek矩阵运算,轻松应对优化挑战
    本篇文章继续深入探讨Mosek学习笔记系列,特别是矩阵运算部分,这对于优化问题的解决至关重要。通过本文,您将了解到如何高效地使用Mosek进行矩阵初始化、线性代数运算及约束域的设定。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文介绍百度AI Studio这一集成开发平台,涵盖丰富的AI教程、经典数据集及云端计算资源。通过具体示例——在AI Studio上构建线性回归项目,帮助初学者快速掌握其核心功能与操作方法。 ... [详细]
  • Logback使用小结
    1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文档详细介绍了在 Kubernetes 集群中部署 ETCD 数据库的过程,包括实验环境的准备、ETCD 证书的生成及配置、以及集群的启动与健康检查等关键步骤。 ... [详细]
  • 本文档详细介绍了思科交换机的基本配置命令,包括进入特权模式、配置交换机名称及密码、VLAN配置、端口访问、查看配置信息、恢复出厂设置以及远程登录设置等。 ... [详细]
  • Android中解析XML文件的实践指南
    本文详细介绍了在Android应用开发中解析XML文件的方法,包括从本地文件和网络资源获取XML文件的不同途径,以及使用DOM、SAX和PULL三种解析方式的具体实现。 ... [详细]
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社区 版权所有