参考文献によると「技術」と「スキル」にはそれぞれの下記のような定義があるとされている。

  • 技術:要求に対する結果を導くために、経済原則(コスト条件など)を満足するように手順化・体系化された再現可能な工程(プロセス)
  • スキル:要求に対する結果を導く技術全体あるいは技術の一部(サブ工程)を実行する個人の作業遂行能力

この定義では、技術が特定の個人に依存せず誰にでも再現可能であることに対してスキルが特定の個人に紐づく作業能力を指している点に特徴がある。「技術」は「組織・集団」に紐づくものであり、「スキル」は「個人」に紐づくものであるといえる。「技術」「スキル」の言葉の選び方はいくつかあるにしても、あるモノを個人に依存する部分と依存しない部分に分けて区別することは論理的にありえる操作で、マクロに見れば「技術」と「スキル」を区別することには納得がいく。ところが、いざ個別の技術を見てみた場合はどうだろうか。技術や開発事例を各自で一つ頭に思い浮かべたときに、それは個人に依存する部分と個人に依存しない部分に分けて明確に区別できるだろうか。

結論としては、もちろんできない。技術とスキルは常に表裏一体セットでそこにあるもので片方だけ存在することがない。ある粒度まで掘り下げれば属人性の度合いを0か100で識別できないことにより、明確な区別は不可能ということになる。本稿では具体的になぜ区別が難しくなるのかという点を言語化し、特にソフトウェアにおける特色について論じる。

手順化・体系化

元の定義における言葉を借りると、「手順化・体系化」の完了度合はそれを実施する組織・集団に属する個人のスキルに間接的に依存している。「手順化・体系化」の方法として、例えば手順書の作成や、それをより平易なものとするための多種多様な工夫がある。第2次産業のイメージを出すと、各工程の作業実施要領やその実施要領を誰でもできるようにするための補助治具などがそれぞれ例にあたる。これ以外にも、ある組織・集団のなかである行程を再現可能とするためには手順書に固執せずともよい。

ある個人が何かを出来るに至るために必要な手順や工夫にはばらつきがあるためどうしてもあいまいな部分が存在する。ここまでは特にソフトウェアに限らない話であり、ある組織・団体が「技術」を保有するためには、一定以上の「スキル」のある個人をその組織・集団内に保有していなければならない。その組織で「手順化・体系化」ができているか、保有できているかは、直接的にある個人のスキルに依存するとは限らないが、間接的に依存している。

技術の細分化・多層構造化

ソフトウェアにおける特色に移る。ソフトウェアにおいて手順化・体系化という操作はそれ以外と比較して細分化・多層構造化の影響で構造的に不安定であり困難性が高い。細分化について、例えばC/C++が良い例だろうが標準化されているとは言え古いものから新しいものまで微妙に異なる言語仕様が多数存在する。次に多層構造化について、C/C++と、例えばPythonは明らかに別な階層に位置するものだろう。これら言語の入門書の序盤をよく見ると顕著であるが、ソフトウェアを動作させる・開発するための手順はいろいろな状況を前提として作成されており平易化された手順書の山は前提条件がくずれるといとも簡単に動作しなくなる。「スキル」にばらつきのある集団内で、細分化・多層構造化された「技術」ごとにいったいどれほどの補助治具が必要だろうか。

例はほどほどにして、「技術」が細分化・多層構造化されていると単純に「技術」の数が多くなることが言える。組織・集団がそれら要求に対する結果を導くための「技術」の数はことソフトウェアに関する行程を含むと一般に多くなる。先述の通り、ある「技術」の「手順化・体系化」の完了度合はそれを実施する組織・集団に属する個人のスキルに間接的に依存しているが、その「技術」の数が多いことで「手順化・体系化」は結果を導く過程で慢性的に後回しにされ、それが絶え間なく繰り返されることによって組織・集団はもはや個人の「スキル」の識別を行うことが困難になる。裏返すと、組織・集団が保有している「技術」の識別が困難になる。

物理法則に基づいていない

細分化・多層構造化はソフトウェアに限ったことなのか、それ以外も現代の「技術」は高度に細分化・多層構造化されているではないか、という点について。根本的な他との違いについて、ソフトウェアに関する「技術」はなんら物理法則に基づいていないという点に触れようと思う。「技術」が物理法則に基づいている場合は、およそどのようなやり方を用いたとしてももとにしている自然現象の観点ではあることを最も効率よく実現するための方法はそう多くなく、優劣は物理法則の観点で決められる。一方物理法則に基づいていないソフトウェア分野においては全く同等な結果をもたらすにあたって異なるやり方が存在し、乱立し、物理法則とは関係のない部分に基づいてそれらの優劣が決定する。近年における人工知能関連のどこまでを物理法則とみなすかは微妙であるが、物理法則によっては優劣が定まらないということの弊害は相当に大きい。これは後述する経済原則の観点で再び述べる。

新規技術を考慮していない

元の定義にある「再現可能」という言葉はそれが新規技術ではないことを示唆している。この定義を素朴に当てはめるなら、社会のどの組織・集団において一度も実現されていないようなものはもれなく個人のスキルに基づいて実現されるとよめる。そうでなくともこの定義において、「新規技術の開発」という行いは定義の外である。この点は先述の細分化・多層構造化を踏まえると、どこまでが既存技術の再現で、どこからが新規技術の開発にあたるのかという問題に発展する。細分化・多層構造化された「技術」は、実績のない組み合わせで用いることでいとも簡単に「新規技術の開発」に相当するものとなる。

繰り返しになるが、「技術」の数が多いことで「手順化・体系化」は結果を導く過程で慢性的に後回しにされ、それが絶え間なく繰り返されることによって組織・集団はもはや個人の「スキル」の識別を行うことが困難になる。新規技術を取り扱う状況において「手順化・体系化」は2の次3の次となる。定義を素朴に当てはめた状態、瞬間的にその組織・集団に属する個人のスキルによってのみ行われ、再現可能な部分は特にない状況になる。

ソフトウェア経済原則

最後に、元の定義ではあえて経済原則について触れられているが、この点は重要である。新規技術を一切用いなければ先ほど述べた問題それ自身については解決するように思われるが、その場合は経済原則が破綻することが多い。例えば人工知能分野のアプリケーションを作成するにあたって、C/C++のみでくみ上げることは世の中の「技術」全体としては可能であってもある組織・集団が技術として保有し再現可能な行程として実施するにはコストが高く現実的ではない場合がある。

第2に、ソフトウェアは物理法則ではなく、経済原則に基づいて乱立している。オープンソースソフトウェアに関して、組織・集団のそういった思惑が一切ないものがどの程度あるだろうか。これらは一見して営利的な活動には紐づかないものの、事実適切に活用すれば大きく既存の経済原則を破壊するし数々のブレークスルーを起こしてきたのではないだろうか。またこうしたオープンソースソフトウェアに関連する「スキル」を身に着けた個人の側も、組織・集団に入ってその組織・集団のなかでの経済原則を破壊する。

終わりに

組織・集団はソフトウェアにおける「技術」と「スキル」を区別することはできない。異なる言い方をすると、組織・集団はソフトウェアに関して個人に依存する部分と個人に依存しない部分を識別することはできず、後者の個人に依存しない部分はゼロであることもありえる。ソフトウェアを取り扱う組織・集団において個人の「スキル」はその組織・集団の保有する「技術」そのものであり、重要である。

近年のソフトウェア企業の競争力の源泉は個人のスキルである。本稿では、企業の人事制度との関連などは示唆するにとどめておくが、第2次産業にありがちな個人に依存しない部分をあると信じ、旧態依然とした人事制度で個人のスキルを大胆に評価できない組織がどの程度生き残れるだろうか。

参考文献