一般的なユース ケース

Visual Studio Live Share の主な目標は、開発者がより簡単に共同作業を行うことができるようにすることであり、いつ、どのように行うか (どのコミュニケーション ツールを使用するか、"適切な" ソフトウェア手法、SCM ワークフローなど) について意見を述べる必要はありません。 これにより、自分のツールで、必然的に、そして必要な頻度で生じる操作を、自分が既に気に入っている作業方法を補完する形でサポートできます。

このドキュメントでは、Visual Studio Live Share が既に使用されているユース ケースをいくつか紹介し、現在のサポート状況とさらに (フィードバックに基づいて!) 最適化する計画について説明します。 Live Share を以下にまだ説明していない作業に使用されている、あるいは特定のユース ケースをサポートするためにもっと良い方法があると思われる場合は、お知らせください。

クイック アシスタンス

問題にぶつかったとき (バグを解決しようとしている、環境を設定しているなど)、Visual Studio Live Share を使用して、別の仲間に即座に支援を求めることができます。 多くの場合、支援を提供する相手が何のコンテキストを必要とするかはすぐにはわかりません。そのため、Live Share は、プロジェクト全体に簡単にアクセスできるようにし、必要に応じて、さらに (ローカル サーバー、読み取り専用ターミナルなど) 段階的に共有することで支援します。 コード スニペットやエラー メッセージを送り合う必要はありません!

さらに、Live Share では、必要なプラットフォーム SDK (Node.js、Go、.NET Core など) やツール拡張機能を "ゲスト" にインストールするように要求することなく、アクティブなデバッグ セッションを共有できるため、より迅速に解決し、"自分のコンピューターでは再現しない" 状況が起きないように支援します。 Live Share では、あらゆるプログラミング言語やランタイム環境 (Kubernetes、React Native アプリなど) のデバッグ状態を他の人と共有できるので、助けを必要としている内容に関わらず、それを共有できます!

質問受付時間

多くの企業や教育機関 (学校、オンライン トレーニング コースなど) は、事前に決められた時間、通常は定期的な頻度 (毎週金曜日の午後 3 時から 5 時までなど) で顧客、従業員、学生にサポートを提供します。 このように、"オフィス アワー" は、"クイック アシスタンス" をその場限りではなく、単にスケジュール化した形式です。 Live Share では、支援を提供する "エキスパート" が、即座にコラボレーション セッションに参加し、質問に答えることができ、自分のコンピューターをセットアップする必要も一切ないため、すばやく簡単に支援を受けることができます。

ペア プログラミング

Visual Studio Live Share で最も一般的に使用されるシナリオの 1 つが "ペア プログラミング" です。2 人以上の開発者が、知識を共有し、チームの団結を高め、ひいては製品の品質を高めることを目標にして、共有タスクに一緒に取り組みます。 ペア プログラミングの具体的なルック アンド フィールは、チームや状況によって大きく異なる可能性があり、(何よりも) 以下に左右されます。

  1. 共同作業対象の "タスク" の範囲 (バグ、ユーザー ストーリーなど)

  2. コラボレーション セッションの予想される期間 (2 分、1 時間、フルタイム、週 1 回、未定など)

  3. 関係者の数 (2 人、チーム全体など)

  4. 各参加者の役割 ("ドライバー"、オブザーバー兼レビューアー、分野の専門家など)

  5. 参加者がいる場所が近いかどうか (同じ建物の同じ場所、世界各地など)

Live Share は、前述のすべての懸念事項に依存しないように設計され、代わりに、完全に "便宜主義的" であり、状況に対応するペア プログラミングをサポートするように努めています。 そうは言っても、2 人の開発者が 1 つのキーボードと画面を共有するのとは異なります。Live Share を使用すると、開発者たちが、個々の自律性や環境設定を捨てることなく、目標を共有して取り組めるペア プログラミングの形式を実現できます。 単独で、または一緒に作業して、各参加者が自身の思考過程をコラボレーションに持ち込むことができます。

このユース ケースをさらに細かく分類するために、次の各項目で、私たちが Live Share の使用者を観察してきたペア プログラミングの形式について説明します。

モブ プログラミング

モブ プログラミング (またはスウォーム プログラミング) は、基本的にはペア プログラミングですが、参加者が 2 人より多いです。 そのため、Live Share のペア プログラミングにおける利点もすべて同様に当てはまります。 さらに、チームによっては、フルタイムではなく、必要に応じて (例: 避難訓練にチームが集まる) "スウォーム" を行います。

