« LL魂日記 |Main| プログラミングシンポジウム日記(ただし手抜き) »

ノウハウの4レイヤー

プログラミングシンポジウムに行く新幹線の中で思いつきで書いた文章を載せてみる。

スキル(ノウハウ)には最低でも4つのレイヤーがあると思う。 1:バッドノウハウ。2:バッドノウハウを作るスキル。 3:バッドノウハウを取り除くスキル。4:バッドノウハウを作らせないスキル。

1の「バッドノウハウ」は例えば「~という問題に対処するにはソースの一行目にhoge=1と書くとよい」 という知識。この知識を持っていることで、その問題を解決することができる。 しかし、その問題しか解決できない。

2の「バッドノウハウを作るスキル」は、なぜその問題が起こるのかを調べて、 本来1になっているべきhogeの値が0になっていることを発見してそれを書き換えるなどができるスキル。 このスキルがあれば、まだ誰も解決していない問題に直面した場合にも 自力で解決することができる。 また作り出したバッドノウハウを公開することで、 「同じ問題に直面し、かつそのバッドノウハウにたどりつくことのできたひと」 の問題も解決することができる。

3の「バッドノウハウを取り除くスキル」は、 なぜ本来1になるべきhogeの値が0になっているのかを調べ、そこを修正するスキル。 「ソースの一行目にhoge=1と書く」というバッドノウハウ自体が必要なくなる。 このスキルのある人が活動すると 「同じ問題に直面したorする可能性のあった全ての人」の問題を解決することができる。

4の「バッドノウハウを作らせないスキル」は少し逆説的。 なぜバッドノウハウを作られてしまったか、3ではなく2になってしまったか。 それは「なぜ本来1になるべきhogeの値が0になっているのか」が調べにくい、 またはなぜかわかっても修正しにくいからだ。 これを容易にするスキル。 誰でも理解できる整理されたシステム、柔軟に修正や拡張ができるシステム、 そういうものを作るスキル。 このスキルのある人が活動すれば、 将来発見されうる問題も含めて「バッドノウハウを作らない対策」が容易になる。

目指すべきところは4なのだけども、なかなかそこに到達するのは難しい。 高林さんが主張されたこと(バッドノウハウと「奥が深い症候群」)は 「1や2のレイヤーでバッドノウハウを集めて喜んでいてはいけない。 バッドノウハウがたくさんあるのはシステムがよい設計ではない証拠だ」 だろうし、結城さんの主張されたこと(バッドノウハウからグッドラッパーへ)は 「『システムの設計が悪い』と言うだけでは生産的ではない。 レイヤー3の活動で対処しよう」 ということだろう。

バッドノウハウの多くできるようなソフトウェアは2と3の間の段差が大きいから、 そのソフトの手のひらの上で活動していると3というレイヤーがあることに 気づけないのかも知れないなぁ。

トラックバック(Trackback)

Trackback URL: http://www.nishiohirokazu.org/mt/mt-tb.cgi/628

ご意見・ご感想をお送りください(フィードバック)

(フィードバックはメールで送信され、基本的に表示されませんが、内容によっては公開させていただくこともございます。ご了承ください。Your comment doesn't appear the page immediately. If the comment has value to other people, it will be put on the page or subsequent entries. Thank you.)

上の情報は、いずれも未記入でかまいません。 All of above questions are optional.