前置き弊社は歴史が古いながらも、「コアタイムなしのフルフレックス&リモートワーク推奨」な自由な働き方を売りにしている会社です。出社時間はみんなバラバラですし、3割ぐらいはリモートワーカーです。よって、オフィスを構えているものの全員が出社することは稀です。働き方が変わると、議論すべき良し悪しや、解決すべき課題も発生します。本記事はリモートワークの課題を解決しようとした話です。禁止等、各社のSlackの運用の話題になるのを見かけます。通知は便利ですがプログラマの集中力を乱す原因にもなるからです。リモートワーカーにとって社屋の会議室、応接室の使用状況は共有されなくても問題ないはずです。リモートワーカーにとってこの通知は不要なのです。通知する側もリモートワークの人に通知飛ばすの申し訳ないな、、と感じるかもしれません。することが重要になってきます。動的なメンションそこで考えたのが動的なメンションです。ある条件を満たすユーザのみに通知されるメンションがあればこの問題を解決できると考えました。今回の例でいうと、「今日出社している人のみに通知されるメンション」となります。チャンネル内のアクティブなユーザのみに通知する、という意味で動的なメンションですね。これを利用すればオフィスに出社している人は一覧で取れる。あとはなんとかオフィスに出社している人一覧に向けてSlack上でメンションできればよさそうです。いうAPIを発見しました。SlackusergroupにグループのID、usersにユーザのIDの配列を渡すことでユーザーグループのユーザーを更新できるというものです。使用することにしました。ライクのデコレータベースでLambdaを記述でき、周辺サービスの作成(削除)までやってくれるフレームワークです。連携が必要だったりして面倒ですが、その辺の面倒をみてくれます。構文で書くことが可能です。UTCの調整でcron式を9時間ずらして、日曜-木曜の23-9時としています(日本時間で月曜-金曜の9-18時になる)。(これってなんかいい方法ないんでしょうか。名付けてドヤ顔でリリースしました。こんな通知が頻繁にくるという報告が。ユーザグループの追加/削除するとSlackbotから通知が飛んでしまうようです。無駄な通知を減らす目的で作ったのに、逆に通知が増えてしまいました。「API経由であれば通知を切るようなオプションがあるかも?」と思い、調べてみましたがどうやら無いようでした。ここで手詰まりとなり、せっかく作った機能ですが運用を停止しました。振り返り技術検証が足りてなかったのが一番の原因です。「APIがある!アイデアもある!いけそう!」となった時点で走りはじめて、小さなコードで試すこともしませんでした。選定した技術で問題を解決できるのか?問題解決に合った手段なのか?の検討は大事ですね。一方で、チャットの通知を設計する発想自体は良かった気がしてます。個人開発なので失敗したことも釣果ではありますし、これも技術検証のうちでしょう!動的なメンションかなりいいアイデアだと思うんだけどなぁ。この記事を読んだどなたか、実現したらぜひ教えて下さい。おまけ拙い英語で公式に問い合わせたところ丁寧な回答がありました。現状(問い合わせ時点の2019年10月)のusergroupAPIでは通知を切ることはできないがフィードバックチームに伝えて将来的にはできるようにしたいとのこと。DisqusAUTHORsin-tanaka長野市の会社員です。技術のことを書きます。