分散ソフトウェア開発におけるコミュニケーションは、グローバルに分散した開発プロセスでソフトウェア開発に適用した場合のコミュニケーションプロセスとその影響を考察する研究分野です。ソフトウェア開発におけるコミュニケーションと調整の重要性は広く研究されており[ 1 ]、組織コミュニケーションは組織レベルでこれらの影響を研究しています。これは、チームとチームメンバーが別々の物理的場所にいる場合にも当てはまります。距離が離れることでコミュニケーションに新たな課題が生じ、もはや対面プロセスではなくなり、勤務時間がわずかに重なるだけの反対のタイムゾーンにいるチームなど、他の制約も生じる可能性があります。
同じプロジェクトの要素が地理的に離れた場所で作業せざるを得ない理由はいくつかあり、同じ会社内の異なるチームからアウトソーシングやオフショアリングまで多岐にわたり、それぞれ異なる制約やコミュニケーション上のニーズが存在します。こうしたコミュニケーション上の課題が加わることで、通常は組み合わせて使用される、さまざまなコミュニケーション方法が採用されることになります。ビデオ会議のようにリアルタイムで行われる場合もあれば、メールのように非同期で行われる場合もあります。ビデオ会議は開発者がコミュニケーションに費やす時間をより効率的にできる可能性がありますが、チームが異なるタイムゾーンで作業している場合は実現が難しく、その場合はメールやメッセージングサービスの方がより有効かもしれません。
分散ソフトウェア開発におけるコミュニケーションの歴史は、分散開発そのものの歴史的背景と密接に結びついています。コミュニケーションツールは分散開発プロセスの発展に貢献しました。なぜなら、初期の分散ソフトウェア開発において、コミュニケーションは最も重要な要素として欠けていたからです。新しいツールの開発と分散開発を実用的な手法へと押し上げた主要因の一つは、開発者や研究者にとってアクセスしやすいプラットフォームとしてインターネットが導入されたことです。これにより、チーム内でのコードと情報の交換が容易になりました。
分散開発の最初の現れの 1 つはオープンソース コミュニティです。開発者は企業とそのリソースによってではなく、同じプロジェクトに自発的に参加することによって結びつき、地理的に異なる場所から多様なチームが生まれます。これらのプロジェクトでは、コミュニケーションとコラボレーション ツールの必要性が急激に高まっています。フリー ソフトウェアとオープンソース ソフトウェアの歴史を見ると、時間の経過とともにプロジェクトの複雑さと関係者の数が増加してきました。より優れたコミュニケーションとコラボレーション ツールは、この増加に重要な役割を果たしました。当初、利用可能な方法は、電子メールやメーリング リストなどの非同期型のコミュニケーション形式、あるいは定期的な印刷物に頼って情報を広めることでした。同期型のコミュニケーションは、主に電話に限られていました。
この初期段階では、企業環境におけるこのような分散開発の事例はまだ多くありません。しかし、過去数年間の開発とツールは、企業がメリットを得られる場合に、これらの手法を検討し採用するための必要な手段を先導してきました。音声会議やインスタントメッセージングなどのツールは、主に他の目的で登場しましたが、すぐに採用され、分散開発の概念をさらに推進しました。この新たな動きは、分散ソフトウェア開発におけるコミュニケーションという研究分野への関心を生み出し、開発プロセスの有効性と品質をさらに向上させることにつながりました。
一般的に、ソフトウェア開発には大量の情報交換が必要であり[ 2 ]、研究によると、開発者の時間の大部分は共同作業やコミュニケーション活動に費やされている。[ 3 ]正式なコミュニケーションは、プロジェクトの状況を更新したり、特定の作業の責任者を決定したりするなどの重要なタスクに使用されるが、非公式なコミュニケーションも開発プロセスにとって重要である。[ 4 ]非公式なコミュニケーション、いわゆる「廊下での会話」は、開発者が周囲の状況、他の従業員が何に取り組んでいるか、どの分野に誰が専門知識を持っているか、その他多くの重要な背景情報を把握するのに役立ち、効率的に協力して「チームの精神」を生み出すことを可能にする。[ 4 ]また、研究によると、プロジェクトの不確実性が高いほど、この種のコミュニケーションの重要性が高まる。[ 1 ]
グローバルソフトウェアエンジニアリング(GSE)環境では、非公式なコミュニケーションを再現することは困難です。この種のコミュニケーションの欠如は、予期せぬ事態を引き起こし、認識のずれや手戻りにつながる可能性があります。[ 4 ]このため、分散ソフトウェア開発におけるコミュニケーションは、GSE を適用しているすべての企業にとって重要です。この研究分野では、とりわけ、GSE 環境特有の開発速度の低下なしにソフトウェアを開発するために、GSE 環境で非公式なコミュニケーションを再現しようとしています。 [ 5 ]
コミュニケーションは、社会文化的、言語的、知識的、地理的、時間的障壁など、いくつかの障壁によって妨げられる可能性がある。[ 6 ]
社会文化的障壁は、コミュニケーション手段という形で現れることがあります。実際、ある研究によると、米国と日本の顧客はコミュニケーション手段に関して明確な好みの違いがあることが示されています。米国の顧客は非公式な電話や電子メールによる頻繁なコミュニケーションを好むのに対し、日本の顧客は口頭でのコミュニケーションを好み、電子メディアの使用頻度は低いものの、より正式なコミュニケーションを好みます。[ 7 ]
言語の壁は、会話の参加者の少なくとも一方が母語を話していない場合に顕著に現れます。母語でより良く自己表現できるべきであるという事実以外にも、他の障害が存在します。慣用表現やスラングは、非公式なコミュニケーションを困難にする障害の一例です。
アレンの曲線によれば、エンジニア間のコミュニケーション頻度は、距離が離れるにつれて指数関数的に減少します。社内の同僚の場合、コミュニケーションは同僚同士の偶然の出会いによって始まることが多いです。後者の間に大きな距離があると、コミュニケーションは減少します。実際、ローカルサイトとリモートサイトの同僚間のコミュニケーション頻度を比較した実証研究が行われました。調査対象者のほとんどは、ローカルの同僚の大多数とは少なくとも1日に1回は話すが、リモートの同僚とは週に1回未満しか話さないと回答しました。[ 5 ]
時間的障壁は地理的障壁と密接に関連しています。時間的障壁は通常、2人以上の同僚が異なるタイムゾーンにいて、多くの場合、地理的にも異なる場所にいる状況で発生します。開発者は主に勤務時間中にコミュニケーションを取りますが、勤務時間が重なる必要のない非同期通信を使用することもできますが、必然的にコミュニケーションプロセスが遅延します。 [ 8 ]代替手段として、リアルタイムでコミュニケーションを取る必要がある場合は同期通信を使用できますが、勤務時間が重なる場所を見つけるという複雑さが生じます。フォロー・ザ・サンは、ソフトウェア企業が後者の問題を軽減するために採用する一般的なアプローチです。
分散ソフトウェア開発におけるコミュニケーションに関する研究は、さまざまなコミュニケーション方法が開発プロセスと最終製品の成功に及ぼす影響についての理解を深めるために実施される。
コミュニケーションは、ソフトウェア開発プロジェクトを調整し、チームメンバー間で知識を共有する上で不可欠なプロセスです。以前の研究[ 9 ] [ 10 ]では、知識の共有は信頼を築き、チーム全体のパフォーマンスを向上させるために重要であり、これは分散ソフトウェア開発プロセスにも当てはまると主張しています。
また、前述のセクションで述べたように、不適切な対処をするとチームプロジェクトの遅延や会社への金銭的損失につながる可能性のある課題も生じる。多くの研究がこれらの問題を軽減し、誤解を避ける方法を見つけようとしている。[ 11 ]
コミュニケーションに使用されるツールは、いくつかの研究の対象範囲に含まれています。これらの研究では、さまざまな種類のツールの利点と欠点、および開発者が特定の状況で好んで使用するツールの種類が示されています。[ 12 ] [ 13 ]
研究者がグローバルに分散した開発がプロジェクトの成功にどのように影響するかに関心を持っていることは、[ 11 ]などの出版物で指摘されており、著者は、この主題に関するより多くの実証研究の必要性を述べています。別の研究[ 14 ]では、タイムゾーンと言語の壁の間のより直接的な関係を見つけようとしましたが、有意な結果は得られませんでした。著者が示唆するように、これはサンプルサイズが小さいことが原因かもしれません。しかし、[ 5 ]では、分散開発と共同作業者間の応答時間の延長の間には確かに関係があることが示されています。また、アレン曲線のように、コミュニケーションの頻度と地理的距離を相関させる研究もあります。
これまでの研究結果は、企業が使用する手法やツールを改善する必要性、そしてコミュニケーションが企業の成功における大きな要因であることを示唆している。
コラボレーション環境におけるコミュニケーションは、エージェント同士の相互作用の仕方によって、同期または非同期のいずれかで実現できます。さまざまなコミュニケーション形式は、サポートされるコミュニケーションの種類に応じて類似のコミュニケーションシステムとツールを生み出し、分散開発環境ではそれぞれ異なる目的を果たします。企業内でも、さまざまなメンバーのタスクと責任は、作業環境で使用されるツールの使用方法に反映されます。[ 15 ]
同期システムでは、参加者は情報を「リアルタイム」で同時に送受信し、メッセージの送信後、通常は短時間で応答が返されます。このタイプの通信は、相手がすぐに対応できる場合や、より非公式な直接的なコミュニケーションなど、即時の応答が求められる場合に使用されます。企業内では、質問への迅速な回答、アイデアの議論、注意を要する重要な進展状況の伝達、その他重要なメッセージの伝達などに利用できます。
非同期システムは、メッセージの送信と受信のためのメカニズムを提供します。送信者は好きな時に情報を送信でき、受信者は都合の良い時に受信して返信します。この形式のコミュニケーションは、緊急性の低い事柄について議論したり情報を伝えたりするのに利用できます。なぜなら、すぐに返信が来る保証はないからです。特に分散開発プロセスでは、プロジェクトに取り組む複数のチームが同時に作業するわけではないため、緊急性の低い事柄を非同期的に議論できることから、この方式は有効です。
また、通信の柔軟性を高めるために、同じ環境内で両方の通信形式を提供するシステムという別のアプローチも考えられます。このようなシステムはハイブリッドシステムと呼ばれ、交換されるメッセージは通常非同期メッセージの特性を持ちますが、同時に同期通信の形式としても利用できるように設計されています。つまり、非同期通信と同期通信の中間的な位置づけにあるシステムと言えるでしょう。
グローバルに分散したソフトウェアエンジニアリングのためのコミュニケーションツールは、使用されるコミュニケーション形式、ユーザーに提供されるインターフェースなどによって異なるさまざまな種類があります。また、異なるカテゴリでは、コミュニケーションを改善するために異なる感覚情報を使用する場合があります。利用可能なツールには、インスタントメッセージ、電子メール、音声およびビデオ会議、仮想オフィス、仮想現実などがあります。このセクションでは、さまざまな種類のツールの概要と、現在使用されているいくつかの一般的な例を示しますが、利用可能なツールの完全な収集とリストではありません。より完全なリストは、他のリソースで見つけることができます。[ 16 ]
電子メールは、コンピューター、携帯電話、その他の電子機器などのデジタル機器を使用して、人々の間でデジタルメッセージを交換するための手段です。ほとんどのインスタントメッセージングツールとは異なり、電子メールでは、ユーザーもコンピューターも同時にオンラインである必要はありません。企業における電子メールの利用コストは、例えば企業が独自のメールサーバーを所有している場合など、状況によって異なります。
実証研究では、ソフトウェア開発チームのすべてのチームメンバーがこのツールを効果的に使用したことが実証されています。インスタントメッセージとは異なり、電子メールメッセージはより独立しており、コミュニケーションのコンテキストにあまり影響されないことを意図しているため、電子メールメッセージの作成には従来のIMメッセージよりも時間がかかります。[ 12 ]
メールプロバイダーには、Gmail、Outlook.com、ProtonMailなどがあります。
音声会議とビデオ会議は、異なる場所にいるユーザーが音声とビデオ信号を受信および送信して、人々がリアルタイムでコミュニケーションをとるための技術です。これらのタイプのツールは、対面会議に存在する豊かな相互作用を再現しようとします。[ 13 ]ビデオ会議のような豊かな同期通信技術は、参加者間の理解度や同意度をボディランゲージやイントネーションで伝えることができる、高度にインタラクティブな議論に適しています。[ 17 ]
ビデオ会議は、チームメンバーが個人的な関係を築くことができるため、グローバルなソフトウェア開発者間の信頼関係を構築する良い方法でもあります。[ 18 ]
調査員は、英語力に自信のないチームメンバーは、音声会議やビデオ会議よりも電子メールやインスタントメッセージングを好むことを発見した。テキストベースのメディアは、理解して返信を作成するための時間を十分に確保できるためである。[ 19 ] これは、テキストベースのメディアは音声や視覚的な機能を使用しないため、重要な情報の理解を妨げ、誤解を招く可能性があるため問題となる。
Zoom、GoToMeeting、Highfiveなどは、こうしたタイプのツールの例です。
バーチャルオフィスは、グローバルに分散したソフトウェアエンジニアリング環境においてチームが必要とする、物理的なオフィスの持つ個人的な近さと機能性を再現します。「チャネル」や「メッセージスレッド」の代わりに、バーチャルオフィスには仮想オフィス空間上の部屋が用意されています。
1970年代後半、トーマス・J・アレン教授は、エンジニア間の距離が離れるほど、彼らの間のコミュニケーション頻度が指数関数的に減少することを発見した。[ 20 ]バーチャルオフィスは、彼らの間のコミュニケーションを増やすために、その距離を仮想的に縮める方法である。
さらに、他の研究[ 21 ]では、バーチャルオフィスが仕事の調整を容易にし、チームのパフォーマンスを向上させることが示されている。
このサブセットに属するツールには、Sococo、8x8、Skype for Businessなどがあります。
バーチャルリアリティは近年ますます注目を集めている。2015年には1億2900万ドルだった市場規模は、 2016年末までに10億ドルを超えた。2018年末までに46億ドルに達すると予測されている。 [ 22 ]
コミュニケーション行為において交換される内容は、行為者が関わる状況の解釈に過ぎない。そして、その解釈は文脈に依存する。仮想現実をコミュニケーションツールとして利用する動機は、文脈の認識は利用可能な感覚情報に比例するという前提に基づいている。
仮想現実を用いたコミュニケーション環境では、参加者それぞれが感覚的に没入した状態になります。これにより、参加者が置かれている状況に対する認識が向上し、結果としてコミュニケーション体験そのものが向上します。
この概念自体は新しいものではないが、技術が本格的に開発され始めたのは2010年になってからのことである。
AltspaceVRは、最近コミュニケーションツールとして利用された仮想現実プラットフォームの一例である。
インスタントメッセージング(IM)は、2人または「チャットルーム」の場合はそれ以上の人数でメッセージを送信することを可能にします。同期または非同期で、侵入性の低いコミュニケーションタイプと考えられています。[ 23 ]研究によると、開発者はこの種のツールを使用して同僚や上司に簡単な質問をすることを好みます。[ 12 ]
WhatsApp、Facebook Messenger、HipChatなどが、この種のツールの例です。
アジャイルソフトウェア開発と分散ソフトウェア開発を組み合わせると、チームコミュニケーションに多くの課題が生じます。[ 24 ]一方で、アジャイルソフトウェア開発では非公式なコミュニケーションの増加が求められ、ドキュメントなどの公式なコミュニケーションが不足します。[ 25 ]他方で、分散ソフトウェア開発ではコミュニケーションの開始が難しくなり、誤解が生じる可能性があり、前述の課題で説明したようにコミュニケーションコスト(時間、費用など)が増加し、コミュニケーションの頻度が低下する可能性があります。[ 5 ] [ 26 ]このため、分散アジャイルソフトウェア開発において提示された研究分野は非常に重要です。その中核となる原則の1つは、個人間の関係と相互作用を強調し、継続的なコミュニケーションを伴います。[ 27 ]
エクストリームプログラミング(XP)は、すべての開発者が同じ場所にいる環境向けに設計されていますが、[ 28 ]分散ソフトウェア開発ではそうではありません。さらに、XPは利害関係者と開発者間の継続的なコミュニケーションに大きく依存しており、コミュニケーションはXPの5つのコアバリューの1つとなっています。[ 29 ]したがって、分散環境でのコミュニケーションはXP開発環境にとって非常に重要であり[ 30 ]、この方法論を分散環境に適用する際には考慮する必要があります。