Home

公開日

Slackのやり取りでチームの弱点が見える? 開発チームのための社会ネットワーク分析

img of Slackのやり取りでチームの弱点が見える? 開発チームのための社会ネットワーク分析

ソフトウェア開発の現場では、チームメンバー間の円滑なコミュニケーションがプロジェクトの成功を左右する重要な要素です。しかし、現実にはコミュニケーション不足や偏りが生じやすく、開発の遅延、品質低下、さらにはメンバーのモチベーション低下といった問題を引き起こすことがあります。

本記事では、カンタベリー大学の研究チームが発表した論文「Improving Software Engineering Team Communication Through Stronger Social Networks」(arXiv:2502.01923v1 [cs.SE] 4 Feb 2025)を参考に、社会ネットワーク分析という手法を用いて、エンジニアチームのコミュニケーションを改善する方法について解説します。

社会ネットワーク分析とは?:開発現場での活用で何が見える?

社会ネットワーク分析とは、個人や組織間の関係性をネットワーク構造(繋がり)として捉え、その構造やパターンを分析する手法です。ソフトウェア開発においては、

  • 開発者間のコミュニケーション
  • コードの依存関係
  • バグの発生状況

などをネットワークとして表現します。これにより、チームの課題や改善点を可視化し、具体的な対策を講じることが可能になります。

例えば、以下のような疑問に対する答えをデータに基づいて導き出せます。

  • 特定の人にコミュニケーションが集中していないか?
  • コードのどの部分で頻繁に修正が行われているか?
  • バグが特定のモジュールに集中していないか?
  • チーム内の連携がうまくいっているか?

Triad Census:関係性のパターンからチームの”今”を知る

Triad Census (三者関係分析) は、社会ネットワーク分析における基本的な分析手法の一つです。チーム内の3人のメンバーの関係性に着目し、そのパターンを分析することで、チーム全体のコミュニケーション構造を把握します。

Triadは、3つのノード(メンバー)間のエッジ(関係性)の数によって、以下の4つのタイプに分類されます。

  • 0エッジ: 3者間に関係性がない状態
  • 1エッジ: 3者のうち2者間に関係性がある状態
  • 2エッジ: 3者のうち2組のペアに関係性がある状態
  • 3エッジ: 3者間全てに関係性がある状態

無向グラフにおける4種類のTriadの例

例えば、1エッジのTriadが多いチームは、一部のメンバーにコミュニケーションが集中している、あるいは、メンバーが孤立している可能性があります。一方、3エッジのTriadが多いチームは、メンバー間の連携が取れていると考えられます。

Socio-Technical Congruence:「必要なコミュニケーション」は足りているか?

Socio-Technical Congruence (STC: 社会技術的整合性) は、ソフトウェア開発における技術的な依存関係と、開発者間の実際のコミュニケーションの整合性を評価する指標です。

例えば、2人の開発者が同じファイルや依存関係のあるファイルを頻繁に修正している場合、その2人の間には密なコミュニケーションが必要であると考えられます。STCは、このような「コミュニケーションの必要性」と「実際のコミュニケーション」を比較し、そのギャップを数値化します。

STCが高いほど、技術的な依存関係に応じたコミュニケーションが取れていることを示し、低いほど、コミュニケーション不足や非効率なコミュニケーションが発生している可能性があります。

実際のチームで検証:カンタベリー大学の研究から見えたこと

カンタベリー大学の研究チームは、同大学のソフトウェアエンジニアリングのコース(SENG302)を受講する学生チームを対象に、Triad CensusとSTCを用いた研究を行いました。

  • 研究対象: SENG302コースのチーム(6-8名, 10チーム)
  • データ収集:
    • Slackのメッセージデータ(チーム内のコミュニケーション)
    • GitLabのコード貢献とマージリクエストデータ(技術的な依存関係)
    • Scrumboardの作業ログとピアフィードバックデータ(チームの活動状況とメンバーの評価)
  • 分析方法:
    • Triad Census: 各Sprint期間におけるチーム内のTriadパターンを分析
    • STC: 各週におけるチームのSTCスコアを算出
    • 相関分析: Triad Census, STCの各指標と、チームのSprint結果(ストーリーポイント達成率、評価スコア)との関係性を分析

