3種類の知識移転
知識移転という時、移転するものに「知識自体」「知識へのポインタ」「状況に合わせた知識」の三通りがある。 一つ目は「Pythonってなんですか?」「機械学習によく使われるプログラミング言語の1つです」みたいなもの。
このタイプの知識移転は教える側のコストがとても高い。
人間が提供するのではなく、書物や検索などから各自で獲得してほしい。
二つ目の「知識へのポインタ」はは「この本に書いてあるよ」とか「あのライブラリを使えばできるよ」とかの形をとる。
その情報を元に自分で学んで行ける相手に対してはこれが効率が良い
そのポインタだけでは成果に結び付けられない人に対しては三番目の「状況に合わせた知識」の供給が必要
これは「状況に合わせて知識を作り出す力」を持っている人しか提供できない
状況に合わせた知識を提供するには、書かれた知識などを単に知っているだけでは不足
既存の知識を、状況に合わせて微修正し応用できる必要がある
プログラミング関連の知識の内面化は、自分で動くものを作り上げる経験、「こうすれば動くと思ったが動かない」をデバッグする体験を通じて、「微修正」自体の経験を積む必要がある 関連
「ソフトウェア技術」という言葉で指されている知識に2つのレベルがある。特定の言語やライブラリの知識、たとえばjQueryの知識なんてのは、スピーディに陳腐化する。なので「それしかできないひと」を抱えると負債になる。でも「新しい言語やライブラリを効率よく習得できるノウハウ」というものもあんまり言語化されていないけども確かに存在していて、そういう知識を持っている人は環境の変化が速いときにはむしろ重要度が高い。
前者のレベルの知識は必要になった時に市場から獲得すればよいが、何を獲得すべきか考えたりする人材は市場獲得できない。長期的に雇用することで会社特有の色々な制約条件を学ぶことにインセンティブを作らなければ、会社特有の制約条件に合うように技術を選定できる人間を社内に持つことができない。
「良い技術者を取りたいが、良い技術者を判断できる人がいない」というロックイン
社内にない知識を社外から取り込もうという時、書籍や論文などの書きものから獲得するのは効率が悪い。それは書籍や論文の評価関数がビジネスの評価関数と異なるから。
ビジネス上は、得られた知識(例えば機械学習のアルゴリズム)を実践して価値が得られることが最重要。そのためには実際の自分のデータに適用した時に出会う、事細かなトラブルを乗り越えていく必要がある。一方で「事細かなトラブル」は書籍の語ろうとしているメイントピックではないので、紙面からは割愛されがち。
なのでこういう知識の獲得のためには、外部の「実践した経験のある個人」との人的ネットワークが有用。企業の知識獲得戦略としては従業員個々人がそういうネットワークを発展させるような施策を取っていくことが有益だと思うが、実際の所どの程度の会社がやっているのか。
アカデミアとビジネスの違いに関してはここのp.27から書いた
簡潔に言えば、きれいに整備され公開・共有されているデータに対して手法を工夫してより高い精度をだそうとしているアカデミアでの最新最良アルゴリズムが御社のデータに対して有益であるかは未検証であり、古い枯れた手法から順に適用して知見を溜めて行かなければいけない。またビジネスにおいて重要なのは顧客価値であって精度ではないので、枯れた手法で十分な顧客価値を生み出せるなら、過剰に精度を求めるより枯れた手法で運用する方が好ましい。