在团队内部,经常需要有人解答和排查系统问题。文章探讨了两种常见的支持模式:一是每人(或几人)负责特定系统,出现问题直接找对应负责人,优点是熟悉度高,缺点是可能出现单点故障且影响个人时间;二是每周轮流安排人员Oncall,需要组内成员对多系统有基本认知和文档支持,优点是分担压力、保证响应及时、非Oncall人员可专注开发,缺点是初期学习成本较高。作者邀请大家讨论哪种模式更优,或提出其他解决方案。
💡 **专人负责模式**:由特定人员负责一到多个系统,优点在于该人员对负责的系统有深入了解,能快速定位问题。然而,这种模式也可能导致“单点故障”,一旦该人员缺席,系统支持将面临困难,并且容易在非工作时间被问题打扰,影响个人工作安排。
🗓️ **轮值Oncall模式**:每周安排特定人员负责处理所有系统的问题,优点在于能够分担支持压力,确保用户的问题能得到及时响应。这种模式要求组内成员对负责的业务领域有基本认知,并依赖于完善的设计文档和使用文档。非Oncall人员可以更专注地进行开发或其他工作,避免频繁被打断。
🤝 **最佳实践与融合**:文章指出,轮值Oncall模式的优势在于保证响应的及时性和分担工作量,同时促进团队成员对整体业务的理解。为了克服其初期学习成本,需要建立良好的文档体系和知识分享机制。可能更优的方案是结合两种模式的优点,例如在Oncall期间,由Oncall人员负责初步排查,复杂问题再转交给特定系统的负责人,形成协作支持网络。
在组内, 经常会有各种系统需要帮忙解答, 排查问题, 问题查看等等, 大家的公司是如何安排人员去做这些事情的呢?
- 是每人(几人)负责一个(几个)系统, 这几个系统出现问题都找这个人去解决?
对于这种安排, 每人都仅需要熟悉自己的系统, 但是会出现单点问题. 对于我个人来言, 我是不希望每时每刻都有人来找我的, 例如我休假之后都会打电话让我看问题.
- 还是每周安排一人(几人)Oncall 去做这些事情?
这种安排就需要组内人员对涉及的系统都有一个基本的认知, 出现问题后有排查思路, 每个系统能有基础可读的设计文档, 使用文档等等. 这就要求组内的人员要熟悉其他人的系统了. 好处是大家能对组内负责的业务都有基础的了解, 并且用户提问问题时都是有人在响应的. 非 Oncall 的人员时间也可以专心做其他事情, 不需要随时被打断.
大家个人又是如何看待这个问题的呢, 觉得哪种方案是可以接受的, 或者有什么更好的解决方法吗, 欢迎大家来讨论~