電子ブック

Slack 社内開発者の Slack 活用法

Slack エンジニアリングチームのベストプラクティス

Slack 社内での Slack 活用法

Slack 誕生秘話はご存知でしょうか。あるゲーム開発会社の社内コラボレーションを改善する内部向けツールとして生まれたというものです。 

それから幾数年。今では、Slack はマーケティングや営業チームから、人事やカスタマーサポート、そしてもちろんエンジニアリングチームまで、世界中の組織のあらゆる部門で愛用されるツールへと成長しました。人、データ、アプリケーションを結びつけるコラボレーションハブ、Slack は、適応性が非常に高く、あらゆるタイプのチームの構造やワークスタイルになじむプラットフォームです。

Slack がチームにもたらすバリューをお伝えするには、実際の使用例を見せるのが一番です。

業務のあらゆるシーンで Slack を最大限に活用することを目指すエンジニアリングチームを擁する企業として、今回は社内のチームに目を向けてみることとしました。

そこで本ガイドでは、Slack 社内の開発者たちが日々 Slack をどう使っているかを紹介してみたいと思います。

チームは千差万別。したがって、Slack のチームで有効な方法論がどのチームにも当てはまるとは限りません。ですが、社内エンジニアリングチームの Slack 活用方法を参考にしたいという方は、ぜひご一読ください!

縦のコラボ・横のコラボ

エンジニアリングチームというのはそれぞれ異なるもので、全く同じチームは 2 つとしてありません。チームの設定は、会社の規模、構造や業種、さらにエンジニアリングチームがコア製品を構築しているか、それとも組織のより広範な業務に対応しているか、あるいはその両方に該当するか、により多種多様です。

製品のエンジニアリングに重点を置く Slack は、多数のエンジニアリングチームを擁しています。

一部の組織では、アーキテクト、開発者、テスターなど、開発プロセスの順に沿って分類される従来型のウォーターフォール型チーム構造が採用されていますが、

Slack では、以下の分野別に垂直型 (縦) にチーム分けをしています。

  • プラットフォーム:API などの対外的な開発関連の機能を担当するチーム
  • コア:ほとんどのユーザーにお馴染みのコア製品 Slack を担当するチーム
  • エンタープライズ:大企業向けの Slack の拡張を担当するチーム
  • インフラストラクチャ:バックエンドを担当するチーム

これらのチームには、それぞれの目標とプロセスがありますが、チームがいずれも異なるタイミングで協働する必要があるため、縦向き・横向き双方のコラボレーションが必要となります。

そのため、複数のチームにまたがるチャンネルを機能のリリースや期末のレポーティングなどのプロジェクトや目標別に立ち上げて利用しています。

さらに、部門別のチャンネルを作成し、フロントエンド開発者のチーム間でのベストプラクティス共有などに役立てています。

では、これら4分野の1つ、プラットフォームチームについて詳しく見ていきましょう。

Slack 社内での Slack 活用法: プラットフォームチーム 

繰り返しになりますが、Slack の使い方はチームにより異なります (それが Slack の特長でもあります)。ですが、プラットフォームチームでの利用方法は Slack 社内での活用の一例として参考になるかと思います。

これは Slack の4大エンジニアリングチームすべてで共通した点ですが、プラットフォームチームでもホームチャンネルとなるチームチャンネルを設定しています。

チーム全体に向けた一般的なアナウンスはここで行います。チームメンバー全員が集まるチャンネルで、社内の他のチームのメンバーが内容をチェックしたい際にも自由に参加できるようになっています。また、開発中の機能にはそれぞれ、一連のサブチームチャンネルが設定されています。例えば、Block Kit チームでは以下のチャンネルを活用しています。

  • #devel-block-kit

エンジニア、プロジェクトマネージャー、デザイナー、テスターなどが日常業務についての話し合いや管理を行うチャンネル。コードのマージ、設計の更新情報、製品仕様のドラフトなどが確認できます。

  • #feat-block-kit

機能についての全体的な話し合いを行うためのチャンネル。製品、設計、開発それぞれの担当者がスコープの内容を決定し、特定の要件を絞り込み、エッジケースの発生に伴い意思決定を行います。

  • #gtm-block-kit

プレフィックス「gtm」付きのチャンネルでは、新製品の市場投入戦略に関する議論を行います。

「以前は、インシデントやサービス中断、コードの更新などについてメール通知が大量に届くものの、実際には何のアクションも起こせない状態でした。Slack を活用することで、背景情報と共に通知内容を確認でき、そこで直接処理ができるようになりました。」

Slackソフトウェアエンジニアリング担当ディレクターMike Brevoort 氏

バグ報告やインシデント、サービス中断を管理するためのトリアージ/エスカレーションチャンネルもあります。PagerDuty アプリがインシデントのアラートを適切なチャンネルに投稿してくれるので、Slack 内でトリアージを適宜行うことができます。

チームのチャンネルはほぼすべてがパブリックチャンネルで、プラットフォームチームの作業内容を知りたい他のチームメンバーも自由に参加することができますが、時にはプライベートチャンネルが必要なこともあります。管理職が重要な情報をチームメンバーに伝える方法を議論するリーダーシップチャンネルは、プライベートに設定されています。

Slack アプリの使い方

本章での「Slack アプリ」とは、前章で述べた PagerDuty アプリのように、Slack ワークスペースから直接、重要なソフトウェアツールへのアクセスと利用を可能にするアプリを指します。

エンジニアリングチームの作業をスムーズにするために役立つ Slack アプリの主な例をいくつかご紹介します。

デプロイ

GitHub などのサービスからプッシュ通知を送信する Slack アプリを使用しています。コミュニケーションが合理的に自動化され、コードのデプロイがスピーディかつ安全に実現できるようになります。

バグの追跡

Slack で直接 JIRA チケットをプレビューして対応できるため、URL を探して開く必要はありません。

フォームの詳細が事前入力されているので、チケットは自動でトリアージに回されます。さらに、作業をスピードアップするためにひと目で分かる目印も活用しています。例えば、チケットの優先順位は ⚪、🔵、🔴 の絵文字で付け、それに基づきカスタムアプリがチケットを整理するようになっています。

メンバーが項目をレビューすると、👀 リアク字で反応します。そして、✅ で解決されたことを示します。

カスタマーサポート 

Zendesk チケットが作成されると、すべて関連する Slack チャンネルに送信されるため、チーム内で協力して簡単に対応することができます。

「チームの Slack ワークスペースでは多数のアプリ (カスタムと一般公開アプリの両方) を使っていますが、リマインダーなどの Slack のビルトイン機能も、チームメンバーを集め、現状について議論するためには非常に役立っています。簡単な機能ですが、毎日の例会でメンバーを邪魔することがなくなりました。」

SlackシニアエンジニアリングマネージャーBrian Ngo 氏

グラフですばやくインサイトを取得 

他のソフトウェアへわざわざログインする代わりに、Slack 内で直接グラフを取得し、問題を見つければ、修正対応もすばやく進めることができます。例えば、グラフで API の 500 エラー比率を監視すれば、直近での数値の急増からサーバーの問題が発生している可能性をひと目で確認することができます。 

 

社内で DevOps に使っている Slack アプリの一部 

では、御社での活用方法は?

本ガイドでは、Slack 社内での Slack 活用方法を簡単にご紹介してきました。

ただし、これはほんの一例にすぎません。Slack のエンジニアリングチームのみを例にとっても、業務改善のためのプラットフォームの活用方法は千差万別です。

Slack のボット、アプリ、ツール、ワークフローの開発についての詳細は、こちらを参照してください。また、御社エンジニアリングチームで Slack を最大限に活用する方法について詳しく話し合いたい場合は、セールスチームまでお問い合わせください。

    この情報はお役に立ちましたか?

    0/600

    助かります!

    ご意見ありがとうございました!

    了解です!

    ご意見ありがとうございました!

    うーん、システムがなにか不具合を起こしてるみたいです。後でもう一度お試しください。