今日、勉強会等も盛んに行われている"UX"。筆者は社会人2年目のしがないWEBエンジニアですが、この波についていこうと、2016年3月9日に開催されたUX JAM 7に参加しました。LTやUXデザイナーの方との会話を通して多くの刺激を受けました。今回の記事は、その刺激をもとにしてエンジニア視点でUXや開発手法について考察したものです。
UI/UXからUXへ
皆さんも肌で感じているかも知れませんが、ここ最近でUI/UXという表記が減ってきているように思いませんか? 最近はWEB・アプリ界隈でもUXが独立で語られるようになっていると同時に、UXがUIの概念を包括して語られることが多くなっています。従来、「UIがもたらすユーザビリティ」という意味で語られがちだったUXですが、もっとメタな概念(=より本質的な意味でのユーザ体験)を含むようになってきているようです。
開発手法とUX
UXデザインでは、ユーザの観察・分析とプロダクトへのフィードバックが繰り返し行われます。つまり、試行錯誤の繰り返しです。日々変化するユーザのニーズをキャッチしてその本質を抽出しサービスに反映するには、迅速に試行錯誤のサイクルを回していく必要があります。
現在システム開発の現場で主流となっている開発モデルに「ウォーターフォール」というものがあります。ウォーターフォールとは要求分析、設計、実装、テスト、運用といった一連の開発プロセスを上流から順番に実施していくものです。原則的には一度決めたゴールは変えずに開発を進めます。1つのサービスを作るときに、幾つかの機能(例えばブログサービスであれば、投稿・検索・コメント・クリップ)を含んだ完全体をゴールとします。
一方、最近頻繁に聞くようになった開発手法に「アジャイル開発」というものがあります。アジャイル開発は「ソフトウェア開発は複雑であらかじめすべてを計画することはできない」という前提のもと、短いサイクルで反復的に開発するというモデルです。もちろん各サイクルに一連の開発プロセスは存在しますが、1サイクルで目標にするのは小さいゴールです。例えばブログサービスであれば、初期段階のゴールは「投稿機能」にしてサービスをリリースします。その後、各種分析を行った上で必要な修正・機能追加を実施していくようなイメージです。小さく段階的に素早くサービスを成長させていくことができる開発手法です。
先に述べたUXデザインのサイクルとアジャイル開発は親和性が高いといえます。ユーザのニーズを迅速にプロダクトに反映するためには、言わずもがな、迅速な開発が必要だからです。「より本質的なユーザ体験」という意味でのUXの考え方は開発手法とともに進化してきていることがわかります。
サービスの特性とUX
ここまで読むと、「適切なUXをデザインするためにはアジャイル開発を実践することが必須」というように見えますが、一概には言えないでしょう。サービスの特性によって、適切な開発手法やデザインすべきUX、適用するタイミングが異なるからです。
ここではB向けサービス(Business=法人)とC向けサービス(Consumer=一般消費者)に分けて考えてみたいと思います。両者ともユーザのニーズを満たして満足感を得てもらうことは重要です。しかしながら、それぞれでアプローチが異なると考えます。
C向けのサービス、例えばスマホゲームにおいては、「いかにユーザを飽きさせないか」が重要な観点の1つです。新しいユーザのニーズをいち早くキャッチしてサービスに反映できるかが勝負の分かれ目になります。従って、開発手法としてはアジャイル的に進められるのが理想的です。
一方で、B向けのサービスの場合は状況が異なります。B向けのサービスは利用企業の日々の業務に直接関わることになるので頻繁なアップデートは敬遠されます。アップデートによるサービス停止や、機能・UIの変更は場合によっては実業務に大きく影響することがあるからです。試行錯誤を素早く繰り返すというよりは、ある程度時間をかけてユーザのニーズを分析し、適切なタイミングを見計らって反映するほうが得策といえます。従って、開発手法としてはウォーターフォールの方が適しているでしょう。
まとめ
今回の初寄稿では、UXと開発手法について考察してみました。一概に「これが良い」というものはありません。サービスの特性を理解した上で、適切なUX設計と開発の方法を検討する必要がありそうです。
今後もエンジニア的視点でのUXについて継続して記事を書いていく予定です。