It Made My Day

Acutally, my whole life is just one big yak shaving exercise.

業務で役立ったもの厳選!とあるエンジニアのSlackを使った生産性向上事例

これはZOZO Advent Calendar 2023 5日目の記事です。Slack公式が出しているTips記事など以外で、職場で使っている活用方法を厳選して紹介します! エンジニア向けの内容を含みます。

通知編

脆弱性関連のPRとIssueだけSlackに通知する

GitHubの通知機能をパブリックチャンネルで設定すると、通知が多くなるのでチームのコミュニケーション用チャンネルと分けている、という組織も多いと思います。そこで、私のチームでは、通知するものの種類とラベルを指定することで、脆弱性を検知したIssueやPRが作成されたときだけSlackに通知されるようにしています。vulnerabilityというラベルがついているPRもしくはIssueだけ通知する、という設定をすることで、dependabotなどで自動で付与されるラベルも検知してくれます。

Issueは解決したらその旨もSlackに投稿してくれます。

注意点としては、1つのチャンネルに通知できる条件として、ラベルは1リポジトリにつき1種類しか指定できません。 私のチームでは、脆弱性の通知のみ、PRのマージなどを通知するリリース絡みのチャンネルとは別に、チームの業務連絡用のチャンネルに通知されるようにしています。

祝日を考慮し、指定した曜日にSlackに投稿する輪番担当者お知らせBot

Slackのリマインダーはあまり柔軟性が高くなく、日本の祝日を考慮しないのでいまいち痒いところに手が届かないこともあります。 そこで、スプシのGASを使い、毎週設定した曜日の決められた時間に、チームを1人ずつ順番に指定してSlackにメンション付きのリマインド投稿をしてくれるBotを作成しました。

通知のイメージ。やっぱりBotはアイコンが可愛いのが一番大事ですよね!!!

元々は、朝会のファシリテーターを輪番にしたいという話から作ったBotですが、例えば週に1度のmtgのファシリと議事録担当者を輪番にしたいとか、そういう用途でも使用しています。 管理にはスプレッドシートを使っており、通知の条件をスプシにこんな感じ↓で書き込めば、GASが上から順番に担当者を選んで、指定した曜日の特定の時間に通知してくれるってわけです。

GASが「次回の当番」に記載されている人にメンションする通知を送り、「担当者」の列にある次の担当者を認識して次回の当番を更新してくれる仕組みです。

実際には、投稿チャンネル、アイコン、メッセージなども指定でき、1つのファイルで複数のBotを生成することもできるようにしています。

指定した日にSlackに投稿するBot

上記の輪番とは違い、シンプルに指定した日付に投稿するBotも作りました。 このBotは、日付に加えて月末月初を指定できるようにしています。 曜日指定の輪番通知は定例のmtgでしたが、こちらのBotの主なニーズは、月に一度のイベントや、月末の勤怠締めなどの定例作業のリマインダーです。

管理シートはこのように作っています。

メンションは指定してもしなくてもOK。日付に月末月初を書き込むと、毎月最初のor最終営業日に通知できます。

これがこんな感じで通知されます。

スプシのサンプルかGASのソースコードを公開しようかと思ったのですが、ちょっと準備が間に合わず、もしご興味ある方いらしたらTwitterでDMください

作業の自動化編

ワークフローで定型的な内容の連絡を効率化

Slackのワークフロー機能は個人的にかなり使いまくっています。公式のチュートリアルはこちら

所定の情報を記入して手続きをしないといけないなどの場合にワークフローでフォームに記入する、などの用途(公式ページの用例はこちらご参考)で使っている組織も多いんじゃないかなと思います。

そこまでかしこまった手続きの場合でなくても、例えば自分のチームへの依頼をするときは優先度を記入してほしいのでフォームに必須事項として追加しておく、とか、依頼に複数のメンション先が必要なので依頼者にワークフローに記入してもらうことでメンション先を気にしなくてよくなる、など絶妙にSlackコミュニケーションのペインを解消できることがあります。

特定のスタンプを押すと特定のチャンネルに投稿を転送してくれる

Slackリアク字チャンネラーを使うと、任意の投稿にスタンプを押すだけで、設定したチャンネルに対して他チャンネルから投稿を転送できます。 地味に投稿のURLをコピーして貼り付けて...とする手間が省けて 弊社では、「xxx共有」みたいなスタンプがたくさん存在し、結構多くのチームがこの機能を使っていそうです。

ユーザーグループに加入した人が自動的にチームに関連するチャンネルに入るようにする

オンボーディング資料に、「このチャンネルに入っておいてね」と教えるためのチャンネルリストを記載していませんか? 意外にチャンネルが増減したり名前が変わったりして、メンテが面倒ですよね。

そんな時は、ユーザーグループの編集画面から、デフォルトチャンネルを設定しましょう。 グループメンションに新入メンバーを追加すると、自動で設定したチャンネルに参加させてくれます。

また、併せてそれぞれのチャンネルに説明を書くようにしておくと、突然加入させられても新入メンバーからそのチャンネルの用途が一目でわかるのでおすすめです。

その他

ワークフローで学びをメモして、チームに共有する

みなさん、日々の学びや気づきをどうやってチームに共有していますか? そういう、ちりつもな何かを集めるツールとして、Slackのワークフローにメモを投稿すると、スプシに集約されるツールを作りました。

ワークフローを発動するとこんな感じでフォームが立ち上がり、これに入力するとスプレッドシートにその内容が蓄積されます。

Slackとスプレッドシートの連携方法の公式ドキュメントはこちら。私は上記のようにカテゴリを指定してもらい、スプシのデータが記入されるシートをマスターとして、スプシのquery関数を使用してカテゴリごとに自動で専用のシートにデータが貯まるようにしています。

チーム内に限らず、何かのイベントの意見を集めるなどの用途にも使えそうだと思っています (このGoogleフォームから感想を投稿してください!みたいなやつをSlackワークフローでやるイメージ)。

普段の情報整理に便利なTips

サイドバーを整理する

サイドバーの上部のアイテムリストをカスタマイズしてしたり、カスタムセクションで複数のチャンネルをまとめています。 設定の仕方は公式サイトをご覧ください。

チャンネルが多くなりがちなので、整理は必須ですね。このセクションの設定まで他人と共有できるようになれば新しく入るメンバーにも提供できて楽なのにな〜と思うことがあります。

予約送信

「送信」ボタンの隣にある「下矢印」ボタンをクリックし、日時を選択して、「送信日時を設定する」をクリック。

チャンネルによく使うURLをブックマーク

よく使うURLをブックマークしておき、個人でブラウザのブックマークを編集したり、探す新しく人が入った時に教える手間を省くことができます。

この画像はサンプル用に作ったのでとてもリンクが少ないですが、実際には結構入っていて、日々いかに色んなサイトを見に行っていたのかと考えると、そういうのを思い出す手間すら省いていきたいなという気持ちになります。


最後までご覧いただきありがとうございました! みなさま良いお年を〜🎍