Category:銀の弾丸 2005-07-03

コンセプチャルスキル

前回の「ソフトウエアエンジニアにとって必要なスキル」の続きです。 今回は、コンセプチャルスキルについて話します。コンセプチャルスキルとは「概念を形成する能力」の事です。

まずは概念についての話から始めます。

言葉には、実体を表すものと概念を表すものがあります。実体は目に見えますが、概念は目に見えません。 人間は同じ言葉でもこの2つを巧妙に使い分けています。例えば、「犬が吠える」の「犬」は、特定の犬を指し ます。しかし「犬は吠える」の「犬」は、特定の犬ではなく一般的な「犬」の事、即ち「犬」の概念についての事を言っています。個々の犬は目に見えますが、「犬」と言う概念は見えません。しかし「犬」と言う概念は、「ワンワンと吠える動物」というように言葉で表現する事ができます。このように、概念とは「言葉によって表される物事の本質」の事です。話を少し脱線させます。

  • (A)「犬が吠える」
  • (B)「犬は吠える」

ここで使われている「が」と「は」ですが、「が」は未知なものを「は」は既知なものを言う時に 使われるそうです(確か「日本語練習帳」を書いた大野晋さんの本で読んだ記憶があります)。 (A)の場合は、「吠えているのは何か(未知)というと、それは犬である」という個々の実体の現象を言っています。(B)の場合は、「犬というもの(既知)は吠える」という物事の一般的な性質(概念)について言っています。このように日本語では、実体と概念を区別する用法(文法)があるのです。「犬は吠える」の例を聞いて「どこかで聞いたような・・・」と思われたに違いありません。この話はオブジェクト指向の話と同じだからです。「実体と概念」の関係は「インスタンスとクラス」の関係に良く似ています。

コンセプチャルスキル(概念形成能力)とは「言葉によりその本質を表現する能力」を言います。巷では、コンセプチャルスキルの応用的側面がよく取り上げられています。例えば、論理的思考、多面考察力、計画立案能力、問題解決能力などです。しかしここでは、純粋に「概念を理解または創造する能力」をコンセプチャルスキルと呼ぶ事にします。

ソフトウエアエンジニアは過去に2度大きなパラダイムシフトに出くわしました。それは「構造化コンセプト」と「オブジェクト指向」です。このようなパラダイムシフトが起こった時に、迅速に対応できる能力こそがコンセプチャルスキルなのです。ある日突然、聞いた事もない技術用語を目にしたらどうでしょう。しかもその用語の解説書は枕のように分厚いのです。普段から物事の本質を捉え、抽象度の高い言葉に慣れておかないとパラダイムシフトは乗り切れません。

コンセプチャルスキルが必要な場合のもっと身近な例は、システム設計です。システム設計とは、システムの本質を見極め、システム上の概念を整理して行く事です。整理された概念はシステム設計の中でモデルとして表現されます。システムの「複雑さ」は、偶発的なものと本質的なものに分かれます。両者を整理する事により、見かけの複雑さはなくなり、本当に複雑なものだけが残ります(システム設計とは絡まった糸を解くのと同じです)。従って、一見複雑な挙動でも、システム上の概念を整理しモデル化すれば、その挙動を上手く説明する事ができます。一方、複雑な挙動を複雑なままで放置しておくエンジニアもいます。このようなエンジニアは実体だけを見ており、概念を見ていないのです。概念は目には見えないと言いましたが、腕のいいエンジニアには何かが見えているのです。


最終更新のRSS Last-modified: Wed, 12 May 2010 08:57:17 JST (2934d)