みなさんはUXエンジニアという職種を知っていますか?

近年、エンジニアでありながらもデザインの知識やスキルを活用して、独自の価値を発揮する人たちがいます。しかし、人によって肩書きが異なったり、企業・組織規模・プロダクトの性質によって役割が変化するため、具体的にどのような存在なのかよく分からないと感じる人も多いのではないでしょうか。

そこで、今回は「UXエンジニア」として活動している人たちがUXエンジニア特有の価値観や活動内容、ナレッジや悩みを共有するイベント「UX Engineer Meetup」を2019年10月7日(月)に開催しました。今回は登壇された方々の発表内容を元に、UXエンジニアの仕事内容や組織における役割などについてお届けします!

株式会社サイバーエージェント | 谷 拓樹さん「私はいかにしてUXエンジニアになったのか」

はじめに、株式会社サイバーエージェントでUXエンジニアを務める谷 拓樹さん(@hiloki)に、UXエンジニアとは何者であるか、UXエンジニアとして働くご自身のキャリアについてお伺いしました。

UXエンジニアとは何者か

谷さん:
どの企業の中でも、いち早くUXエンジニアのポストを確立したGoogleは、UXエンジニアを「優れたデザイン感覚と技術的なノウハウを生かし、次世代のプロダクトを開発する存在」と定義しています。また、Googleによる定義から、UXエンジニアはリサーチャーやデザイナーと協力して目的を達成する能力・高度な実装能力が求められることを読み解くことができます。

UXエンジニアは、優れたデザイン感覚と技術的なノウハウを活かして次世代のプロダクトを開発するポジションです。リサーチャーやデザイナーと協力して、新しい機能の定義・実現、新しいコンセプトのテスト、最終的な実装の支援を行います。
ユーザー エクスペリエンス(UX)エンジニア、プロアクティブ サーチ&ナレッジ(iOS)- Google 人材募集より

BTCモデルにおけるUXエンジニアのポジションは、以下の画像のように位置づけることができます。ここではCreativeをDesignと表現しています。UXエンジニアはテクノロジーの領域に身を置きながらも、プロダクトのデザイン・ビジネス要件・コンセプト等の検証の実践やファシリテートをすることが求められています。

UXエンジニアは全領域をカバーするような、フルスタックな働き方を求められることも少なくありません。しかし、例え同じスキルセットを持っているUXエンジニアがいても、それぞれの働き方は事業形態・組織形態・組織規模などによって大きく異なります。そのような環境の中で最大限の価値を発揮するためにも、UXエンジニアが自らの責任範囲を定義することが重要です。

UXエンジニアの主な仕事

UXエンジニアに求められる仕事の中から、ここでは「プロトタイピング」と「デザインシステムの構築」を取り上げます。

プロトタイピング

プロトタイピングとは、コンセプトやシナリオ・UIの整合性を検証することを目的とした作業です。また、プロトタイプを用いてチームの合意形成を行うこともプロトタイピングを行う目的の1つです。UXエンジニアは機能的(Hi-Fi)なプロトタイプを作成する技術を備えていることから、ユーザーへのプロトタイプ検証やプロダクトの実現可能性を検証する際に、大きな価値を発揮します。

デザインシステムの構築

デザインシステムとは、プロダクトの品質や「らしさ」を守りながらスケール・運用するための仕組みを意味します。デザインシステムは、エンドユーザーに対してブランドメッセージや一貫した体験を提供するための物でありながら、システムユーザーのより良い開発体験を実現することも可能とします。

より良いプロダクトを生み出すためには、プロダクト・ユーザー・ビジネスに目を向けると同時に、チームにも目を向ける必要があります。ツールや共通言語だけでなく、同じ文化を共有できるチームを作ることもUXエンジニアの重要な役割です。

デザイナーとエンジニアの間の溝を一時的に埋めるのではなく、境界をなくすこと・境界のない文化を醸成すること・これらを実現するチームを作ることが、良いプロダクトの創造に効果をもたらすのではないでしょうか。

UXエンジニアとは何者か、の解

現在はUXエンジニアとは単なるジェネラリストではなく、高い共感能力を持ったスペシャリストだと考えています。UXエンジニアは様々な技術を身に付けているからこそ、器用貧乏と捉えられてしまうことも少なくありません。

一方でUXエンジニアは様々な領域を知っているからこそ、高い共感能力を有しているという特徴もあります。この高い共感能力を用いて、局所的ではなく大局的な視点でサービス開発を前進させるスペシャリスト、「UXエンジニア」は今後さらに重要な存在になるのではないでしょうか。

クックパッド株式会社 | 重田 桂誓さん「プロトタイプドリブンデザインを実現する考え方と環境」

つづいて、クックパッド株式会社でUXエンジニアを務める重田 桂誓さん(@sagaraya)に、「たべドリ」アプリの開発事例を元に、UXエンジニアがプロトタイピングを実践する手法について伺いました。

