所以,四年多过去了,以下是我所在的团队如何使用 Discourse 进行每日站会的概况。
组织背景
- 一个项目团队,作为“外部客户”参与各种开源项目,但隶属于一个大型组织内部。
- 该大型组织拥有自己的专有工具,用于文档管理、项目管理、聊天(Slack)等,历史上一直不愿转向开源工具,也不愿公开组织内部的工作内容。
- 该团队的工作必须同时满足:(a) 符合大型组织的汇报标准;(b) 向公众开放。
技术设置
- 为团队工作设立一个 Discourse 论坛,用于与公众及其他外部方进行交互。
- 设立一个专门的项目管理分类,对所有人可读,但仅团队可写。
- 在该分类下设立一个“每日站会”子分类,同样仅团队可写,并设置为 23 小时后自动关闭主题。
- 我们重命名了
@discobot,并确保其拥有对该分类的访问权限。
(目前)解决方案
- 由于现有的 Discourse 插件或可用的开源工具尚不充分,我们不得已使用 Zapier 进行自动化。
- 周一至周五,Zapier 每天在指定时间以机器人用户身份在“每日站会”子分类中创建新主题,主题标题中包含当前日期。
- Zapier 向每位站会参与者在各自工作日开始前后发送 Slack 提醒(这是 Slack 的一项支持延迟和关闭的功能),并附上当天特定站会主题的链接。
- Zapier 监控该分类中的帖子,过滤掉来自机器人的内容、任何主题的首帖,以及自动关闭操作(否则也会触发)。帖子内容会通过 Zapier 工具进行大幅重写,然后发布到 Slack 频道,模仿其他团队成员使用的格式,但在 Slack 消息的第一行添加帖子链接(即自动生成的日期)。我们之所以这样做,是因为聊天集成插件会附带过多元数据,导致噪音过大,烦扰了该频道中的其他用户。
- 在某个时间点,我们会手动将日期添加到事件插件中,使站会报告出现在主
/calendar页面,与其他活动一同展示。 - 我们确保聊天集成插件排除(静音)该站会分类,避免在相关 Slack 工作区的其他地方重复显示同一站会内容。
Discourse 愿望清单
如果未来有一天能实现以下功能,我们就不必再使用 Zapier 了:
- 支持定期自动发布主题,且文本内容可通过变量(如日期)进行模板化。
- 聊天集成插件:允许编辑发送到各个频道的消息模板,类似于电子邮件模板的设置方式。
- 分配功能:支持为同一主题分配多个负责人,按分类设置提醒间隔,并允许通过 API 或上述自动创建模板来设置分配。