見出し画像

全員が同じことばを使えるようになるために、ユビキタス言語をつくる

この記事はTimee Advent Calendar 2023/12/23の記事です。

はじめに

はじめまして、タイミーでプロダクトデザイナーをしているkandy(@A4MS_)です。
今回の記事ではプロダクトデザイナーとして取り組んできた、全員が同じことばを使えるようになるための仕組みであるユビキタス言語 についてお話します。

こんな思いがある方に読んでほしい!

  • ワードルールや用字用語集をつくりたい

  • 同じ用語でもメンバーによって表記がちがうことがある

  • 同じ機能なのに「○○機能」「△△機能」と呼び方がたくさんある

  • 新しく入ったメンバーにユーザー向けに使っている表現を教えられるようにしたい


課題感

タイミーのサービスが成長するに伴い、社内で表記ゆれやコミュニケーションロスが発生していました。
この背景には以下の要因があったと考えています。

この背景をもとに、タイミーに所属する全員が信頼できる唯一の情報源(SSoT)としての用字用語集の必要性が高まったことが、全員が同じことばを使えるための仕組みであるユビキタス言語をつくろうと決めた理由です。


ユビキタス言語って?

DDD(Domain-Driven Design -ドメイン駆動設計)に由来するものです。

ドメインモデルに基づいて構造化された言語。そのチームの取り組みとソフトウェアを結び付けることを目的とし、またチームメンバー全員によって使用される。

(原文より筆者和訳)

A language structured around the domain model and used by all team members within a bounded context to connect all the activities of the team with the software.

引用元:『Domain-Driven Design Reference』©2015 Eric Evans
https://www.domainlanguage.com/wp-content/uploads/2016/05/DDD_Reference_2015-03.pdf

この場ではDDDに関する説明は省略しますが、平たく言うと「同じことばをみんなで使って、一貫したモノづくりをするためのもの」ということですね。


やったこと

繰り返しですが、目指す状態は全員が同じことばを使えていることです。そのためには、望ましいことばが正しく使われつづける環境を作る必要がありました。
具体的には以下の3つが成果物として作ったものです。

  1. ユビキタス言語DB

  2. 追加・更新ワークフロー

  3. 組織内への啓蒙

それぞれの内容と手順について紹介します。


1. ユビキタス言語DB

使うべき表現を記録するデータベースです。困った時に見返せる、辞書のようなものですね。

- 手順

①既に使われている用語の収集
まずは使われていることばを集めることから始めました。
UI上で用いているものはもちろん、CSがヘルプページに書いているものなども含めて一覧化。このときに類似している表現や表記揺れも整理します。

②リファレンスの設定
収集/整理に並行して、ユビキタス言語の選定基準になるリファレンスの設定をしました。社内の用法や慣習に左右されず、客観的にレビューを行うために参照する資料です。
タイミーの場合、以下をユビキタス言語が立脚するリファレンスとしています。

公文書(労働基準法、職業安定法など)
https://elaws.e-gov.go.jp/
記者ハンドブック 第13版 新聞用語集 共同通信社
https://www.kyodo.co.jp/books/isbn/978-4-7641-0687-1/
Weblio 国語辞典
https://www.weblio.jp/

③リファレンスに基づく用語の意味/表現の定義、精査
上記のリファレンスをもとにことばの意味を定義し、表現を精査します。 たとえばタイミーでは「仕事」を意味することばが複数存在しており、それぞれについて使うべきか/使うとしたらどんな意味で用いるべきかを整理しました。

④DBへの反映
定義と精査が済んだ表現をDBに反映します。タイミーは働き手と事業者の2サイドのプラットフォームであり、それぞれに向けて同じ意味でも別の表現を使う場合がありました。そのため「働き手向け・事業者向け」それぞれで表現を選べるようにDBを作成しています。


2. 追加・更新ワークフロー

ユビキタス言語DBを追加・更新するワークフローの整備です。
新しい機能・概念の追加や外部環境の変化などに合わせて、使われつづけるようユビキタス言語を更新するための使われるものですね。

- 手順

①Slackのワークフローにて各種更新を依頼できる窓口を設定
新機能をリリースしたいチームやなどが更新を依頼できる窓口を作りました。
ここに届いたリクエストはプロダクトデザイナー間で確認した上で、リファレンスや関係者との対話をもとにDBへの反映を行うか判断しています。

②リリースノートの作成と周知の仕組み化
DBの更新を開発者やメンバーに気づいてもらう必要があります。
そこで新しくことばが追加された場合にはNotionページとSlackチャンネルにてリリースノートが公開され、社内のメンバーに気づいてもらえるようにしています。


3. 組織内への啓蒙

DBとワークフローができたタイミングで、組織に浸透するよう働きかけていきます。いきなり全社に守ってもらうのは難しいので、2年くらいかけてゆっくり広げていきました。

- 手順

①エンジニアを中心としたプロダクト組織から運用を始める
DDDへの理解もあり、関心の強いプロダクト組織から運用をスタート。
Github上において実装者側のチェックリストに追加し、リリースされるものについては必ずユビキタス言語が確認されるようにしています。

②顧客と密にコミュニケーションを取るCSに連携
ヘルプページなどのユーザー向けコンテンツを担当する方も多いCSに連携を求めました。
プロダクトと同じかそれ以上に指きたし言語に関心を高く持ってほしいのもあり、CS内にユビキタス言語を広めるアンバサダー的な役割も担ってもらいました。

③対外向けにも同様のことばが使われるよう、PRを担う部署であるBXに連携
BXで独自の用字用語管理を行なっていたのをユビキタス言語に統合しました。
またこのとき、対外向けには厳密に守れない部分がある(タイミーについて知らない方などに合わせて表現を変えることもある)ため、それらのケースについては例外としつつ可能な限り守ってもらえるように協力を依頼しました。

④新メンバーのオンボーディングに追加
ドメイン知識を持っていなくても同じ表現を選ぶやすくなるように、タイミーに新しく入ったメンバーのオンボーディング時に紹介をしています。

よくなったこと

実際にやってみたところ、以下のような改善が得られました。

とくに3の「意識の向上」の効果は大きく、組織内でバイラルするような仕組みにできたことはユビキタス言語の持続的な基盤を作れた大きなWINだと考えています。

これから

社内でも頻繁に引用されるなどうまくいっている一方、まだ課題やこれからトライすべきものも残っています。

  • 英語版表現の一覧化(日本語での意味と正確に対応する英語表現の選定)

  • 組織拡大に合わせた啓蒙の推進方法の模索

先述しましたがユビキタス言語は、DBとして定義すること以上にそれが使いつづけられるよう更新・管理しつづけることが重要です。
タイミーの組織がすさまじいスピードで拡大するなかでも、そのスピードに対応しつづけ常に社内の関心が集められるように、さらなる啓蒙と仕組みの改善をつづけていこうと考えています。

最後に

今回紹介した取り組みは、弊社プロダクトデザイナーのmiyajimaさん(@myzksk)に多大な協力を得てできているものです(いつもありがとうございます、この場にてお礼をさせていただきます)。

タイミーではこれ以外にも、さまざま形でユーザーさんに価値を届ける手法やそのあるべき姿を模索しつづけています。
ご縁がありましたら、ぜひお声がけください!


タイミーについてはこちらから! https://taimee.co.jp/