重田さんが考えるUXエンジニアの定義はこちらの登壇後記にも綴られているのでぜひご覧ください!
UXエンジニアとは – UX Engineer Meetup登壇後記 –

重田さん:
みなさんはプロトタイピングをしていますか?プロトタイピングには以下のような利点があります。

  • 早くフィードバックを貰える
  • 言葉にできないものをカタチにしながら考えられる
  • モノを見ながら話せるので生産性を高く保てる

一方、実装レベルでのプロトタイピングの実践は、以下の理由から難しい作業であると言えるでしょう。

  • 締め切りに追われている中で行わないといけない
  • 価値を判断できないのに実装コストをかけていいか分からない
  • 実装せずにもっと低コストで検証したい

プロトタイピングはとても困難な作業ですが、今の組織ではプロトタイピングを何度もできている実感があります。「たべドリ」というアプリケーションの開発では、チャットやポッドキャストのようなプロトタイプを実装していました。今回はこの、おいしいたべかた学習ドリル「たべドリ」の開発事例を元に、プロトタイピングを実践するための考え方や環境についてお話します。


1. Living onを重視する

「Living on」とは、開発中のプロダクトを自らが試用して評価する手法を指します。この手法は従来から「ドッグフーディング」と呼ばれていました。しかし、開発中の製品を日常生活の中で試用することが大切にされている今は「Living on」という言葉の方がしっくりきます。
Living onはAppleのアイデアメソッドについて解き明かされている書籍「Creative Selection」から引用した物です。

たべドリが目指すゴールは、毎日の体験を通してユーザーが自分の感覚で料理を楽しめるように成長することです。「毎日の体験を通して」という部分がポイントですが、ユーザーテストではプロダクト利用時の体験しか検証ができないという課題があります。

プロダクトを利用する前後の体験を検証(Living on)するためには、プロトタイプを実装した上で、実データを用いて生活の中で利用する必要があります。そこで「たべドリ」の開発では何度もプロトタイピングを行い、Living onを実践していました。

2. エンジニアとしての常識を捨てる

デザインプロセスとエンジニアリングプロセスは、頭の使い方が大きく異なります。デザインプロセスは多くの可能性や選択肢の中から最適解を探る作業であるのに対し、エンジニアリングプロセスは様々な要件を満たしながら正しく価値を届ける作業です。

プロトタイピングをしている最中の頭の使い方はデザインプロセスにとても似ています。一方で作業には実装作業が求められることから、プロトタイピングはエンジニアリングを伴うデザイン行為であると考えられます。

プロトタイピングを実施する上でのポイントはエンジニアとしての常識を捨てることです。

普段であれば保守性や安定性・仕様の準拠などを満たしながら実装をすることが求められます。しかし、プロトタイプの実装フェーズでは普段の常識ではなく、開発スピードの早さが求められます。このことから、プロトタイピングではコードレビューや凝ったアーキテクチャ設計は行いません。もちろん、開発スピードが低下しないように最低限の保守性を担保したり、場合によってはテストコードを書くこともあります。

工数や期限を大切にしながらも、高品質を追求するために「みんなで見積もらない」ことも大切にすべきポイントです。みんなで見積もってしまうと、見積もり通りに進めることや期限までに終わらせることに意識が働いてしまいます。

この結果によって品質が損なわれることを避けるため、見積もりは自らの内に留めて行います。また、デザインツールを使った方が素早く検証をできる場合もあるため、実装に固執しないことも大切です。

3. 足回りを充実させてスピードアップ

クックパッドには「Citrus」というデザインシステムが用意されています。このデザインシステムが高速なプロトタイピングの実現に大きく貢献しています。Citrusは単一サービスのデザインシステムではなく、会社共通のデザインシステムです。会社共通のデザインシステムなので、クックパッドのミッションやカルチャー、デザイン原則がドキュメント化された物となっています。使用する対象が新規事業の場合でもすぐに使うことができます。

また、クックパッドには「haneda」という社内アプリ配信サービスがあります。Githubでラベルをつければマージしなくても配信できます。この共通配信基盤があることで、サービス毎に配信環境を作る必要が省略できるため、迅速にプロトタイプへフィードバックを貰うことができます。


以上、プロトタイピングを実践するための考え方や環境についてお話ししました。実装を伴うプロトタイピングはとても難しい作業ですが、今はこれらの考え方や環境が実践を支えています。そして、UXエンジニアはこれらの作業を推進できる貴重な存在ではないでしょうか。

株式会社グッドパッチ | 大角 将輝「不確実なソフトウェア開発におけるUXエンジニアの意義と役割」

最後に、弊社でUXエンジニアを務める大角将輝(@cawapa)から、ソフトウェア開発の傾向や開発現場の内情、その中でのUXエンジニアの在り方についてお話しました。

昨今のソフトウェア開発の傾向

大角:
近年は機能を作るだけではなく、心地よさや個人のニーズに寄り添うような、ヒトの心を動かすプロダクトが求められる時代へと変化しています。この変化には社会がモノで溢れていることや、モノがコモディティ化していることが影響しています。

