TL;DR
Dictionary.com によると、英語の obscurity は一般に、意味や表現がはっきりしないこと、あいまいさを指す。A Philosophy of Software Design の定義では、不明瞭さ(obscurity)とは、システムに関する重要な情報が、新しい開発者にとって明白でないことであり、依存関係と並ぶ複雑さの原因とされている。
なぜ必要か
不明瞭さは、認知的負荷と未知の未知をもたらす。必要な情報が見えないので、開発者は何を知るべきかが分からなくなる。
仕組み
不明瞭さは、ドキュメントが不十分なために生じることがある。ただし、その原因は設計上の問題にあることが多い。システムが明白であれば、必要なドキュメントは少なくて済む。逆に、必要なドキュメントが多いということは、設計が適切でない。そのためソフトウェア設計では、システムが明白であることを目標とする。
例
- 変数名が一般的すぎて、有益な情報を持っていない。
- 変数名に単位が明記されていない。