本文探讨了团队中系统问题解答、排查和支持的两种常见模式:固定系统负责制与轮值Oncall制。固定系统负责制能让成员深入熟悉特定系统,但也存在单点故障和易被打扰的问题。而轮值Oncall制要求组内成员对多个系统有基本了解,有利于知识共享和问题集中响应,同时让非Oncall人员能专注其他工作。文章邀请大家讨论哪种模式更优,或提出更佳的解决方案。
🎯 **固定系统负责制**:团队成员每人(或几人)负责特定系统,出现问题时由该负责人解决。优点是能使成员深入熟悉所负责系统,但缺点是可能出现单点故障,且负责人在休假或离开时会造成支持真空,也容易被打断工作。
⏰ **轮值Oncall制**:每周安排固定人员(或几人)轮流负责所有系统的Oncall工作。此模式要求组内成员对负责的系统有基本认知,并依赖清晰的设计文档和使用说明。优点在于能确保问题得到及时响应,促进团队成员对业务的整体了解,并使非Oncall人员能更专注地进行开发或研究,减少工作被打断。
💡 **权衡与优化**:两种模式各有优劣。固定负责制适合深度技术钻研,Oncall制则侧重于响应效率和知识普及。结合两者的优点,例如在Oncall制的基础上,为关键系统设立“影子负责人”,或定期进行跨系统知识分享会,可能是一种更平衡且高效的解决方案,既能保证问题及时响应,也能促进团队整体技术能力的提升。
在组内, 经常会有各种系统需要帮忙解答, 排查问题, 问题查看等等, 大家的公司是如何安排人员去做这些事情的呢?
- 是每人(几人)负责一个(几个)系统, 这几个系统出现问题都找这个人去解决?
对于这种安排, 每人都仅需要熟悉自己的系统, 但是会出现单点问题. 对于我个人来言, 我是不希望每时每刻都有人来找我的, 例如我休假之后都会打电话让我看问题.
- 还是每周安排一人(几人)Oncall 去做这些事情?
这种安排就需要组内人员对涉及的系统都有一个基本的认知, 出现问题后有排查思路, 每个系统能有基础可读的设计文档, 使用文档等等. 这就要求组内的人员要熟悉其他人的系统了. 好处是大家能对组内负责的业务都有基础的了解, 并且用户提问问题时都是有人在响应的. 非 Oncall 的人员时间也可以专心做其他事情, 不需要随时被打断.
大家个人又是如何看待这个问题的呢, 觉得哪种方案是可以接受的, 或者有什么更好的解决方法吗, 欢迎大家来讨论~