エンピリカルソフトウェア工学をチケット駆動開発がサポートする
エンピリカルソフトウェア工学(実証的ソフトウェア工学)に関する記事を見つけたのでメモ。
【元ネタ】
「少人数のチームの方がソフトウェアの品質は高い」実証的ソフトウェア工学の研究会が開催 - Publickey
少人数のチームの方がソフトウェアの品質は高い - 思考のスキマ
【参考】
ソフトウェア・リポジトリ・マイニング~Web2.0をソフトウェア工学に応用する: プログラマの思索
BTSをBusiness Intelligenceとして使う: プログラマの思索
アジャイル開発の弱点をプロジェクト管理サーバーが助ける: プログラマの思索
チケット駆動開発が進むべき道part2~プロジェクト管理サーバーは開発チームの資産: プログラマの思索
エンピリカルソフトウェア工学は、ソフトウェア工学を科学実験のように実証的に確かめていく分野の学問。
「データ指向のソフトウェア工学」の特徴を持つ。
普通は、BTSにある障害報告票やSCMにあるソース履歴から、開発組織の構造(プロセスも含む)がソフトウェアにどう影響するのか、を探る学問。
僕のイメージでは、エンピリカルソフトウェア工学は社会科学のように、ソフトウェア開発に従事する組織や人を分析する学問であり、コンピュータサイエンスや物理学、数学のような科学ではないと思っている。
ソフトウェア工学の中では、ブルックスの人月の神話が最も知られている経験則の一つ。
「少人数のチームの方がソフトウェアの品質は高い」実証的ソフトウェア工学の研究会が開催 - Publickeyが面白いと思ったのは、「少人数のチームの方がソフトウェアの品質は高い」「組織構造の縦方向が短い方がソフトウェア品質がいい」という指摘をしたこと。
ソフトウェアをチームで開発する経験を持った人なら、その事実は当たり前に思うだろう。
大規模プロジェクトになり、開発チームが複数になるほど、コミュニケーションコストが大きくなる。
それ以上にマネジメントコストやアーキテクチャの整合性を取るためのコスト、システム全体の品質を確保するコストが指数関数的に肥大化していく。
「結果、エンジニア同士の距離がどれくらい離れると、どれくらいバグが増えるかは、ビルが異なると2.6%増加、カフェテリアが異なると3.9%増加、キャンパスが異なると6.3%増加、地域が異なると8.3%増加、大陸が異なると -3.9%となった。」という事実はとても興味深い。
だがその経験則に逆らうようなソフトウェア開発が増えているのが事実。
典型的な例がオフショア開発。
日本のSIなら、中国などの人月が安い外国へ下流工程の開発を委託するビジネスになる。
大規模プロジェクトを自社開発で内製化していても、開発メンバーが部屋やビルで隔離されていれば、心理的にはオフショア開発と変わらない。
分散開発は本来コミュニケーションコストが大きい。
そういう経験則に逆らってソフトウェア開発を成功させるには、顔を見ながらのミーティングが出来る環境作り、ブリッジSEだけでなく委託先の開発者もプロジェクトの最初は一緒に仕事するなど、心理的な距離を縮める努力が必要、とのこと。
個人的には、プロジェクトファシリテーションが分散開発におけるコミュニケーションについて、もっと役立つプラクティスを提供してくれるといいのに、と思っている。
又、チケット駆動開発がエンピリカルソフトウェア工学をサポートする可能性を秘めていると思っている。
チケット駆動開発は本来BTSというツールを使うことから始まったし、進捗や品質に関するメトリクスをいくらでも好きなように加工して出力できる。
ガントチャートやカレンダー、ロードマップ、バグ収束曲線などは、開発の現状に合わせてリアルタイムに最新化する仕組みをツールでサポートすればいいだけ。
何よりも、開発者が「チケットファースト」「No Ticket, No Commit」の運用ルールを守ってくれれば、バックグラウンドでメトリクスの元ネタを収集してくれるので、メトリクス採取のコストは劇的に下がる。
この手法は、Mixiの足跡機能やGoogleのPageRank、Amazonのレコメンドエンジンのように、クローラーのような機能で緩やかにログを採取して、価値ある情報を加工して出力する機能が簡単に実装できるようになったからこそ生まれた。
つまり、いわゆるBI(ビジネスインテリジェンス)をプロジェクト運営の意思決定に役立てることができるはず。
そして、BIで得られた情報を実際に運用してみて役立ったならば、一つのノウハウとしてチームが学習する。
この際に、KPTによるふりかえりは特に有効だ。
学習したノウハウはKeepとして貯められて、チームの資産になる。
Keepとして貯められた独自のノウハウが多いチームや組織ほど、自分たちで開発現場を改善する能力を拡張していける。
これがいわゆる、アジャイル開発で言う自己組織化ではないか、と直感している。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- Redmineのブロッキング機能はどこで使うのか?~FF関係で使うべきだ!(2026.08.10)
- 製造業でアジャイルが定着しない理由~スプリント不在とチケット二重管理の壁 #Redmine(2026.07.18)
- Redmine利用成熟度モデルによる運用戦略(2026.07.12)
- なぜCCPMは挫折する?経営者の理想と現場の挫折をLycheeRedmineが解決する #redmine(2026.06.30)
- 製造業DXを支える工程管理とは?Redmineの大規模プロジェクト階層化における課題:プロジェクトツリーの設定継承と関連チケット制限の壁(2026.06.27)
「ソフトウェア工学」カテゴリの記事
- チケット駆動でAIを制御する仕組みのアイデア(2026.08.13)
- 脱PDCA!DXを加速する超高速戦略「KillChain」(2026.08.10)
- Redmineのブロッキング機能はどこで使うのか?~FF関係で使うべきだ!(2026.08.10)
- AIエージェントのハルシネーションは「チケット駆動」で防ぐ~次世代アジャイル開発の実践論(2026.08.04)
- AIが設計も思考も代替する時代ではエンジニアはモデルを理解するだけの存在なのか?(2026.07.25)
「プロジェクトファシリテーション」カテゴリの記事
- 組織変革の鍵を「聞く」体験から探る(2026.06.14)
- PM理論で読み解く日本人リーダーの弱点(2026.05.12)
- astahでPJ管理もプロセス設計もアイデア発想も全て表現したい(2025.10.25)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 「世界を動かすプロジェクトマネジメントの教科書」の概念図(2022.01.16)
「構成管理・Git」カテゴリの記事
- PLMツールとは部品表の構成管理ツールでありGitHubである(2026.03.08)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
「チケット駆動開発」カテゴリの記事
- チケット駆動でAIを制御する仕組みのアイデア(2026.08.13)
- Redmineのブロッキング機能はどこで使うのか?~FF関係で使うべきだ!(2026.08.10)
- AIエージェントのハルシネーションは「チケット駆動」で防ぐ~次世代アジャイル開発の実践論(2026.08.04)
- 製造業でアジャイルが定着しない理由~スプリント不在とチケット二重管理の壁 #Redmine(2026.07.18)
- Redmineはチェンジマネジメントのツールであるべきだ(2026.07.13)
「Agile」カテゴリの記事
- チケット駆動でAIを制御する仕組みのアイデア(2026.08.13)
- アジャイル開発を強化するキルチェーン進化の歴史~VUCA時代におけるモノづくりの新アーキテクチャ(2026.08.11)
- 脱PDCA!DXを加速する超高速戦略「KillChain」(2026.08.10)
- AIエージェントのハルシネーションは「チケット駆動」で防ぐ~次世代アジャイル開発の実践論(2026.08.04)
- AIが設計も思考も代替する時代ではエンジニアはモデルを理解するだけの存在なのか?(2026.07.25)


コメント