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側のクローズドなものになりがちですが、少なくとも社内オープンになっていることで、他のプロジェクトでも同様なケースが発生していないか?等、ユーザーの横の情報共有という点でも効果を発揮しています。