STC算出のプロセス STC算出のプロセス

Triad Censusはチームの未来を予測できるか?:研究結果

研究の結果、以下のことが明らかになりました。

  • Triad Censusとチームパフォーマンス:
    • 各SprintにおけるTriad Censusの指標(特に1エッジのTriadの割合)と、チームの評価スコアとの間に、有意な負の相関が見られました。つまり、1エッジのTriadが多いチームほど、評価スコアが低い傾向にあることが示唆されました。
    • 特定の傾向を示したチーム(異常値)を除外すると、1エッジのTriadの割合とストーリーポイント達成率の間に有意な負の相関、3エッジのTriadの割合とストーリーポイント達成率の間に有意な正の相関が確認されました。つまり、1エッジの関係が多いほど達成率が低く、3エッジが多いほど達成率が高い傾向にあることを示します。
  • STCとチームパフォーマンス:
    • チーム全体の平均STCスコアと、チームパフォーマンスとの間には、明確な相関は見られませんでした。

各チームの週ごとの平均STCスコアの推移

  • コミュニケーションの”質”とパフォーマンス:
    • Sprintごとのピアフィードバックにおけるコミュニケーションの評価と、ストーリーポイント達成率との間に、有意な正の相関が見られました。つまり、メンバーがお互いのコミュニケーションを高く評価しているチームほど、成果も高い傾向にあることが示されました。

TriadタイプとSprintパフォーマンスの相関係数 (* p < .05)

Triadタイプストーリーポイント達成率チームスコア
0エッジ0.02-0.01
1エッジ-0.22-0.30*
2エッジ-0.01-0.04
3エッジ0.120.19

週ごとの平均相対Triadタイプ頻度とSprintパフォーマンスの相関係数

Triadタイプストーリーポイント達成率チームスコア
0エッジ-0.20-0.23
1エッジ0.130.25
2エッジ0.100.08
3エッジ0.280.20

考察:研究から得られたヒントとチームへのアドバイス

この研究から、以下のことが示唆されます。

  • Triad Censusの可能性: Triad Censusは、チームのコミュニケーションパターンを把握し、パフォーマンスをある程度予測できる可能性を秘めています。特に、1エッジのTriadが多いチームは要注意です。
  • STCの今後の課題: STCは、単独の指標としてはチームパフォーマンスを予測するには不十分である可能性があります。しかし、他の指標と組み合わせることで、より深い洞察が得られるかもしれません。
  • チームへの具体的なアドバイス:
    • 全員参加のコミュニケーションを促進: 定期的なミーティングや進捗報告会で、全員が発言できる機会を設けることが重要です。
    • ペアプログラミング、モブプログラミングの導入を検討: 知識やスキルの共有を促進し、相互理解を深める効果が期待できます。
    • コミュニケーションツールの活用: チャットツールなどを活用し、気軽に質問や相談ができる環境を整えましょう。
    • チームビルディングの実施: チームの結束力を高めるための活動(例:懇親会、交流会)も有効です。

まとめ:社会ネットワーク分析で、チームはもっと強くなれる

本記事では、カンタベリー大学の研究チームの論文を参考に、社会ネットワーク分析(Triad Census, STC)を用いたエンジニアチームのコミュニケーション改善について解説しました。

研究の結果、Triad Censusはチームパフォーマンスを予測する上で有用な指標となりうることが示唆されました。STCについては、今後の研究に期待が高まります。

エンジニアチームのメンバー、そしてチームを率いるリーダーやマネージャーの皆様、社会ネットワーク分析を、より良いチームづくりのためのツールとして活用してみてはいかがでしょうか。


開発生産性やチームビルディングにお困りですか? 弊社のサービス は、開発チームが抱える課題を解決し、生産性と幸福度を向上させるための様々なソリューションを提供しています。ぜひお気軽にご相談ください!

参考資料: