AIと歩むデザインシステム構築【UXデザイン勉強会vol.7/イベントレポート】

登壇者はこの方

*

野口 航己 氏

コミューン株式会社 テックリード/フロントエンドエンジニア

スタートアップ企業を中心にソフトウェアエンジニアとしてモーションデータ解析、決済システム、SNSマーケティングツールなど、多様なプロダクト開発に携わる。特にフロントエンド領域でリーダー職に従事。現在はコミューン株式会社にてフロントエンドアーキテクチャの刷新に取り組む。新しい技術への探究心を持ちながら、ユーザー体験の向上とチーム開発の効率化に注力する。

 

 

野口:本日は「デザインリブランディングの再構築に対してLLMを活用した」というお話をしたいと思います。

今回はエンジニア視点の話になるため、デザイナー視点だと異なる意見もあるかもしれませんが、デザインシステム構築でLLMの活用を検討されている方には参考になれば幸いです。

Commune概要

 

事例を紹介する前に、先にCommuneというプロダクトを簡単にご紹介させてください。Communeはノーコードでコミュニティプラットフォームを各製品や各ブランドに合わせて展開できるサービスで、その中でロイヤルカスタマーを育成し、各サービスの価値を高めることを目指したコミュニティサクセスプラットフォームです。
 

しかし、リリースから5年以上続いているプロダクトのため、デザインの統一性がないなど、様々な問題があり、入社してすぐにデザイナーから私へデザインリブランディングの要望がありました。そして、「とりあえず調査期間をください」ということで時間をいただきました。 

デザイン負債

調査の結果、デザイン負債の問題が数多くあることがわかりました。まず、Atomic Designではデザイナーにとって良くても、エンジニアにとっては使いづらいという不適切な分割がありました。

また、担当者の退職などの理由からメンテナンスが不在となり、UIコンポーネントライブラリが使えない状態にもなっていました。明確なレイアウトルールも存在せず、各画面ごとに様々なメディアクエリを発行しており、統一性がない状態でした。

顕在化したデザイン負債

その他、フロントエンドの負債も多数ありました。

今回はUXの話なので深くは言及しませんが、長く続いているプロダクトではこのような問題が多いと思います。負債を見るとリブランディングは大変だという印象があり、やり方を考え直す必要があると感じました。

デザイン要件の切り出し

そこで、まず最初にデザイン要件を切り出しました。各ブランドごとのプラットフォームなので、複数のテナントごとにテーマを用意したいと考えました。

Design Requirements 1/3

Design Requirements 2/3

次にコンポーネントごとのカスタマイズ性を担保したいと考えました。もともとはMaterial UIをベースにしていましたが、カスタマイズがしづらく、機能要件ごとに細かい違いがあるため、カスタマイズしやすいようにしたいと思いました。

Design Requirements 3/3

また、各ブランドのユーザーに対する体験を向上させるため、リッチなアニメーションを作りたいという要件や、端末ごとに横展開できるデザインシステムを作りたいという要求も出てきました。

これらの要件を踏まえると「全リプレイスしたほうが早いのではないか」という結論に至りました。

方針策定

方針としては、以下に決定しました。
 
- UIライブラリを新規で作る

  複数のプロダクトで利用し、オーナーシップを全員で持つ
 
- 並行して管理画面のリプレイス

  プロダクトの特性上、コミュニティ管理者が意思決定者になるのでフィードバックが得やすい

採用技術

採用技術も従来使用していたReactを基に、要件に沿ったもので各コンポーネントを構築していくことに決定しました。

 

デザイン仕様

デザイン仕様については複数のテナントごとにテーマを用意し、Material Design 3をベースにカスタマイズを行い、リッチなアニメーションやマルチプラットフォーム対応はCSS Modulesで最新技術をキャッチアップしつつアシストしていくことに決めました

工数削減の試み

プロジェクトを進めるうちに、思ったよりもアサインできるメンバーが少ないことがわかり、工数削減の必要性が出てきました。リプレイスが進行している間もロードマップは止まらず、要求される機能は増え続けるため、なるべく早くリプレイスを完了させたいと考え、工数削減のために「LLMが使えるのでは?」と考え、使用を検討しました。

LLMの選定基準とプロンプト例

LLMの選定基準として、まず学習データが悪用されないことを条件としました。機密情報の漏洩リスクを負わないように、利用規約としてLLMの学習に利用されないものを選ぶ必要がありました。
 
また、プロンプトが独立した思考で終わるのではなく、ある程度コンテキストを共有できることも条件に加えました。例えば、今回の場合はMaterial Design 3のコンポーネントを作るというコンテキストを共有した上で開発できると、次の開発時にも別のコンポーネントで利用することができます。そういったことができるLLMを選定しようと考えました。

そこで候補として挙がったのが「Claude」です。チャットの入力内容はチャット内部のみで完結し、チャットが消えれば破棄されるという規約であり、プロジェクトを組むとプロジェクト内部でコンテキストを共有できるため、採用しました。

人間とLLMの分業

実際に活用する際、すべてLLMが自動的に行うわけではないので、人間がどこまで責任を負うか、LLMに何をさせるかを洗い出しました。

ここからは有効だったプロンプトを2つ紹介します。

有効だったプロンプトの紹介

プロンプト例1: 詳細なガイドラインを作る

以下は、どのようなものを出力するかのガイドラインを作る際のプロンプトです。

プロンプト例2: ダブルチェック

先ほどの内容で出力されたものをコピーして、別のチャットに切り替え、このプロンプトを与えることで、さらに出力内容を別のコンテキストで評価させることができます。

こうした取り組みを3か月間行い、必要最低限のコンポーネントが完成しました。以下は、ストーリーブックですが、テキストフィールド以外にも様々なコンポーネントがMaterial Design 3ベースで実装されるようになりました。

結果

結果として、私を含めた3名程度の少ない工数で、多くのコンポーネントが高い品質で実装できました。ただ、今振り返ると技術選定には再考の余地があります。LLM自体もバージョン0が出ており、切り替えたほうが良いと思いますし、React Ariaを使った方がアクセシビリティを考慮した実装ができると思います。

 

振り返り

プロンプトは局地的なテクニックでしかなく、LLMの活用よりも、それに適した運用方法の策定が最も重要だと思います。何をさせたいのか、何を成果物として残すのかを決めてからLLMを活用するのが良いと思います。

これからやりたいこと

今後は、デザインシステムがある程度できてきたので、UIの自動生成を行いたいです。そのために先ほどお伝えした技術選定の改善やVRTのカバレッジ向上、またデザイン以外でもフロントエンドの課題はたくさんあるので、そこにも取り組んでいきたいと思います。

 

以上で、発表は終わりです。


 ▼▼ ぜひ他登壇者の発表レポートもご覧ください!

UXデザイン勉強会vol.7
イベント中にあがったQ&Aはこちらをチェック!

新規サービスの0→1フェーズでオブジェクト指向なUXデザイン【UXデザイン勉強会vol.7/イベントレポート】 - TECH Street (テックストリート) (tech-street.jp)

 

アジャイル開発組織におけるKA法実践の意義【UXデザイン勉強会vol.7/イベントレポート】 - TECH Street (テックストリート) (tech-street.jp)

 

 

Community Members

さまざまなテーマで事例や知見を学ぶ
IT・テクノロジー人材のための勉強会コミュニティ