全1272文字

 「メタ思考」とは、物事を一つ上の視点から眺め、物事をより本質的に考えることです。例えば、「障害Aの原因はXである」という命題に直面した場合、「原因Xの対策を考えよう」と行動を取るのが一般的ですが、メタ思考の場合は、「障害Aの原因がXであるのは、何を根拠にしているのか」というふうに、根本原因にさかのぼって考えます。要するに、目の前にある事象や事柄をうのみにするのではなく、目線を変えて、深く考えるという思考法です。

 ITの現場でも、メタ思考が有効に働くシーンがよくあります。ユーザーから「ある機能を追加してほしい」と依頼され、言われるままに機能追加した揚げ句、「やはり、その機能は必要なかった。既存機能で代替できた」という話はよくあります。このようなとき、「この機能は何のために必要なのだろう。ユーザーがこの機能を必要とする根拠は何だろう」と考えていれば、その機能の必要性を吟味した上で、「ご依頼の機能は、現状でもこのような使い方で実現できます」と回答できたはずです。このケースは、メタ思考ができていれば無駄な開発を回避できていた典型的な事例です。

 では、設計という局面でメタ思考をどのように使うべきでしょうか。実は、これまでに述べてきた六つのテーマに、エッセンスが盛り込まれていました(図1)。

図1●メタ思考とは
図1●メタ思考とは
[画像のクリックで拡大表示]

 「プログラミング言語」においては、単に言語を覚えるのではなく、言語の特徴を理解することが重要であると述べました。「ソフトウエア部品」については、その特性を理解した上で、どのような目的で利用するのかを考える重要性を示しました。