セマンティック拡散

2006年12月14日

私はソフトウェア開発で見られる事象を説明するために、新語を作る癖があります。この分野のライターの間ではよくあることで、ソフトウェア開発にはまだ有用な専門用語が不足しています。専門用語を作る際の難しさの一つは、用語が意味を失いやすいということです。これは、セマンティック拡散というプロセスで起こります。これもまた、私たちの専門用語に追加される可能性のある用語です。

セマンティック拡散は、個人やグループによって作られた言葉が、多くの場合、明確な定義とともに、より広いコミュニティに広まるにつれて、その定義が弱まる場合に発生します。この弱体化は、定義全体を失い、それに伴って用語の有用性も失う危険性があります。

私がこれを書こうと思ったきっかけの一部は、「アジャイル」と「Web2.0」という2つの用語で、セマンティック拡散が非常に公然と起こっているのを見ているからです。どちらもここ数年で造語されたものであり、どちらにも長い定義が付いています。(アジャイルには、アジャイルマニフェストがあり、マニフェストの著者による多数の書籍と記事があります。Web 2.0には、ティム・オライリーによる優れた定義に関する記事があります。)しかし、これらの用語の両方が、現場で多くの堕落に直面しています。アジャイル手法は計画を一切しないことを意味すると考えている人や、Web 2.0はAJAXの使用のみに関するものだと考えている人に遭遇しました。(より個人的な例はリファクタリングの誤用ですが、これについては今は置いておきます。)

セマンティック拡散は、本質的に、用語の創始者とは異なる人々のグループが、元の定義に従うことに注意を払わずにその用語について話し始めるという、伝言ゲームの連続です。これらの人々は、さらに自分たちの歪みを加えることになる次のグループに聞かれます。このようなやり取りが数回繰り返されると、元の意味に戻って確認しない限り、用語の重要な意味を多く失うのは簡単です。最もこの影響を受けやすいのは人気のある用語であるというのは皮肉なことです。もちろん、それは避けられません。人気のない用語は、伝言ゲームを行う人が少ないからです。

セマンティック拡散は、アイデアの誇大宣伝期と一致する傾向があります。アイデアが魅力的になると、多くの人々が...まあ...魅了されます。これらのフォロワーの多くがその用語について話し、教えます。これらの人々が注意してソースに戻らないと、伝言ゲームが始まります。人気のあるアイデアは、主に誤解を招きやすいコミュニケーション媒体(執筆など)を通じて広まります。多くのフォロワーは、創始者と直接一緒に働き、そこから直接学ぶ機会に恵まれていません。

人気に関連する指標は、望ましさです。良い響きの言葉は、セマンティック拡散の影響を受けやすい可能性があります。「アジャイル」は確かにそうありたいと思うような響きがあり、アジャイルの反意語は全く魅力的ではありません。ウェブの単なる1.0に留まりたいと思う人はいません。ケント・ベックはこの効果に気づき、そのため、意図的にエクストリームプログラミングという名前を選びました。それは本質的に望ましいものではないからです。「エクストリーム」はしばしば軽蔑的な意味で使われます。望ましくない用語を使用すると、セマンティック拡散が減少する可能性がありますが、問題が完全に回避されるとは思いません。結局のところ、「オブジェクト指向」にもセマンティック拡散が発生したのを見てきました。これは中立的な用語です。

セマンティック拡散は、ハードテクノロジーではなく、広い概念である場合に発生しやすくなります。Ruby on Railsは現在多くの誇大宣伝を得ていますが、具体的なツールであるため、その意味が弱まるのは困難です。エクストリームプログラミングの具体的なプラクティスのリストは、アジャイルのより広範な価値観や原則と比較して、この問題を軽減する可能性もあります。

セマンティック拡散は、特にアイデアが役立つと感じている人にとっては、見ていて苦痛なプロセスです。現時点では、これらの用語の両方に絶望の兆候が見られます。アジャイルの世界の一部の人は、アジャイルという言葉を捨てることを話しています。

私はこれらすべてについてもっと楽観的です。それは、以前にも経験しているからです。ほとんどすべてのソフトウェアツールや手法がオブジェクト指向として説明されていた時代がありました。しかし、今では、何年も経ち、OOの本質的な意味はかなりよく理解されています。パターンでも同じことが起こりました。したがって、用語はセマンティックな完全性を取り戻し、現在の拡散は、用語が必ずしも意味を失うことを意味するものではありません。また、以前にこのプロセスを経験しているので、予想していたため、あまり心配していません。アイデアが普及するにつれて、それは避けられない結果だと思います。問題はありますが、私は無知よりも誇大宣伝を好みます。最後に、同様に避けられない反動が来ると、元の意味に焦点を当て直すという慰めの考えがあります。これを書いていると、意味を完全に失った用語を思い浮かべることができないという事実で慰められますが、確かに起こったことがあると思います。(SOAは、そもそも共通の合意された意味があったとは思えないので、カウントしません。)

最終的な結果がどうであれ、私たちはそれが起こるにつれてセマンティック拡散に対処する必要があります。1つのオプションは放棄することです。拡散した用語を捨てて新しい用語を選択することです。私はこのオプションが好きではありません。新しい用語は混乱を招くだけであり、たとえ成功したとしても、新しい用語で同じプロセスを繰り返すだけだからです。したがって、私の好みは、現在の用語を再定義し続け、真の意味を理解している人を指し示すことです。

さらに複雑なのは、これらの用語も変化しているということです。アジャイルマニフェストの元の17人の著者に尋ねれば、今日では異なる文書を作成するでしょう。(そのグループが今日、運動を代表するのに最適なグループではないという事実は言うまでもありません。)ここでも、アイデアが進化する方法について話し、その進化において積極的な役割を果たしている新しい人々を指摘することにより、創始者として認識されている人々の責任です。(元の17人が「船を航海させる」ことを決定したことを嬉しく思います。)明確な定義を守ることと独断論との間には、難しいバランスがあることを忘れないようにしましょう。

これらすべては大変な作業ですが、特に必要な弾丸が言葉だけであるため、良い用語は戦う価値があります。

セマンティックインバージョン

セマンティック拡散の一般的な形式は、用語が、記述するために造語されたものとはの意味になってしまう場合です。たとえば、「DevOps」が分離された運用チームの名前になったり、「最小限の実行可能な製品」が1,200万ドルの初回リリースに使用されたりする場合などです。ホリー・カミンズは、この懸念の亜種を説明するために、巧みに「セマンティックインバージョン」を造語しました