コラボレーション
Slack お役立ち情報

Slack でのプルリクエストとコードレビューを調整

開発作業をチャンネルに移行し、スピードアップするためのクイックスタートガイド

執筆者 : Matt Haughey2020年6月18日イラスト: Josh Cochran

現在のソフトウェア開発では多くの場合、大きなチームが単一のコードベース上でやり取りしなければなりません。その際に使われるのが、コンフリクトを回避しつつ変更の入出力を管理できるコード追跡システムです。コード管理に利用しているサービスは、エンジニアリングチームごとに異なる場合がありますが、テストとレビューはどのチームも Slack の 1 か所でまとめて行うことができます。

チャンネルスレッドアプリを組み合わせて使用すると、メールの受信トレイやアプリのアラートをチェックして回ったり、ブラウザのタブ間を移動したりする必要がなくなるため、エンジニアリングチームの時間を大幅に節約できます。その結果、そのコードが顧客に届くスピードも大幅に上がるでしょう。

では、基本的なアプローチを見ていきましょう。

まずはコードレビューチャンネルを作成

コードレビューチャンネルは、コードベースやチームの規模に合わせて、ブランチまたはリポジトリごとに作成できます。また、特定の機能に対して作成することもできます。小さなチームの場合は、#code-review チャンネルが 1 つあれば十分かもしれません。

チャンネルを作成し、そのチャンネルの目的と共通の行動を示したメッセージを投稿します。例えば、メンバーに対してレビューが必要なものがある時に投稿するようお願いし、承認後のプロセスについて説明します。チームやチャンネルに参加するすべての開発者がいつでもコードレビュープロセスの説明を確認できるよう、そのメッセージはチャンネルにピン留めしてください。

メンション、絵文字、スレッドを使って交流

エンジニアがメンションを使ってチームメンバーの注意を引いている

Slack 社内では、フロントエンド開発用内部コードレビューチャンネルでレビューリクエストを開始する際、「メンション」を使ってチームのメンバーに名前で声をかけるか、ユーザーグループをメンションして関係者全員に一斉通知を送信します(例 : @android-eng)。またカスタム「EZ」絵文字を使えば、レビューがシンプルで短いものだと知らせることもできます。

チームの開発者は、レビューの予定を決めると両目の絵文字「👀」でリアクションします。これは、ユーザーグループがメンションされた場合に便利です。この絵文字が表示されたら、誰かがそれに対応することを意味するためです。レビューが完了したら、チェックマークの絵文字「✅」が表示されます。これにより、そのコードを次のステップに進めてもよいとわかります。

具体的な内容についての話し合いの場としては、各リクエストのスレッドが適しています。GitHub の自動プレビューや Slack に組み込まれたスニペットを使用すれば、ディスカッション目的でコードのセクションを引用するのも簡単です。

Slack でユーザーがスニペットを作成

チャンネルで from:me has::eyes: in:#code-review を検索すると、自分が行ったすべてのコードレビューを追跡できます。結果にチェックマークが示されていない場合は、まだやるべきことがある、という意味です。リクエストが見落とされている場合は、「bump」という単語をスレッドに投稿すれば、そのタスクがまだ要対応の状態だと全員に知らせることができます。

自動アラートで全員が最新情報を把握

Slack には、GitHub からの出力専用チャンネルもあります。プルリクエストがマスターブランチに連携されると、コントリビューターの名前がメンションされた自動メッセージが、そのチャンネルに投稿されます。

これにより、いつデプロイが行われ、どの変更がリリースに組み込まれたかを、全員に知らせることができます。またブランチで作業している人に対して、プルリクエストの送信前に最新の変更を反映させることでコンフリクトを最小限に抑えられる旨をさりげなく伝えます。

大規模なコードベースやチーム、複雑なニーズにも対応

Slack のコードベースは、それぞれのチームがソフトウェアの各側面に集中できるように、多くのブランチやリポジトリに分割されています。コードレビュー用チャンネルとデプロイ用チャンネルがそれぞれ存在しているため、モバイルの開発者が、インフラストラクチャのバックエンドのコードに煩わされることはありません。また、その逆も同様です。あらゆることを Slack で調整すれば、開発者がやり取りし、レビューし、助け合う場が生まれます。

私たちは何年もの間、社内のカスタムソフトウェアを多数構築し、Slack の基本な使い方を特定のニーズに合わせて拡張してきました。GitHub の Slack アプリ(および BitbucketGitLab など)は、任意のブランチに変更があった場合に、プルリクエストを投稿し、チャンネルを更新するように設定できます。

大きなコードベースで作業するチームを調整するのは簡単ではありません。しかし、開発者が Slack でやり取りし、レビューし、デプロイできるようになれば、難しい問題を効率的に解決できるかもしれません。このアプローチを自社のソフトウェア開発チームに導入したい場合は、ヘルプセンターを参照してください。Slack が提供するすべてのサービスの概要を確認できます。

この記事はお役に立ちましたか?

0/600

助かります!

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

了解です!

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

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

読み進める

生産性

仕事の時間をうまく管理するための 10 のヒント

時間の管理こそ、仕事の生産性を高める鍵

生産性

リモートマネジメントとは?目的や課題、効率的に行う方法を解説

リモートマネジメントは、リモートワーク管理の課題を解決するものです。リモートマネジメントの目的や効果的に進めるポイント、効果を高めるツールなどを紹介します。

生産性

会議の基本的な進め方とは?流れや結論を出す方法を解説

会議をどう進めていいか、不安な方もいるでしょう。会議の基本的な進め方や結論を出す方法のほか、会議前に準備しておくべきこと、会議中に実践しておくべきことなどを解説します。

生産性

ファシリテーションとは?メリットやファシリテーターの役割を解説

会議でよく耳にする、ファシリテーションを実践するメリットを紹介。また、やファシリテーターが担う役割のほか、求められるスキル、向いている人の特徴を解説します。