言葉をブレさせない
またしても固い内容が続きますが、ドキュメンテーションなどの情報伝達で大事だと思っていることについての話です(今回とあともう一つで多分終わりです…!)
今回は「言葉をブレさせない」というものです。
どういうこと?
簡単に説明すると、サービス上・業務上で同じ概念のものを指すときの言葉(表現)を統一し、別の似た言葉を使わないようにするというものです。
例えば、RoomClipには「お知らせ」というタブがあり、ユーザーさんに対して何らか伝える必要があるときにはここを使っています。
しかしここは社内での呼び方として「ニュース」だったり「通知」だったり、色んな表現が出がちなので、サービス上でユーザーさんに対して出しているのと同じ表現である「お知らせ」という文言を、意識して使うように努めています。
なんでそうしているか?
1. 言葉の違いにより、間違ってものごとが解釈されてしまう
1点目はこれです。例えば、社内のある人が、本当はユーザーさんにアプリ内でお知らせを出したかったのに、「通知を打ってください」と他の人に依頼した結果、依頼された人は「プッシュ通知」のことだと思ってプッシュ通知を打ってしまった、なんてことが起こりえます。
2. 受け手がコストを割かざるを得なくなってしまう
もしくは、上記の事例で実際プッシュ通知を打つまでは至らなくとも、この「通知」って「お知らせ」のことかな?「プッシュ通知」のことかな?わからん・・・というように、自分が思っている言葉と別の言葉が使われている場合、解釈の負荷が上がったりします。
3. システム負債の発生を避ける
さらに、そういった適切でない言葉がオペレーション上のシステムや運用プロセス、開発上のコードに散逸してしまった場合、そのシステムが将来的に負債となり、長期での効率低下につながったりします。
特に新しい人が入ったときに、それまでの背景を共有するのが大変だったり、もしくは共有されないままに上記のような誤謬や解釈コストが発生したりで問題が顕在化するかと思います。
どうやってやっているか
1. 言葉を定義し、以降繰り返しそれを使うようにする
すでに書いている部分と重複しますが、同じ概念のものを指す言葉を定義し、一度定義した言葉については意識して繰り返し使うようにしています。
(※ もちろん「一度定義したら絶対に変えません」という話ではなく、しかるべき理由や事情がある場合は、どのような言葉に変えるべきかを都度都度議論しながら考えていくべきものだと思います。)
2. 他の人に対して働きかける
「名称」とか「呼び名」のような「言葉」は、他の人とのコミュニケーションの場面で意味を持つものなので、定義された言葉がチーム内で共通化されるように、他の人にも働きかけていくのが大事だと思っています。
サービスを使うユーザーさんが見ている言葉と、社内で使う言葉が一致するように都度注意していて、そこから逸脱しそうな場面があったら、表現を統一しようと提案したりしています。
このあたりは、エンジニア界隈で有名なドメイン駆動設計(DDD)における、「ユビキタス言語」に影響を受けている部分はあります。コミュニケーションで使う言葉と、実装上の言葉(アーキテクチャとかコードにおける命名)を一致させるというものですね。
3. 言葉選びに慎重になる
順番は前後しますが、言葉を定義する際は、言葉の選び方は慎重に行っています。
なんでその表現になるのか?、その表現でユーザーさんにわかってもらえるのか?、チームのメンバーにとっても直感的か?などなど、ディレクター・デザイナー・エンジニアと役職にとらわれず議論することは多いです。
また、データベース上のテーブル名やカラム名、コードの変数名などもサービス上での言葉と同じものになるようにするなど、実装文脈でも同じようにやっています(コードだと英語になるので、文法上間違ってないか辞書を引き引きすることも)
むかし適当に命名した諸々の言葉が、後々容赦ない形で開発者やチームを襲ってくることもあったりするので笑
まとめ
以上、同じ概念のものを指すときの言葉を統一することを大事なんではという話でした。
このあたりは完全にやるのが中々難しい部分もありつつも、正しい言葉使いは、正しい理解とサービスの強化につながると思っています。