UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates (エヌズクリエイツ) 株式会社 フロントエンドエンジニアの齋藤 (@31mskz10) です。
開発において、「なんとなくわかっているつもり」で会話を進めてしまい、あとから認識違いに気づく──
そんな経験はないでしょうか?
特にビジネスロジックが複雑な場合、このズレが大きな手戻りを引き起こすこともあります。
そんな問題に向き合うために提唱された考え方のひとつが「ドメイン駆動設計(DDD)」です。
少し前にドメイン駆動設計について調べたとき、面白い考え方だと思ったのが「ユビキタス言語(Ubiquitous Language)」です。
今回はこのユビキタス言語について、なぜ重要なのか、どう活かせるのかをまとめてみます。
ユビキタス言語とは?
ユビキタス言語とは、開発者・ビジネス側のメンバーが共通して使う、プロジェクト専用の言葉のことを指します。
「言語」と言っているので、英語・プログラミング言語といった体系的で大きなものを考えてしまうかもしれませんが、「用語集」と捉えた方がイメージが近いかもしれません。
設計ドキュメント、コード、会話にいたるまで、すべてチームメンバーで定めた用語で統一することを目指します。
たとえば、ある通販サイトの開発プロジェクトではこんな用語がユビキタス言語になるかもしれません。
- カート:ユーザーが購入を検討している商品を一時的に保管する場所
- 出荷準備中:倉庫内でピッキング・梱包作業を行っている状態
なぜユビキタス言語が重要なのか?
例えば、ある開発チームでは「カート」と呼んでいるのが、デザインチームでは「買い物かご」と呼んでいたり、人によって「バスケット」と呼んでいたりすると、本当に同じものを指しているのか曖昧になります。
新しいメンバーが途中で入ってきたときにも、混乱の原因になります。
単純なボタンのラベル名だけなら大きな認識齟齬につながらないかもしれませんが、「出荷準備中」のようなステータスを表す言葉が「梱包中」「梱包作業中」「準備中」のようにチームや人によって統一されていないとどうでしょうか?
指示をするとき、されたときに認識齟齬につながりそうです。
このようなコミュニケーションロスを減らすため、最初から共通言語を整備しておくことが重要です。
ユビキタス言語を使えば、 「その『カート』ってユビキタス言語で定義してるやつだよね」「この『出荷準備中』処理のところ、コードレビューお願いします」のように、共通言語を使って曖昧さを排除できるようになります。
どうやってユビキタス言語を作るか?
ユビキタス言語を整備するときには、チーム全員で集まって1つ1つ定義していく必要があります。
そしてドキュメントを作成し、クラス名・メソッド名・DBのカラム名など、コードにも反映します。
特に重要なのは、開発チームだけで勝手に決めないことです。
また、制作側だけでなく現場の業務知識を持つ人たちと一緒に言葉を作ることで、初めて本当に意味のある共通言語になります。
また、よくあるユビキタス言語の説明ではビジネス側とエンジニアだけで決められることが多いのですが、デザイナーも含めないと、デザイン作成時にユビキタス言語が反映されません。
デザイナーも含めてドキュメントの整備・共有が必要そうです。
まとめ
ユビキタス言語は、言ってしまえば単なる「用語集」です。
しかし、言葉が揃えば、認識ズレが減ります。
ドメイン駆動設計の考え方は難しそうに見えるかもしれませんが、まずはこの「ユビキタス言語」から取り入れてみるだけでも良い変化が起きそうです。
UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates 株式会社は、神戸三宮オフィスまで週1出社(それ以外はリモートワーク)できる「デザイナー」「エンジニア」を募集しています。
興味のある方は、カジュアル面談しますので気軽にお問い合わせください!









