ソフトウェア工学は脳科学に似ている
脳科学 | ソフトウェア工学 |
対象(脳)は常に変化している。 | 対象(プロジェクト)は常に変化している。 |
脳の現象は本質的に一回きりである。(同じ状態は再現できない。) | プロジェクトの進行はその場限りである。(同じプロジェクトは存在しない。) |
脳は物理的な結果を目的としない。(たとえば、思考に付随して発熱したりするが、それは目的ではない。) | ソフトウェア開発プロジェクトは物理的な成果を目的としない。(開発者や開発機器が物理的に移動したりするが、それは目的ではない。) |
脳の成果物は情報である。 | ソフトウェア開発プロジェクトの成果物は情報である。 |
脳の物理的な状態を観測しても、脳の処理状態は把握できない。 | ソフトウェア開発プロジェクトの物理的な状態(組織図・体制図・配置図など)を観測しても、プロジェクトのパフォーマンスは把握できない。 |
脳を調査するために、非現実的な環境(拘束・無音・閉室など)を用いて実験を行う。 | プロジェクトを調査するために、非現実的な環境(仕様が完全に決まる、割り込みがない、エゴがない、学生が作るなど)を用いて実験を行う。 |
実験結果は、統計としては正しいが、個別の事例にはあまり役に立たない。 | 実験結果は、統計としては正しいが、個別の事例にはあまり役に立たない。 |
過度なストレスによって性能が落ちる。 | 過度な要求によってパフォーマンスが落ちる。 |
個別に動作し、互いに情報交換する、ニューロンの集合体である。 | 個別に開発し、互いに依存する、開発者の集合体である。 |
脳は各部分で役割分担する。 | プロジェクトは各人で役割分担する。 |
脳の成長には適切な時機がある。 | プロジェクトの工程には適切な時機がある。 |
脳科学は「実験室で集めた静的なスナップショットをいくら集めても、脳の解明には至らない」という状況らしい。
しかるに、ソフトウェア工学も、実験室で積み上げた静的なスナップショットをいくら集めても、ソフトウェア開発プロジェクトの解明には至らないという気がする。