ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。

レビュー観点: 勝手熟語を作ってくれるな

 前回のエントリーで載せた、レビュー形態のマッピングを再掲します。

www.kzsuzuki.com

 昨年から地味に考え続けている(c)チェックリスト、つまり技術的な側面以外のチェック観点について、1つ目のものを書きます。

7f5068b5

勝手熟語生成問題日本以外全部沈没

 「Verpixelungsrecht」というドイツ語があるそうです。googleストリートビューで撮影された自宅やオフィスの画像に対して、モザイク化を求める権利のこと。言葉を簡単に合成してしまうことで有名なドイツ語ならではですね。
 この合成語を作り出す傾向が、ソフトウェア開発の設計ドキュメントで顕著に感じられるのはわたしだけでしょうか。
 たとえば以下。
検索結果表示状態で複数項目選択時は・・・
 中華一番!
 「検索結果を表示した状態で、複数の項目を選択している場合は・・・」と書けばいいと思うのですが・・・。この短縮により何かメリットがあるのでしょうか*1
 
 さて、勝手熟語が作られるプロセスは2つあり、それぞれ別の問題をもっています。

(1)サ変動詞を名詞に戻す

 「残業をする」は、名詞+助詞+(サ変)動詞 という構造をもっていますが、「残業する」はそれ自体が1つの動詞です。「サ変動詞を省く」とは、「する」を省略して名詞に戻す行為を指します。
 何が問題なのか。
 「する」は動詞であり、動詞は活用を持つ。つまり「する」「される」「した」「された」といった、時制や態を持つのに、その情報をあえて捨てて、時制も態もない名詞に戻していることが問題です。
 たとえば「複数項目選択時」という勝手熟語を考えてみましょう。
  1. 複数項目選択時は、[ctrl]キーを押しながらクリックする。
  2. 複数項目選択時は、「名前を変更」ボタンが非活性になる。
 この句点の後の行動・動作のタイミングはそれぞれ、いつなんでしょう。
 (1)は「選択する前」で、(2)は「選択した後」。同じ言葉なのに、タイミングが異なりますよね。
 文脈に応じて時制や態を読み手が解釈しないといけない。つまり、曖昧です。動作の説明をするドキュメントで、その動作が起こるタイミングが曖昧なのは悲しい。

(2)助詞などを省く

 たとえば(1)「利用者閲覧済み記事」という合成語。この言葉を、(2)「利用者が閲覧した記事」と比べたとき、印象にどのような違いがありますか。
 (2)だと、「閲覧」という操作がシステムとしてどういう意味を持つかまでは言及していないのに対し、(1)では、たとえば「閲覧済みフラグが立っている」など、「システムとして明確に特定できる言葉」であるような印象を受けます(よね?)。
 合成語はもともと自然界に存在する言葉ではなく、そのシステムでいきなり生み落としているものなのだから、当然そのシステムにおいてクリアに定義された意味を持つべきということになります。そうでないなら助詞を省かず、自然な自然言語を使うのがいいと思います*2
 
 結論というか、主張は以下です。
動詞や助詞の省略によって、言葉を不必要に3つ以上合成するのはやめよう。合成したらそれは新しい言葉、明確に定義しよう。
 さて、この「明確に定義」に関する問題に、「マーブル模様の仕様書」というものがあります。多分次回は、これについて。

*1:これは「あるのでしょうか、いや、なかろう」という反語ではなく、疑問です。何かメリットがあるなら教えてください。

*2:「自然言語」と「自然な言語」も、意味が違いますね。