.../articles/

GiFTで実践しているSlackの活用法

リモートワークが中心となったことでオンラインでのコミュニケーションが増える昨今ですが、特にオンラインでのコミュニケーションの中心として利用しているSlackを弊社がどのように活用しているかまとめました。

Slackとは?

最近は社内でビジネスチャットツールを導入しているというところも増えているかと思いますので、Slackをご存じの方も多いかもしれません。

ビジネスチャットツールを一言で説明するのは難しいですが、基本的にはチャットベースでのコミュニケーションを行い、チャット以外にも音声通話やビデオ通話をすることもできます。また、外部のサービスと情報を連携することで使うツールが一つだけでチーム内の情報共有を簡単にできるというような利点があります。
Slackではこれらのような機能をもつことから「ビジネスコラボレーションハブ」と表現しています。

利用上の制限はいくつかありますがSlackは基本的に無料で利用可能なので、ビジネスチャットツールの導入を検討している段階なら是非試してみてください。

ちなみにSlackと比較されるビジネスチャットツールは以下のようなものもありますが、私自身この類のツールとしてはSlack以外あまり触れてこなかったので、機会があれば比較検討してみたいところです。

Slackを使う利点

Slackを使う最大の利点の1つは「情報を集約できる」ということだと考えています。
(恐らく他のビジネスチャットツールでも言えることだと思いますが)

チャンネルベースのチャットはもちろんなのですが、Slackに外部サービスを連携することで定期的に状態を監視したり、何かが作成されたり状態が変化したというイベントをもとに通知を送ることができます。

極端に言えばSlackさえ開いていれば、他のツールは必要なときだけ開けばよいという状態を作り出すことができます。

とはいえSlackを導入しただけで急にその状態になるかというとそうではありません。
実際様々なSlackの利用のノウハウがあり紹介する記事も多々あるのですが、ここでは弊社が実践している例を交えつつどうしたら便利にSlackを利用できるかを紹介してみたいと思います。


チャンネルの使い分け

Slack上のチャンネルの使い分けは自由なので、チームの規模や用途によって組み立てていくことになるかと思います。
例として弊社では大きく分けて以下のようなチャンネルがあるので、簡単に紹介していきます

  • times系:各メンバーに割り振られたなんでも自由にポストできるチャンネル
  • project系:案件ごとに独立したプライベートチャンネル
  • 通知系:外部サービスの状態やイベントの発生を通知するためのチャンネル
  • その他:まとめておきたい話題毎に作ったチャンネル

times系は各メンバーごとに割り振られており、誰でも見えるようパブリックチャンネルとして作られています。
内容は基本的に自由なので、例えば「今何々してる」や「これこれがちょっと困っている」、または「最近これが気になっている」などその時々で起こったことや考えていることなどをラフにポストしていきます。

このチャンネルの目的としては、その人が今何をしているのか何を考えているかを可視化することです。
とはいえ「作業報告」という程重く捉える必要はなく、すべてを詳細に伝える必要もなければ集中している時にtimesにポストする時間を割く必要もありません。
ただ簡単にでもポストしておくことで「あの人いま何々してるんだな」というのが周りからもわかりやすくなります。

これはずっと前から取り組んでいるのですが、リモートワークが中心になった今はさらに重要になっているとも感じています。
これに関しては以下の記事もぜひご覧ください。

project系は情報管理の観点からも案件ごとに独立したプライベートチャンネルになっています。
特定の案件に関わるコミュニケーションは基本的に対応するチャンネルの中で行います。
また、必要に応じてゲストユーザーの追加やShared Channelを利用して外部のユーザーを交えてコミュニケーションを取ることもあります。(※これらの機能は有料プランへの加入が必要です)

通知系について詳しくは後述しますが、誰がアクションを取ったり情報を更新したことをSlackのツール連携や場合によっては自作のツールなどで通知します。
例えばGitHubと連携することでPull RequestやIssueが作成されたことを通知することができます。

