エンジニアこそ言葉は正しく使おう
要件定義の仕事が増えてきて、言葉を正しく定義するとうまく行くことが多いなと思ったので言語化します。
正しい言葉とは?
エンジニアとしてシステム開発を進める中で、同じ言葉が異なる文脈で異なる意味を持つケースに直面することがよくあります。
例えば、ECサイトを構築する際に頻繁に出てくる「商品情報」という言葉。この言葉が指す内容は文脈によって異なります。
クーポンやキャンペーンの文脈では、商品ID、カテゴリー、JANコードなど、対象商品を特定するための情報を指すことが多いです。
デザインの文脈では、商品名、色展開、値段など、商品を説明するための情報を指すことが一般的です。
このように、同じ言葉でも文脈によって異なる定義が必要になる場合があります。ここで重要なのが、文脈に左右されず一意に定まる言葉、つまり「正しい言葉」を使うことです。
正しい言葉を使うには
とはいえ、正しい言葉を定義することは簡単ではありません。
例えば、「クーポンの利用条件用の商品情報」といった明確な表現を用意したとしても、冗長なために誰もその言葉を使わなくなる可能性があります。
そのため、実際には以下の工夫が有効です。
- 文脈を明確にして会話する文脈ごとの意味を共有することで、言葉の曖昧さを軽減します。
- 図や補足資料を活用する言葉だけでなく、具体的な例や図解を添えることで、認識のズレを防ぎます。
重要なのは、その言葉の意味が一意になることです。
正しい言葉を使うメリット
正しい言葉を使うことで、以下のようなメリットがあります。
ドメインの境界を意識できる
言葉を正しく使うことを意識すると、文脈の境界に気づくことができます。これは、ドメイン駆動設計(DDD)で言う「境界づけられたコンテキスト」に通じる考え方です。
例: 商品情報を含むItemクラス文脈を意識せず設計すると、Itemクラスをクーポン処理や商品表示処理で共通して利用してしまいがちです。
しかし、文脈によって必要な情報は異なります。
- クーポンの文脈では、カテゴリーIDやブランドIDなど、対象商品を絞り込む情報が必要です。
- 表示の文脈では、値段や商品説明、商品画像など、ユーザーに有益な情報が必要です。
これを無視してItemクラスを共用すると、やがて場当たり的な修正が繰り返され、技術的負債が積み重なります。最初から文脈を意識してItemクラスを分離していれば、こうした問題を回避できます。
ドメインの解像度が上がる
正しい言葉を使うことで、ドメインの理解が深まり、解像度が上がるというメリットもあります。
例: クーポンの「商品情報」「商品情報」という言葉が曖昧なままでは、開発者の間で認識が一致しません。依頼者に確認した結果、「特定のブランドの商品を対象とするクーポンを発行したい」と判明した場合、ここで「商品情報」という曖昧な言葉を「ブランド」という具体的な言葉に置き換えることができます。
このプロセスを通じて、「ブランド」に関する新たな課題も明確になります。
- ブランドに必要な属性は?
- ブランドのステークホルダーは誰?
正しい言葉を使うことで、次の設計ステップが見え、本質的なシステム構築が可能になります。
まとめ
正しい言葉を使うことで、以下の効果が得られます。
- ドメインの境界を明確にできる
- ドメインの解像度が上がる
これらを通じて、より良いシステム設計が可能になります。
エンジニアとして、正しい言葉を意識しながら、価値あるシステムを作り上げていきましょう。
Discussion