はじめに
エンジニアとしてシステムを通してユーザーに価値を届けたいという思いはありつつ、具体的にどのようなサービスを開発すべきかについて、企画者に対して意見を言うことの難しさを思い悩むことがあります。企画者は日々データや数値に向き合っていて、分析や企画内容の検討に時間をかけているのだから、そこに対して意見を挟む余地がないように感じてしまいます。
一方で、企画者としてはエンジニアだからこそ知っていることを活かして意見を言って欲しいという話を聞くこともあります。
エンジニアとしての思いと企画者からの期待に応えるために個人的に考えてきたことをまとめます。
実際のところ、提案を実現することはまた別の話で、地道な努力が必要かつタイミングもあります。ただ、少しでもエンジニアとしてユーザーに価値を届けたいという気持ちの参考になればと思っています。
SIerにおける提案
SIerでエンジニアとして働いていて、顧客を通してユーザーに価値を届けることにもどかしさを感じてる人は多いと思います。自分が開発するシステムは本当にユーザーに価値を届けることができるのか疑問に思うことがあります。
私がSIerで働いていたとき、いくつか顧客へのシステム提案に関わる機会があり、その中で顧客にとってまったく新しいサービスないし事業内容を含んだシステム提案を経験しました。もちろん、かなり稀な事例で、営業の顧客との関係づくりがあってこそだと思いますが、そのようなことは可能ではあると実感しました。
情報処理技術者試験でITストラテジスト試験があり、この試験内容は上記のシステム提案のイメージに近いです。営業の人がサービスないし事業内容を含んだシステム提案をする環境を作ってくれることがあり、エンジニアとして意見を言える状況があったとき、ITストラテジスト試験の内容を参考にすることができると思っています。
ITストラテジスト試験では、顧客企業の競合優位性の確保など経営課題を定義し、その経営課題に対してITを活用したビジネスモデルを考え、そのビジネスモデルがユーザーにどのような価値を届けることによって事業として成り立つのかを考える観点を学ぶことができます。
大抵は顧客が持つインフラ(人/モノ)にIoT機器を組み込むことで情報を集約して、その情報をもとにユーザーへ付加価値を提供する内容ですが、過去の試験問題には様々な業界のビジネスモデルの話があって、事例に即した形で参考にできます。
技術を活用した提案
Webやネイティブアプリでできることは日々増えています。エンジニアとして最新情報をキャッチアップする中で、この技術をあのサービスで活かせればおもしろいことができると考えることはあります。その考えこそが企画者がエンジニアに求める意見だと思っています。
個人的に経験したWebの例で言えば、AMPページでAMPコンポーネントを使うことでUI/UXを元ページに近づける提案をしました。
AMPではJavaScriptが使用できず、CSSの容量にも制限があるので、リッチなコンテンツ表現には限界があるという思い込みがありました。そのため、カルーセル表示したいコンテンツについて、例えば5件あるうち、ファーストビューに表示できる2件のみ固定表示している状態でした。
AMP Conference 2019に参加する機会があり、そこでAMPページにおけるUI/UXは強力なデフォルトであるAMPコンポーネントがいい感じにする思想であることを知りました。AMPコンポーネントをいろいろ調べた結果、amp-carouselにたどり着いて、AMPページでも表示したい件数のすべてをスクロール表示できるUI/UXを実現することができました。
AMP Conference 2019:https://amp.dev/ja/events/amp-conf-2019/
AMPコンポーネント:https://amp.dev/ja/documentation/components/
UI/UXの提案
Webサイトのページ遷移をスムーズにするために、SPA(Single Page Application)化を検討することはよくあると思います。その際に再描画する必要があるコンテンツと必要がないコンテンツがあることに気づきます。
例えば、グローバルヘッダーはどのページでも共通のコンテンツなので、ページ遷移のたびに再描画する必要がなく、再描画しないことによってページ遷移に伴う描画速度を抑える効果を期待します。そのようにコンテンツを整理につけても、本当にページ遷移によってグローバルヘッダーを常に表示すべきかということを課題に感じます。
大抵のサイトは、コンテンツが階層構造になっています。
ーーーーーーーーーー
グローバルヘッダー
ーーーーーーーーーー
メインコンテンツ
ーーーーーーーーーー
サブコンテンツ
ーーーーーーーーーー
ページを遷移すればするほど、ヘッダー要素が積み重なっていってしまい、スマートフォンの限られた画面領域では本来ユーザーに見て欲しいコンテンツをさしおいて、ヘッダー要素が目立ってしまう状態もあり得ます。そこでいろいろなサイトを見ていく中で、AppleのUI/UXが自分の中でしっくりきました。
Appleのサイトは下記の構成になっています。iPhoneなど製品ページに遷移すると、Appleロゴが上に隠れて、iPhoneなど製品名がグローバルヘッダー領域に表示される形になっています。そして、一番上にスクロールするとAppleロゴが出てきます。
ーーーーーーーーーー
Appleロゴ
ーーーーーーーーーー
iPhoneなど製品
ーーーーーーーーーー
概要/仕様
ーーーーーーーーーー
ネイティブアプリのページであれば、わざわざAppleのロゴを出す必要はないと思います。ただ、Webサイトを考えたときに何のサイトを見ているかの情報をなくすことはできないので、その解決策としてスクロールしない限りは上に隠れるという考え方であると感じました。すごく細かい点ではありますが、そのときユーザーに見せたい情報とWebサイトとして出すべき情報の両立について非常に参考になりました。
おわりに
ユーザーに価値を届けたい気持ちを行動にする観点として、他にも一人のユーザーとして考えることや、やりたいことについて全体のストーリーが描けるかチェックすることなどがあります。サービスに関わるみんながユーザーに価値を届けることに対して、自分のできることを最大限考えて貢献することを目指していきたいです。
実際のところ、ユーザーの使い勝手だけでなく、事業のこと、ステークホルダーのこと、今の技術環境など目の前の提案や意見以上に考慮すべきことはたくさんあり、実現についてはさらに努力が必要です。その実際を踏まえた上でバランスよく貢献していきたいところです。
明日は、@an_sony さんの「Set#include?がなぜ速いのかを理解する」です。お楽しみに!!