独自技術症候群 あるいは NIH ( Not Invented Here ) 症候群

この言葉、大事な言葉なのだけれど、すぐに忘れてしまうのでここに書き留めておく。

私の聖書「UNIXという考え方」(Mike Gancarz)によると、独自技術症候群とは、「他人が書いたソフトウェアを他人が書いたものだからといって使わない」ような状態を指すのだという。
NIH ( Not Invented Here ) 症候群も、意味はほとんど同じ。
独自技術を尊重しても、実際は、そうやって開発されたソフトは使い勝手やファイルフォーマットが「標準」から外れてしまうことが多く、かえって使いにくくなることが多い。また、開発工数が増え、バグが忍び込む可能性も高まると言われる。
それならば既存のライブラリを活用したほうが、使いやすくて安定したソフトが出来上がるのだからはるかによい。
腕のいい人間ほど「独自技術症候群」にはなりやすいので要注意なのだそうだ。

自分の場合、人様が書いたソフトウェアを取り扱い説明書に従って使う分にはまだしも、改造したりして自分のソフトに取り込んでしまうのはあまりにもおこまがしい気がして、時々この独自技術症候群になってしまうことがあった。
GPLだから、あるいはBSDライセンスだから、改造するのは自由なのだと言われても、例えば目の前に Werner Koch (GnuPGの開発者)の書いたコードがあったりすると、その名前だけでも恐れ多くて、なかなか自作のソフトに取り込んだりできるものではなかった。
どんなに下手でも自分の等身大のコードのほうが自分にあっているのではないかと勝手に思い込み、自分でソースを書き、ソフトの品質を下げてしまっていたりした。

それが、この「独自技術症候群」という言葉に出会い、人様の作った完成度の高いライブラリを利用することはおこがましいことでも何でもなく、むしろ相手に敬意を払うことになるのだと気付かされた。ユーザーにとっても、標準的で安定したソフトが供給されるのだから、それは望ましいことなのだと。

というわけで、この「UNIXという考え方」を信じ、GnuPGなりbsdtarなりといったソフトウェアを積極的に自分の作品に取り込んでしまっているわけである。

ただ、GnuPGなりbsdtarなりを利用する最大の難点は、それらのライセンス条項のおかげでリリース時にいろいろなドキュメントを添付しなければならなくなることである。
コードを書いているうちは、それぞれのソフトウェアの開発者に少なからず敬意を払っているのだが、正直なところ、リリースの段階になると、パッケージングがあまりに大変なため、それらの感謝の念が一気にふっとんでしまう。
JanusHSの新版をリリースするのに、今、どのドキュメント・ソースが必要なのか混乱をきたしており、公開が遅れてしまっている。いや、これについては自分がだらしないだけか...

UNIXという考え方―その設計思想と哲学

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック