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

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

レビュー観点: 用語集に載せる言葉に注意を払おう

 エンタープライズ向けシステム開発において、お客様と合意を取るべき外部仕様書にはしばしば、「用語集」が作られます。今回はその用語集の話。

広辞苑化する用語集

 用語集ってけっこう厄介もので、目的を見失うと次のような用語が採録されます。
HTTP: HyperText Transfer Protocol(ハイパーテキスト転送プロトコル)
 ・・・誰も嬉しくない情報ですよね!?
 もしかすると、ITに疎いお客様への思いやりかも知れませんが、そのまま突き進むと「Windows 7: Windows Vista の後継として開発されたパソコン用のオペレーティングシステム」(Windows 7)まで書く無間地獄に立ち入ることになります。
 一方、たとえば医療業界では、こんな用語も採録されそうです。
MR: 医薬情報担当者
 まあ、別にあったからって害があるわけじゃないのですが、これをやり始めたらキリがない。こういった業界用語集を、開発部隊向けに内部で持っているのはいいと思いますが、設計書に載せるのはイマイチかと。

用語集に載せるべき用語

 用語集に載せるかどうかを決める基準って何だろう、と考えてみました。
 まず、「用語」は、以下の4象限に分類することができます。すぐにマトリクスで切るのが、アメリカのコンサル会社っぽくてかっこいいと信じている。
 
  ビジネス テクノロジー
一般 (a)ドメインの用語 (b)技術の用語
特殊 (c)組織独自の用語 (d)システム独自の用語
 
 一般用語である(a)の「MR」も、(b)の「HTTP」も、google先生が全部教えてくれます。用語集に載せるべきなのは「特殊」行の2つ、(c)と(d)です。
 エンタープライズ系システムであればきっと、その業界用語よりもさらにローカルな、会社固有の言葉を使うことになります。それが(c)です。
 特に厄介なのは、「一般的な言葉ではあるが、我が社では特別な意味で使っている」というもの。かならず載せたい。
 たとえば「新入社員」という用語が、「学校を卒業して就職してから1年以内の者」なのか、中途採用されて1年以内の人も含むのか。誤解のリスクがあるなら、用語として明記しましょう。
 そのユーザの組織でもともと使われていたわけではないが、開発しているシステムのために新しく定義する用語が(d)です。
 たとえば、本の「予約」という機能について、「入荷したばかりでまだ貸し出しを行なっていない本に対する予約は、通常の予約と区別するために『仮予約』と呼ぶ」みたいな話ですね。

フィードバックするがいい

 (c)と(d)について、お客様と開発者で認識違いがあると、あとあと悲惨なことになります。
 「用語集のメンテくらい大した手間もかからないし、思いついたものは載せておこう」式でも悪くはないかも知れませんが、その反動で、載せるべき言葉が載っていないことにならないよう、気を付けたいですね。
 設計ドキュメントを書きながら、「これって一般用語じゃないかも?」と思ったら用語集に立ち返り、他の箇所での使用を確認するのがいいと思います。
 みなさんの組織では、用語集にどのような言葉を載せていますか?自分の思いだけで書いているので、反対意見も聞きたい。
 で、次回こそ、「マーブル仕様書」と「用語集」に関するトピックを書きたいのであった。

www.kzsuzuki.com