Developer Productivity Advent Calendar 2022 の3日目の記事です。
社内SaaSプロダクトや基盤を開発・運用している企業も多いでしょう。こういった役割を持つ部署や開発者は、できるだけSaaSプロダクト開発の本質に専念したいところですが、ユーザーを抱えているとそうもいきません。某大規模IaaSにあるようなサポートケース管理を作りたくなるところですが、UIも作らなくてはいけないので決して楽ではありません。
こういったケースを手っ取り早く解決するには、Zendeskのようなソリューションを利用することです。しかし、我々のようなエンジニアしかいないような部署においては、ツールやチャネルを増やすのではなく、SlackやGitHubといった普段使いして滞留時間も長いツールで解決できるに越したことはないです。
Slack + GitHub Discussionsでサポートケース管理
というわけで、DP室ではPipeCDの開発者が中心となって、SlackとGitHub Discussionsでサポートケースを管理する仕組みを作りました。PipeCDとBucketeerの社内でのサポートケース管理はこの仕組みで行われています。
Slackのワークフローから起票
この仕組みはSlackのワークフローがトリガーとなります。サポートチャンネルには次のようなワークフローが仕込まれています。
ユーザーは適当に入力するだけです。
GitHub Discussionsにケースとして起票される
起票したケースは、社内限なリポジトリのGitHub Discussionsに起票されます。
同時にSlackにも通知されます。Slackへの即応性が早い弊部署のメンバーにとって、ケースがSlackに通知されるのは大きいです。Slackは流れやすいという問題もありますが、Discussionsによってケースが管理できるようになったため、見落とし問題がなくなりました。
ちなみに、サポートケースのチャンネルやDiscussionsは社員であれば見れるようになっています。サポートケースはユーザーとSaaS側のクローズドなものになりがちですが、少なくとも社内オープンになっていることで、他のプロジェクトでも同様なケースが発生していないか?等、ユーザーの横の情報共有という点でも効果を発揮しています。