その他はそれ以外で話題としてまとめておきたい場合はチャンネルを作っていますが、作ったもののあまりポストがないチャンネルもあったりします。
活動のないチャンネルは定期的に見直して、不要であればアーカイブするなどの運用も必要に応じてしています。


ツール連携

ここからは前述の通知系チャンネルに関わる内容でもあります。
ツール連携によってはオープンにすべきでない情報を含む場合などもあると思いますので、適切に権限の管理やチャンネルをプライベートにするなどの管理を行ってください。

Slackは様々なツールと連携するための仕組みを提供しており、その中の一つがAppによるツール連携です。(以下Slackアプリとします)
先に紹介したGitHubとの連携もこのSlackアプリを利用しています。様々なツールと連携するためのSlackアプリが提供されているので、利用しているツールが連携できないか探してみるのがよいでしょう。情報を通知するだけでなく、機能を追加するようなSlackアプリもあるので色々見てみると面白いかと思います。

目的のツールと連携するSlackアプリがない、Slackアプリはあるけどやりたいことができないといった場合は必要に応じて連携ツールを自作することもできます。

コードを書けるのであればIncoming Webhookを利用したり、Appを開発することもできます。便利なAppができたら公開して世界中のSlackユーザーに使ってもらうこともできます。

IFTTTZapierのようなワークフローを自動化するサービスを使えば、コードを書かなくても比較的簡単にオリジナルの連携の仕組みを作ることもできます。

以下でSlackアプリや自作のツールを用いた連携の例を紹介していきます。

スケジュール管理

弊社はG Suiteを利用しており、各自のスケジュールなどは基本的にGoogleカレンダーで管理されています。
カレンダーを見ればどこに予定が入っているかはわかるのですが、常に全員の予定を把握しているわけでもありません。

Googleカレンダーと連携するSlackアプリとしてはGoogle Calendar for Team Eventsを使っています。
自分に対してのリマインダーとしてはもちろんですが、もうすぐ打ち合わせがスタートするという通知が届くことであの人はしばらくレスポンスないかもしれないな、といった状況が把握しやすくなるかと思います。
私は自分の予定は自分のtimesチャンネルに届くようにしています。

タスク管理

弊社ではタスク管理にClickUpを利用しています。

ClickUpのSlackアプリも提供されており、コマンドでタスクを追加したりステータスの更新を通知することもできます。
ただ個人的にタスクの作成やステータスの後進をすべて通知できるのはあまりうれしくない気もしています。(通知する内容は絞ることができます)

どちらかというと対応すべきタスクがあるかどうかを知りたいので、締切を過ぎているタスクや締切の近いタスクを通知したい。そのために自作で連携するツールを作った、というのが以下の記事です。
SlackとClickUpを使っているという方は是非ご覧になってみてください。

開発

Slackアプリには開発系のツールと連携できるものが多くあるように思います。
ピンポイントで欲しい機能がないということは割とありますが、Slackアプリが見当たらないということはあまりありません。

1つ目は既に挙げているGitHubです。
Pull RequestやIssueがOpenしたCloseしたなどのイベントの通知を送ることができるので、大体あのプロジェクトの作業をしてるなというのがなんとなくわかります。

以前はレビュー待ちのPull RequestをPull PandaというSlackアプリで通知していたのですが、GitHubに統合されたようです。

個人的にはGitHub Actionsの通知をもう少し細かく送れるといいなと思っていますが、今の所Incoming Webhookで対応しています。
成功したことを明示的に通知したいのであれば特定のジョブの最後でIncoming Webhookでメッセージを送ったり、失敗したことを通知したいのであれば failure かどうかを判定してメッセージを送るステップを追加することもできます。

