TL;DR

Dictionary.com によると、英語の obscurity は一般に、意味や表現がはっきりしないこと、あいまいさを指す。A Philosophy of Software Design の定義では、不明瞭さ(obscurity)とは、システムに関する重要な情報が、新しい開発者にとって明白でないことであり、依存関係と並ぶ複雑さの原因とされている。

なぜ必要か

不明瞭さは、認知的負荷と未知の未知をもたらす。必要な情報が見えないので、開発者は何を知るべきかが分からなくなる。

仕組み

不明瞭さは、ドキュメントが不十分なために生じることがある。ただし、その原因は設計上の問題にあることが多い。システムが明白であれば、必要なドキュメントは少なくて済む。逆に、必要なドキュメントが多いということは、設計が適切でない。そのためソフトウェア設計では、システムが明白であることを目標とする。

例

  • 変数名が一般的すぎて、有益な情報を持っていない。
  • 変数名に単位が明記されていない。

関連

出典