プログラマでありたい

おっさんになっても、プログラマでありつづけたい

技術を伝えても、技術者の価値はなくならないという話

Iceberg


増田で、この記事が話題になっていました。
正社員に仕事を教えたくない

私は今年で契約が切れるパート。同じ部署に昨年、数歳年下の新入社員が配属された。

彼女は私が少ない仕事から数年かけて学び、また効率的に処理できるように試行錯誤して会得したノウハウを、たくさんの仕事の中でどんどん吸収している。これまで私しか使えなかったソフトも、ほぼ同じくらい使えるようになった。


 この記事書いた人の仕事の内容はよく解らないので元ネタに対するコメントは差し控えます。一方で、これを見ていたIT系エンジニアのクラスタっぽい人々が、技術職にとっては技術を伝えると自分の価値が無くなるよなぁ的な発言をしているのを幾つか見たののが興味深かったです。なので、ITエンジニアにとっての技術と、それを伝えるということを考えてみました。前提として、ITエンジニアの技術についてです。製造業の技術流出は別の問題だと思うので、対象にしていません。

IT系エンジニアにとっての技術とは?



 まずIT系エンジニアにとっての技術とは何でしょうか?書いたコードなのでしょうか?それとも、コードを書くための能力なのでしょうか?これは後者だと思います。次にコードを生み出す為の技術ですが、実はこれも2種類あるのではと思っています。1つ目は、いわゆるテクニックとかノウハウとか言われるものです。もう1つは、もっと本質的な知識であったり考え方・思想だと思います。
 あまり適切な例えではないですが、遅いSQLに対して高速化の手段(インデックスを貼る等)を知っている/行えるのが、テクニックです。これに対して本質的な知識とは、DBの内部構造を理解していてどういう理由で遅いのかを理解していることだと思います。これが解れば、どういった対策を行えば良いのか、自ずと解るようになります。

技術を伝えるということ



 技術を伝えることを恐れる人は、前者のノウハウ/テクニックだけを技術と思い込んでいるのではと思います。ノウハウ/テクニックについては、比較的伝えるのも簡単で知っていれば誰にでも出来る類のモノは多いです。これに対して、後者の技術(本質的な知識)については伝えようと思っても、生半可なことでは伝えられません。何故なら、技術とはバックボーンとなる膨大な知識・考え方の上に、築かれるものだからです。ピラミッド構造でいうと、下の図のように考え方という土台の上に知識があって、最後に乗っているのがノウハウとなると思います。要は、ノウハウというのは氷山の一角ということです。バックボーンがあってこそのノウハウなのです。


 一応補足しておくと、ノウハウが悪いと言っている訳ではありません。ノウハウとしてまとめられるようになるには、とてつもない知識や経験が必要になるということです。だから、ノウハウを作れる知識を持っていれば、ノウハウ/テクニックの流出に対しては何も心配する必要はないということです。またノウハウではなく知識を伝授するには、これまた深い理解が必要です。今持っている知識を人に伝えるようになれば、恐らく伝えようとする前より1段階上のレベルに達していると思います。

まとめ



 上記のことから、私はIT系の技術者は積極的に技術を伝えるべきだと考えています。伝えれば伝える程、自分のレベルアップになります。またちゃんと技術を伝えられるという人は、組織にとって得がたい人です。それでも低評価というのであれば、組織としての将来性は無いでしょう。身の振り方を考えれば良いと思います。自分の価値を高める為に技術は秘密にするという考え方では、長期で考えるとジリ貧になると思います。
 自分が出来ることを他人が出来るようになれば、喜んでその先のことに挑戦していけば良いのではないでしょうかね?また、技術をちゃんと伝えられる人には、その過程で自然と新たな技術が習得出来ると思います。セコい事考えずに有能な後進をどんどん育てていけば、みんな幸せになれると思います。 Enjoy!!


2013/05/30追記:
補足を書きました。
伝えたかったのは、伝えるのが難しいということ。或いはバカの壁の話
自分を首に出来るように働く



See Also:
伝えたかったのは、伝えるのが難しいということ。或いはバカの壁の話
自分を首に出来るように働く


参照:
正社員に仕事を教えたくない