その他に社内ではないですがレビューのアクションやコメントなど細かいイベントも通知したいよね、という話があった時に自作してみたのが以下のツールです。あまりしっかり検証はできていませんが、大体想定通りに動いています。
これはGitHubのWebhookをAWSのAPI Gateway+Lambdaで受け取って内容に応じてIncoming Webhookをメッセージを送るようになっています。

他に開発系で利用しているSlackアプリはCircleCIがあります。

最近はGitHub Actionsを使うことも増えてきましたが、既存のプロジェクトなどはCircleCIを使い続けているのでビルド結果の通知を送るようにしています。

プロジェクトによってはエラーを管理するためにRollbarSentryを利用していますが、これらもSlackアプリがあるので通知するのはとても簡単です。


まとめ

一部ではありますが、社内でのSlackの活用方法について紹介しました。
紹介した以外にもSlackアプリを利用したり、個人的にSlackに通知するようなツールはちょこちょこ作ったりしているのでまた紹介できればと思っています。Slackに通知する仕組みもこだわらなければ簡単に作れるので一度取り組んでみてはいかがでしょうか。

また、Slackをどれだけ使いこなしたとしてもチャットベースのコミュニケーションだけでは足りないと感じることも当然あります。
その際は詳細な情報を伝えるため別途Notionに資料をまとめたり、必要であればZoomなどのビデオ通話で会話するなど足りない部分を補えるツールも併せて活用しています。

Slackを導入してみよう、Slackは使ってるけどSlackアプリや自作のツールでもう少し便利に使ってみようと思うきっかけになれば幸いです。

Slackなどのビジネスツールやその他のサービスの導入に関してご検討中の場合は、導入支援やツール開発などなんでもお気軽にお問い合わせください。

.../articles/

Articles

記事

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

monorepo管理しているNext.jsをAmplifyにデプロイしようとした際にいくつか躓く内容があったのでまとめておきます。

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

コロナ禍の影響により、リモートワークの導入をおこなっている制作会社も多く、実際に弊社でも導入しています。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトのデザインは、「この形式」という決まりはありません。ECサイトで売り上げを上げるなら、しっかりとしたコンセプトと、コンセプトを決定するまでのリサーチが必要です。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

新型コロナウイルス感染拡大の影響で、リモートワークが主流になり、弊社でも週のほとんどは各自宅で作業をしています。

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaを利用するWebデザイナーの助けになれると嬉しいです。使い方は本記事をご覧ください。

ECの構築方法、おすすめのECサービス。

ECの構築方法、おすすめのECサービス。

ファッションや家電、スーパーの買い物でさえもECサイトを利用することが当たり前になりました。加えて新型コロナウイルスの影響もあり、弊社にも「どんなプラットフォームを利用したら良いか」「どれくらいコストがかかるのか」などECに関するさまざまなご相談を頂きます。

FastAPIのスキーマクラスをOpenAPIから生成する方法

FastAPIのスキーマクラスをOpenAPIから生成する方法

PythonでAPIを構築する要件があり、フレームワークに比較的モダンなFastAPIを採用しました。FastAPIはバックエンドの開発を行えば自動でOepnApi定義を生成する機能が備わっていますが、今回はこれを使わず、事前に用意したOepnApi定義からFastAPIで利用するスキーマクラスを生成する方法を紹介します。

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel + MySQLで全文検索を実装する

GiFT1号目新卒デザイナーの2021年振り返り

GiFT1号目新卒デザイナーの2021年振り返り

いつの間に、年末ですね。入社してもう、9ヶ月も立っていたようです。2021年の振り返りを記事にしました。

TimesclaeDBのデータ圧縮に関して

TimesclaeDBのデータ圧縮に関して

TimescaleDBはデータベース内の一部のテーブルを時系列データとして扱えるPostgreSQLの拡張です。PostgreSQLの機能拡張なので非常に手軽に導入できます。今回はこのTimesaceDBの圧縮について調べたので備忘録として書き綴りました。

すべての記事

お問い合わせ