Slack 社内での Slack 活用法
Slack 誕生秘話はご存知でしょうか。それは、あるゲーム開発会社の社内コラボレーションを改善する内部向けツールとして生まれたというものです。それから幾数年。今では、Slack はマーケティングや営業チームから、人事やカスタマーサポート、そしてもちろんエンジニアリングチームに至るまで、世界中の組織のあらゆる部門で愛用されるツールへと成長しました。Slack は人、データ、ツールすべてを 1 か所にまとめるチャンネルベースのメッセージプラットフォームです。適応性が非常に高く、あらゆるタイプのチームの構造やワークスタイルになじむプラットフォームです。
Slack がチームにもたらすバリューをお伝えするには、実際の使用例を見せるのが一番です。業務のあらゆるシーンで Slack を活用することを目指すエンジニアリングチームを擁する企業として、今回は社内のチームに目を向けてみることとしました。そこで本ガイドでは、Slack 社内の開発者たちが日々 Slack をどう使っているかを紹介してみたいと思います。
チームは千差万別。したがって、Slack のチームで有効な方法論がどのチームにも当てはまるとは限りません。ですが、社内エンジニアリングチームの Slack 活用方法を参考にしたいという方は、ぜひご一読ください!
縦のコラボ・横のコラボ
エンジニアリングチームというのはそれぞれ異なるもので、まったく同じチームは 2 つとしてありません。チームの設定は、会社の規模、構造や業種、さらにエンジニアリングチームがコア製品を構築しているか、それとも組織のより広範な業務に対応しているか、あるいはその両方に該当するか、により多種多様です。
一部の組織では、アーキテクト、開発者、テスターなど、開発プロセスの順に沿って分類される従来型のウォーターフォール型チーム構造が採用されていますが、
Slack では、以下の分野別に垂直型(縦)にチーム分けをしています。
- プラットフォーム : API などの対外的な開発関連の機能を担当するチーム
- コア : ほとんどのユーザーにお馴染みのコア製品 Slack を担当するチーム
- エンタープライズ : 大企業向けの Slack の拡張を担当するチーム
- インフラストラクチャ : バックエンドを担当するチーム
これらのチームには、それぞれの目標とプロセスがありますが、チームがいずれも異なるタイミングで協働する必要があるため、縦向き・横向き双方のコラボレーションが必要となります。そのため、複数のチームにまたがるチャンネルを機能のリリースや期末のレポーティングなどのプロジェクトや目標別に立ち上げて利用しています。さらに、部門別のチャンネルを作成し、フロントエンド開発者のチーム間でのベストプラクティス共有などに役立てています。
では、これら 4 分野の 1 つ、プラットフォームチームについて詳しく見ていきましょう。
Slack 社内での Slack 活用法 : プラットフォームチーム
Slack の使い方はチームにより異なります(それが Slack の特長でもあります)。ですが、プラットフォームチームでの利用方法は Slack 社内での活用の一例として参考になるかと思います。
これは Slack の 4 大エンジニアリングチームすべてで共通した点ですが、プラットフォームチームでもホームチャンネルとなるチームチャンネルを設定しています。チーム全体に向けた一般的なアナウンスはここで行います。チームメンバー全員が集まるチャンネルで、社内のほかのチームのメンバーが内容をチェックしたい際にも自由に参加できるようになっています。また、開発中の機能にはそれぞれ、一連のサブチームチャンネルが設定されています。例えば、Block Kit チームでは以下のチャンネルを活用しています。
- #devel-block-kit(#開発-block-kit)
エンジニア、プロジェクトマネージャー、デザイナー、テスターなどが日常業務についての話し合いや管理を行うチャンネル。コードのマージ、設計の更新情報、製品仕様のドラフトなどが確認できます。
- #feat-block-kit(#機能-block-kit)
機能についての全体的な話し合いを行うためのチャンネル。製品、設計、開発それぞれの担当者がスコープの内容を決定し、特定の要件を絞り込み、エッジケースの発生に伴い意思決定を行います。
- #gtm-block-kit(#市場開拓-block-kit)
プレフィックス「gtm」つきのチャンネルでは、新製品の市場投入戦略に関する議論を行います。
「以前は、インシデントやサービス中断、コードの更新などについてメール通知が大量に届くものの、実際には何のアクションも起こせない状態でした。Slack を活用することで、背景情報とともに通知内容を確認でき、そこで直接処理ができるようになりました」
バグ報告やインシデント、サービス中断を管理するためのトリアージ / エスカレーションチャンネルもあります。PagerDuty アプリがインシデントのアラートを適切なチャンネルに投稿してくれるため、Slack 内でトリアージを適宜行えます。
チームのチャンネルはほぼすべてがパブリックチャンネルであるため、ほかのチームのメンバーも自由に参加し、プラットフォームチームの作業内容を確認できますが、ときにはプライベートチャンネルが必要なこともあります。例えば、重要な情報をチームメンバーに伝える方法を議論するリーダーシップチャンネルなどは、プライベートに設定されています。
Slack アプリの使い方
本章での「Slack アプリ」とは、前章で述べた PagerDuty アプリのように、Slack ワークスペースから直接、重要なソフトウェアツールへのアクセスと利用を可能にするアプリを指します。
ここでは、Slack アプリを活用してチームの作業をスムーズにする方法についてよくある例を紹介します。
デプロイ
GitHub などのサービスからプッシュ通知を送信する Slack アプリを使用しています。コミュニケーションが合理的に自動化され、コードのデプロイがスピーディかつ安全に実現できるようになります。
バグの追跡
Slack で直接 JIRA チケットをプレビューして対応できるため、URL を探して開く必要はありません。
フォームの詳細が事前入力されているので、チケットは自動でトリアージに回されます。さらに、作業をスピードアップするためにひと目でわかる目印も活用しています。例えば、チケットの優先順位は ⚪、🔵、🔴 の絵文字でつけ、それに基づきカスタムアプリがチケットを整理するようになっています。
メンバーは項目をレビューし、👀 リアク字で反応します。そして、✅ で解決されたことを示します。
カスタマーサポート
Zendesk チケットが作成されると、すべて関連する Slack チャンネルに送信されるため、チーム内で協力して簡単に対応することができます。
「チームの Slack ワークスペースでは多数のアプリ(カスタムと一般公開アプリの両方)を使っていますが、リマインダーなどの Slack のビルトイン機能も、チームメンバーを集め、現状について議論するためには非常に役立っています。これは簡単な機能ですが、毎日の例会でメンバーを邪魔することがなくなりました」
グラフですばやくインサイトを取得
ほかのソフトウェアへわざわざログインする代わりに、Slack 内で直接グラフを取得し、問題を見つければ、修正対応もすばやく進めることができます。例えば、グラフで API の 500 エラー比率を監視すれば、直近での数値の急増からサーバーの問題が発生している可能性をひと目で確認することができます。
社内で DevOps に使っている Slack アプリの一部
開発者用ツール
Bitbucket
開発者用ツール
開発者用ツール
開発者用ツール
開発者用ツール
では、御社での活用方法は?
本ガイドでは、Slack 社内での Slack 活用方法を簡単にご紹介してきました。ただし、これはほんの一例にすぎません。Slack のエンジニアリングチームのみを例にとっても、業務改善のためのプラットフォームの活用方法は千差万別です。
Slack のボット、アプリ、ツール、ワークフローの開発についての詳細は、こちらを参照してください。また、御社エンジニアリングチームで Slack を最大限に活用する方法について詳しく話し合いたい場合は、セールスチームまでお問い合わせください。