科学は観察によって事実を発見します。科学に限らず、学問は観察により普遍的な事実を見つけ出し、知識として蓄積していく知的活動と言えます。
一方で、物や仕組みの開発は、学問とは別の知的活動です。開発は、設計により新しい物や仕組みを作り出し、物質的な豊かさや技術的な進歩を実現します。
一般に、学問により蓄積された知識を、開発において利用するという関係にあります。
また、学問の一部には、工学のように開発において発見された知識を蓄積する分野もあります。こうした分野は実学と呼ばれ、科学のような基礎学問とは区別されることもあります。
このように、学問は観察による事実の発見、開発は設計による物や仕組みの発明、という形で、異なる知的活動を軸にしています。
一方で、学問の中においても、設計による発明という知的活動は存在します。
それがフレームワーク設計です。
科学におけるフレームワーク設計のわかりやすい例は、天動説と地動説です。
天動説と地動説は、どちらが事実であるかということを競う仮説ではありません。それは観察した事実をどのような考え方の枠組みに当てはめて捉えるかという選択肢です。
そして、それらは正しさでなく有用性に基づいてその価値を判断され、場面ごとに有用性に基づいて選択されます。
これはまさに観察による発見ではなく、設計による発明です。
また、ニュートン力学と相対性理論や量子力学も、フレームワーク設計の例です。これらも、正しさではなく有用性によって、場面ごとに使い分けをされる考え方の枠組みです。
これらはパラダイムシフトと呼ばれますが、全面的に考え方がシフトするわけではなく、有用な選択肢が増えたと捉える方が適切です。このため、パラダイム発明やパラダイムイノベーションと呼んだほうが適切かもしれません。
科学に限らず、様々な学問でも同様に、観察による発見ではなく、有用性の高い考え方の枠組みが新たに発明されることがあります。
このように整理すると、学問の中にも設計による発明という知的活動は非常に重要な位置を占めていることが理解できます。
スキルセットの違い
観察による発見と、設計による発明は、大きく異なる知的活動です。このため、それぞれ異なるスキルセットが必要とされます。
学問において大きなパラダイムイノベーションを引き起こした人たちは、この異なる2つのスキルセットを持っていたのでしょう。
一方で、多くの学者や研究者は、既に発明されたフレームワークの中で、観察による発見をするという知的活動が得意であれば、論文を書いて評価を得ることができます。
このため、必ずしも全ての学者や研究者が、設計による発明のスキルセットを持っているわけではありません。むしろ、設計による発明をする機会や、その重要性を学ぶ機会も多くはないでしょう。
このため、ほとんどの学者や研究者が観察による発見のスキルセットに偏っており、フレームワーク設計のスキルセットはあまり身につけていないとしても、不思議ではありません。
ソフトウェアエンジニア
一方で、開発を行うことを専門にしている人たちもいます。代表例は、開発を行う各種エンジニアです。
設計による発明のためのスキルセットは、多かれ少なかれ、それぞれの分野のエンジニアの必須スキルです。また、日々の開発業務の中でスキルが蓄積されていきます。
一方で、こうした設計スキルは、各分野の独自の専門性を必要とするスキルであり、ごく基本的な部分を除くと、他の分野に簡単に応用できるスキルではありません。
特に、学問におけるフレームワーク設計は、抽象的な概念をさらにメタレベルで組み替えて設計するという特殊な分野です。
このため、単に設計のスキルセットを持っていたとしても、それをフレームワーク設計に応用することはできません。
一方で、エンジニアの中でも、ソフトウェアエンジニアは特別です。ソフトウェアの設計において、まさに抽象的な概念をメタレベルで組み替えて設計することを日常的な業務として行っているためです。
このため、ソフトウェアエンジニアは、学問におけるフレームワーク設計を行うためのスキルセットを持っている可能性があります。
もちろん、学問のフレームワーク設計というような高度な応用ができるためには、抽象的な概念設計が得意でなければなりません。
かつ、日頃から新しい設計モデルを考える習慣がある人が適しているでしょう。