現在、Live Share はセッション内で最大 30 人のゲストをサポートしています。

ヒント

セッションで 30 人のゲストを有効にするには:

  • VS Code: "liveshare.increasedGuestLimit":"true" を settings.json に追加する
  • VS: [ツール] > [オプション] > [Live Share] > [ゲスト制限の増加] を "True" に設定する

コーディング コンテストとハッカソン

コーディング コンテストとハッカソンは、実質的には、期間が短く、タスクが 1 つのモブ プログラミングの一種です。 チームのメンバーとその現在の役割も動的である可能性があります。 このユース ケースは通常、時間的制約があるため、まったく新しいツールを採用することなくリアルタイムで共同で作業でき、1 つの画面またはキーボードに制限されずに一緒に取り組むことができることは、速度の向上に多いに役立ちます。

この環境の参加者が常に完全に "信頼できる" とは限らないため、ゲストをセッションからいつでも削除 (およびブロック) できます。 これにより、"ホスト" が環境を完全に制御できます。

学校グループ プロジェクト

グループ プロジェクトは結局、複数の学生が一緒に作業するモブ プログラミングによく似ており、1 つのタスクに集中する状態と別々のタスクに同時に取り組む状態の間をシームレスに移行できます。 単にバージョン コントロールに依存して非同期で共同作業を行う代わりに、Live Share を使用してリアルタイムで一緒に作業できます。これにより、グループ作業の社会的および教育的なメリットが得られます。

開発者のストリーミング

開発者のストリーミング (Twitch または Mixer を利用) は、説得力のある新しい教育形式です。 Live Share は、ブロードキャスト プラットフォームを置き換える意図はなく (もっとも、要望は聞いたことがあります!)、ホストがプログラムを 1 人以上のゲストとペアにして、そのやりとりをストリーミングする手段を提供します。 こうすることで、視聴者は、2 人以上の開発者の自然なやりとりや思考過程を見て、まったく別のオペレーティング システムや IDE で一緒に作業できることも見ることができるため、より多くを学ぶことができる可能性があります!

プロトタイプ作成とプロジェクト開始

チームが新しいプロジェクトやマイクロサービスを開始するとき、または新機能のプロトタイプやスパイクを作成するとき、すばやい進展と新しいアイデアを探索するために共同作業が役立つことがよくあります。 新しく形成されたコードベースはまだ共有リポジトリにコミットされていない可能性があります。Live Share を使用すると、同じオフィスにいるかどうかに関係なく、全員が反復プロセスに参加できます。

対話型教育

一般的に、Live Share は、開発者がチーム間で知識を共有できるように支援することを目的としています。 教育は Live Share の基本的なユース ケースであり、各参加者が単に画面を見るのではなく、共同作業を行っているコードベースを操作できるようにすることで、これを特にうまくサポートしています。 学習方法は人によって微妙に異なるため、"学生" に独立性を与えることで、途中で自分のアイデアを探求する能力を犠牲にすることなく、与えられる指示を生かすことができます。

ピア メンタリングとオンボーディング

開発者に新しいコードベース、機能領域、テクノロジなどを紹介する際、プロジェクトを (Follow Mode を使って) ウォークスルーし、開発者が自分の IDE 内から操作をフォローできるように Live Share を使用できます。 Live Share では、"ゲスト" がプロジェクトを単独で操作 (例: ファイルを開く、Peek Definition を実行する) できるため、フォローするだけでなく、必要に応じて簡単な探索 ("えーと、この関数は何を行うのだろう?" など) を実行できます。

チーム ブラウン バッグ

チーム ブラウン バッグは、実質的にはピア メンタリングに似ていますが、チーム全体に提示され、オンボーディング サポートや特定のタスクの支援ではなく、一般的に有用な知識のソーシャル化に重点を置く可能性があります。

教室講義

講師が授業する際に、Live Share を使用して、単に画面を表示する代わりに、プロジェクトを学生と共有できます。 これにより、クラス全体が教師の操作をフォローしながら、自分でプロジェクトを操作することができます。 さらに、教師は、個々の学生に対して、授業の特定箇所 (例: "ここでは、どのメソッドを呼び出すべきですか?") を解くように求めることができます。これは、クラスの社会的側面で役立ち、学生は教室の前に進み出たり、さらには同じ部屋に物理的に存在したりする必要さえありません (例: オンライン コース)。