また、サブスクリプションビジネスの台頭に伴い、ユーザーにシステムを導入してもらった後も継続的に使い続けてもらう必要性が増していることも特徴の1つです。この特徴から、昨今のソフトウェアは短期的でなく長期的にユーザーと向き合いながら、継続的に価値を届けているという傾向があります。

また、昨今のソフトウェアはビジネスの成長に伴い、ユーザーへ包括的に体験を提供するために、様々なプラットフォーム・デバイス・プロダクトを用いて、カバー領域を拡大させているという傾向もあります。

昨今のソフトウェア開発は複数の要素が複雑に絡み合っているため、1つの要素に着目するだけではユーザーに価値を提供することが困難な状態にあります。「エンジニアリング組織論への招待」では、この複雑な状態を「3つの不確実性」と定義し、以下のように紹介しています。

  1. 目的不確実性: 何が求められているか分からない
  2. 方法不確実性: どのように作れば良いのか分からない
  3. 通信不確実性: 他人のことが分からない

 

これらの不確実性が乱立した中でより良いソフトウェアを開発するための鍵となるのが、「カンペキ」よりも「カイゼン」に重きを置くことです。最初に時間をかけて要件を漏れなく洗い出し、開発工程に移るウォーターフォール型のプロセスではなく、計画・開発・リリース・分析を繰り返して作りながら考えるアジャイル型のプロセスが注目されているのも、様々な不確実性に対処するためです。

その一方、開発現場では

ソフトウェア開発における不確実性が増加すると同時に、開発現場の状況も大きく変わりつつあります。

その1つは、技術の進化・多様化によって職能が分断されるようになった点です。デザインツールやデザイン手法・哲学・開発言語・ライブラリ等、各技術における専門性が高くなることで、お互いが相互に理解することが難しくなっています。

そしてもう1つは、専門性が高くなることで「専門性の谷」が生まれているという点です。みなさんは以下のような経験をお持ちでないでしょうか?

  • デザイナーがなぜこんな設計にしたのか分からない
  • エンジニアが何を求めているのか分からない
  • お互いが責任のなすり付け合いをしている
  • デザイナーとエンジニアのコミュニケーションに壁を感じる

 

このような問題は職能自体にあるわけではなく、職能と職能の間、つまり「専門性の谷」によって生まれています。「専門性の谷」が深いと、どうしても個別最適な判断になってしまいがちです。「専門性の谷」を解消するためには、デザイナーとエンジニアの共通言語を用いてコミュニケーションを行う必要や、使いやすさと作りやすさの視点を持ちながら最適解を導き出す必要があります。私はこれらのプロセスを実践し、「専門性の谷」に橋をかけることがUXエンジニアの1つの役割だと考えています。

不確かな状況の中でより良いUXを実現するために

Goodpatchのエンジニアは、クライアントワークにおけるプロジェクトのキックオフ・要件定義・開発などの全ての工程に携わり、技術的観点からユーザー体験の向上に寄与します。例えば、UI設計のフェーズではデザイナーと一緒に理想のUIについてのコミュニケーションを取りながら、必要に応じて仮実装を行ってブラッシュアップを図る役割を担います。UXエンジニアが高い精度の仮実装(テクニカルプロトタイプ)を行うことで、プロトタイプを用いてインタラクションやデータモデルの設計を検証できるという利点が生まれます。

リリース後の運用フェーズでは、組織やプロダクトが大きくなってもデザインを維持できる環境を作る役割を担うこともあります。たとえば、デザインシステムやコンポーネントカタログをデザイナー・エンジニアと一緒に整えたりするといった仕事です。詳しくは別資料「デザインとエンジニアリングをつなぐコンポーネントの運用設計」をご覧ください。

UXエンジニアが果たす役割とは、デザイナーとエンジニアの領域を越えてプロトタイピングやUIコンポーネント・スタイリングアーキテクチャの設計を実践することで、デザインとエンジニアリングの両輪を支えることではないでしょうか。

UXエンジニアには、デザイナーとエンジニアの相互理解を深め、部分最適ではなく全体最適に導くチームを作る力、そのチームを牽引してより良いUXを実現できる力があると信じています。


UX Engineers: What We Are by Briley Sandlinより


「UX Engineer Meetup」のイベントレポートをお届けしました。UXエンジニアの役割や仕事内容についてご理解いただけましたでしょうか?今回のスピーカーの方々が異なった働き方をしているように、UXエンジニアは組織やチームによってその役割や在り方が変わる存在です。それぞれの組織が持つカルチャーや抱えている課題に応じてUXエンジニア像を定義し、その役割を全うすることが大切なのではないでしょうか。

また、Goodpatchではさらにデザインの力を信じるエンジニアを募集しています。GoodpatchのことやGoodpatchのエンジニアについてお話しをする機会も用意しております。興味がある方はこちらのリンクから気軽にご連絡ください!!