教室の設定を支援するために、Live Share は、読み取り専用モードでの共有を有効にします。 講師は読み取り専用モードを使用して、不必要に、あるいは誤って編集されるのではないかと気にすることなく、プロジェクトを学生と共有できます。

さらに、Live Share は、最大 30 人のゲストがコラボレーション セッションに参加できるように対応しています。 これにより、講師はクラス全体をセッションに参加させ、コードを一緒に参照できます。

この機能を有効にするには:

  • VS Code: "liveshare.increasedGuestLimit":"true" を settings.json に追加する。
  • VS: [ツール] > [オプション] > [Live Share] > [ゲスト制限の増加] を "True" に設定する

このシナリオで Live Share を完全に最適化するには、セッションの開始方法を簡略化する必要があります (#422)。

コード レビュー

PR は、他のユーザーと共同作業を行う強力な方法ですが、通常はタスクの完了 ("WIP" PR を除く) と、それをマージしたいという要望を表します。 多くの場合、PR で提供されるフィードバックは、もっと前に簡単に提供することができたはずです。そのため、タスクが "完了" するまで待つのではなく、チームが簡単かつ継続的に仲間にアドバイスを求めることは潜在的な価値があります。

Live Share では、プロジェクトを他のユーザーと即座に共有できるので、"非公式" のその場限りのコード レビューを実現し、支援を求める代わりに、意見だけを求めて、自分の方向性やアプローチを他の人と確実に一致させるのに使用できます。 これは、その後の PR の完了を早めるのに役立つ可能性があり、チーム全体の知識をソーシャル化するのに確実に役立ちます。

さらに、Live Share を使用すると任意のディレクトリを共有できるため、現在バージョン コントロールを使用していない (そうすべきですが!) 場合であっても、またはチームが PR を使用していない (例: トランクベースの開発を行っている) 場合も、コード レビューを実行できます。

Live Share では現在、ソース管理の差分を共有していません。これは、コード レビューに使用する際の重要なコンテキストです。 これはロードマップに入っています。優先順位に関するフィードバックは大歓迎です (投票 👍 はこちら)。

技術インタビュー

開発職応募者を面接する場合に、ホワイトボードを使うディスカッションよりも役立つことが多く、代わりに、応募者が実際の IDE (特に、チームや組織が、使用してほしいツールを "標準化" している場合) 内からコーディングの問題を解決する様子を観察できます。 これは、より自然で快適な方法で作業できるという利点があるだけでなく (ほとんどの開発者は、ホワイトボードでコーディングすることはありません!)、作業中に即座にフィードバックや支援を得ることができます (ビルド エラー、Intellisense など)。 多くの場合、正確な構文や API 名を記憶できる能力ではなく、応募者の思考課程を把握する方が重要です。 このように、Live Share を使用すると、ペア プログラミング セッションを実行するのと同様のエクスペリエンスが得られ、参加者は自分の環境 (アクセシビリティなどの OS 設定を含む) から参加でき、面接がローカルでもリモートでも同じように機能します。 Web からセッションに参加することで、応募者は、何もダウンロードせずにチームの開発環境とコード ベースを使用できます。

さらに、実際の開発はコードを記述するだけで終わりではありません。 Live Share はデバッグ、タスク、およびターミナルの共有にも対応しているので、面接官は応募者が問題を診断する様子を観察し、解決に必要な適切なツールを提供できます (デバッグのステップ実行、テストの実行など)。 すべてのコンテキストがホストのコンピューターからリモート処理されるため、応募者は、(Live Share をインストールする以外に) 自分のコンピューターをセットアップする必要はなく、"面接環境" にすばやく移動できます。 チームは、共有の面接アプリのリポジトリを維持 (または実際の製品コードベースを使用) でき、各面接の前にセッション URL を送信するだけで、複製して応募者と共有できます。

リモート ワーク

自宅の開発用コンピューターのツールチェーンを職場のものと同期させなくても、自宅で作業できます。 コード行を自宅ですばやく完成させます。職場でプッシュして、自宅でリポジトリを複製し、作業していた行を見つける必要はありません。 軽いノート PC から職場の重いコンピューターに接続します。

関連項目

問題が発生していますか? トラブルシューティングまたはフィードバックの送信に関するページをご覧ください。