【翻訳】ソフトウェア品質とUXの関係(Filipe Nzongo, UX Collective)

uxdesign.cc

AIによる要約:この記事では、ソフトウェア品質とユーザーエクスペリエンス(UX)の関係が密接であり、優れたUXを実現するためには視覚デザインだけでなくソフトウェア自体の品質が不可欠であると述べられています。品質はユーザー、開発者、マネージャーなど立場によって意味合いが異なりますが、共通して信頼性・効率性・使用性などが重要とされます。ISO/IEC 25010で定義された品質特性を紹介しながら、特に保守性と信頼性がUXに与える影響を強調しています。デザインシステムの導入により保守性が高まり、視覚デザインの適切さが製品への信頼に直結することも解説されます。さらに、デザイナーがソフトウェア品質の基礎を理解することの意義として、現実的な設計判断・開発者との円滑な連携・製品戦略への貢献が挙げられます。結論として、品質への関心は技術者だけのものではなく、UXを設計する全ての者にとって本質的な課題であり、学際的な視点から品質に向き合うことが成功する製品づくりの鍵であると締めくくられています。

あなたの会社のデジタルプロダクトは十分な品質ですか?

ソフトウェア品質とユーザーエクスペリエンス(UX)、およびヒューマン・コンピュータ・インタラクション(HCI)との関係は本質的に結びついており、あらゆるインタラクティブなプロダクトやソフトウェアの成功にとって基盤となるものです。これらは別個の専門分野に見えるかもしれませんが、実際には補完的であり、効果的で効率的かつ満足度の高いユーザー体験を創出するうえで相互に依存しています。

この記事の着想は、UNILINSでのソフトウェア工学の学習中に得た基本的な気づきから生まれました。私の科学的研究プロジェクトでは、HCI、マルチメディア、ソフトウェア品質について深く掘り下げました。特に印象的だったのは、HCIとソフトウェア品質の両方が、単なるインタラクションデザインを超えてシステムの本質的な品質を重視していた点です。現在でも、情報アーキテクチャやユーザー体験(UX)といった重要な領域において、視覚的な側面だけでなく設計上の問題を抱えたソフトウェアを頻繁に見かけます。

この記事では、ソフトウェア品質とユーザーエクスペリエンスの関係、およびその概念的なつながりについて探ります。ビジュアルデザインだけに限定せず、ソフトウェアが技術的にどのように構築されるかという観点を含めて、高品質なソフトウェアを構築することの重要性を説明し、なぜデザイナーがソフトウェア品質についてもっと学ぶべきなのかを解説します。

ソフトウェア品質とは何か?

品質を定義することは複雑な作業です。その本質が主観的なものであるためです。品質とは何かはプロジェクト、クライアント、文化によって大きく異なり、標準化された概念とは言えません。

計算機科学およびソフトウェア工学の分野では、IEEE(米国電気電子学会)が2つの観点を提示しています。「システム、コンポーネント、またはプロセスが特定の要件にどの程度準拠しているか」または「システム、コンポーネント、またはプロセスが顧客またはユーザーのニーズと期待にどの程度準拠しているか」です。

この観点を補足する形で、Pressman(2006年, p. 580)は、ソフトウェア品質を「明示的に記述された機能的および性能上の要件、明記された開発基準、そしてすべてのプロフェッショナルにより開発されたソフトウェアに期待される暗黙の特性に準拠すること」と定義しています。

ソフトウェア品質は品質保証と本質的に関連しています。この分野の研究を通じて私はUXDQAという手法を開発・文書化しました。これは品質保証への実践的なアプローチを示すものです。

現在の情勢では、品質の重要性はビジネス競争力において新たな水準に達しています。かつては差別化要素と見なされていたものが、今では市場にとどまるために不可欠な前提条件となっています。これはDEVMEDIAの指摘にもあります。計り知れないコンピュータシステムの需要の中で、組織は品質をソフトウェア開発のすべての段階で中心的かつ譲れない要素と見なす必要があります。それによって競争力の持続性が確保されるのです。

言い換えれば、ソフトウェア品質とは、ソフトウェア製品がユーザーの明示的および暗黙的なニーズをどの程度満たすかを決定する特性のことを指します。これには以下のような要素が含まれます:

  • 機能性: ソフトウェアは、正確かつ完全に、想定された動作を実行できているか?たとえば銀行アプリが頻繁にクラッシュするなら、それは品質の欠如を示しています。
  • 信頼性: 所定の条件下で、一定期間にわたって故障せずに動作するか?
  • 使用性: ソフトウェアは、ユーザーにとって学習・使用・理解が容易か?
  • 効率性: システム資源(パフォーマンス、応答時間、消費リソース)を最適化しているか?
  • 保守性: ソフトウェアは修正・適応・変更が容易か?
  • 移植性: 単に技術的に移動できるかどうかだけでなく、ユーザーにとってはどこでも動作することへの期待があります。異なるハードウェアやソフトウェア構成との互換性を含みます。製品が多様なデバイス上でもアクセシブルかつ機能的であることが設計時に考慮されるべきで、明確なビジネス上の正当性がない限り、ユーザーを排除すべきではありません。
  • セキュリティ: ソフトウェアは、データや機能を不正アクセスから保護しているか?

品質の認識とは

現在のようにソフトウェア開発の現場がダイナミックに変化し、コンピュータシステムへの需要が指数関数的に高まっている状況において、品質は組織の競争力において否定できない要素として浮上しています。ここで強調しておきたいのは、「人工知能(AI)がすべての品質に関する問題を解決する」という考えを払拭する必要があるということです。AIはプロセスを最適化したり、不具合の検出を支援したりすることはできますが、ソフトウェアの本質的な品質を構想し、設計し、確保する責任は基本的に人間にあり、判断力と細心の注意が求められます。

AIによるソフトウェアテスト支援プロダクト。出典:Work&Co

また、品質というものの受け取り方は利害関係者ごとに異なるという点も押さえておく必要があります。たとえば、ユーザーは使用性や自分のニーズが満たされているかに注目しますが、開発者は保守性やバグの有無を重視します。プロダクトマネージャーやプロジェクトマネージャーであれば、コストや納期、戦略的整合性が主な関心事になります。こうした視点の多様性があるため、品質の追求には多面的なアプローチが求められます。

  • ユーザー: ソフトウェアを実際に使う立場として、使いやすさやパフォーマンス、結果の信頼性、価格といった要素に主に関心を持ちます。
  • 開発者: ソフトウェアの内部構造やコードの質に重点を置き、顧客要件への準拠性なども評価の対象とします。
  • マネージャー: ソフトウェアの品質は企業の利益と不可分であり、開発スケジュールの管理や予算との整合性も重要な関心事になります。

以上からわかるように、ソフトウェア品質は単なる要件や形式的な「チェック項目」ではありません。一部の開発者やマネージャーが退屈に感じるようなものではなく、むしろシステム開発全体に貫かれた根本的な要素であり、ビジネス目標の達成、プロジェクトの成功、そして最も重要なこととしてユーザーの満足に不可欠なものです。

ソフトウェア品質とUXの関係とは

ソフトウェア品質とユーザーエクスペリエンス(UX)の交差点は、単なる理論的な概念にとどまらず、デジタルプロダクトの成功を支える基盤です。一見するとこれらは別個の分野に見えるかもしれませんが、実際には非常に深く結びついています。

どれだけ美しくデザインされたインターフェースがあったとしても、ソフトウェアの動作が不安定で遅く、バグが多いのであれば意味はありません。結局のところ、ソフトウェアがどれだけ正確に機能し、どれだけユーザーとスムーズにやり取りできるかが重要です。つまり、ソフトウェア品質は優れたユーザー体験にとって本質的な柱であると言えます。いくら革新的なデザインであっても、機能性や信頼性、パフォーマンスに問題があるソフトウェアでは成功しません。

以下に、両者がどのように絡み合っているかを示します。

  • 使用性という接点: 使用性はあらゆるデジタル製品にとって重要な属性であり、ユーザーインターフェースがどれだけ使いやすいかを定義します。使いにくく、学習しにくい製品は、ユーザーからすぐに見放されます。さらに使用性はISO/IEC 25010に定められたソフトウェア品質の原則の一つであり、インターフェースの美観、ユーザーエラーの防止といった設計上の要素が含まれます。
  • 満足度への影響: バグや遅いレスポンス、頻繁なエラー、混乱を招くインターフェースなど、ソフトウェア品質が低いことを示す兆候は、ユーザーの不満や苛立ちにつながり、最終的に製品の離脱を招きます。逆に、高品質のソフトウェアはスムーズで信頼性の高い体験を提供し、ユーザーの満足度とロイヤルティを高めます。
  • 信頼と信用: 高品質なソフトウェアは、プロフェッショナルさ、信頼性、企業への信用を伝えます。品質に問題があると、ブランドイメージが損なわれ、ユーザーの信頼を失うリスクがあります。
  • 効率と生産性: 効率的なソフトウェアは、ユーザーがタスクを迅速かつ障害なく完了できるようにし、結果として生産性が向上します。
  • アクセシビリティ ソフトウェア品質はアクセシビリティにも関係しており、多様な能力を持つ人々が製品を効果的に使えるようにすることを意味します。これはUXやHCIにおいても不可欠な観点であり、インクルーシブデザインの推進につながります。

ソフトウェア品質規格とは

ソフトウェア開発の領域では、品質を評価・保証するための多くの規格が存在し、それぞれに独自の特性があります。どの規格を採用するかはプロジェクトの性質や企業の文化によって異なり、戦略的な判断が求められます。こうした品質規格の本質的な目的は、開発プロセスの成熟度を高め、本質的に高品質なソフトウェアの提供を可能にすることにあります。

本記事では、特にISO/IEC 25010:2011に焦点を当てます。この規格は現在、ISO/IEC 25002:2024へと更新されており、ソフトウェア製品の品質に関して広く認知されている8つの特性を明示しています。

  • 機能適合性
  • パフォーマンス効率
  • 互換性
  • 使用性
  • 信頼性
  • セキュリティ
  • 保守性
  • 移植性

ソフトウェア製品の品質特性8項目。出典:SQuaRE(ISO/IEC 25010)

ただし、これらの規格を実際に適用・遵守することは、理論上は簡単に見えても、実践面では非常に困難です。この作業には、システム要件や機能性をすべて網羅的に把握し、厳密に検証するという包括的な視点が必要になります。そして、最終的な成果物が、ユーザーの期待とビジネス目標を確実に満たしていることを保証しなければなりません。

保守性とデザインシステムの関係とは

ソフトウェア製品がどれだけ保守・拡張しやすいかは、その品質を測るうえで極めて重要な指標です。キャリア初期のデザイナーの中には、ユーザーインターフェース(UI)を納品した時点で自分の仕事は終わったと考えてしまう人もいますが、これは誤った視点です。製品の将来像や、リリース後の長期的な持続性を考慮することが極めて重要であり、この観点は「保守性」に直接関わっています。そして、この保守性は、デザインシステムを導入することで大きく向上します。

保守性の文脈において、デザインシステムは再利用可能なUIコンポーネント、インタラクションパターン、ビジュアルガイドラインを集約した統一ライブラリの役割を果たします。これにより、デジタル製品の保守作業が大幅に簡易化され、以下の点で有利になります:

  • 一貫性: 「インタラクションデザインにおける一貫性とは、単に同じコンポーネントやパターンを再利用することにとどまりません。ユーザーが製品を操作するたびに操作を再学習しなくてもよいように、全体として統一的で予測可能な体験を構築することです」(Nzongo, 2022年, p.102)。デザインシステムは、デザイナーと開発者の間で共通言語を確立し、更新をスムーズにし、ユーザーを混乱させる視覚的・挙動的な不一致を防ぎます。たとえば、自社のブランドカラーが変わった場合でも、色トークンやボーダー半径を一括で変更するだけでUI全体の刷新が可能になります。
  • 拡張性: デザインシステムは、時間の経過とともに製品を進化させることを可能にし、既存のインタラクションモデルを維持しながら新機能を容易に追加できます。たとえば、macOSのメニューバーは1984年からその基本的な設計を維持しています。

macOSのメニューバー。出典:Martin Nobel

したがって、デザインシステムは単なるデザインツールではありません。ソフトウェア品質という文脈において、保守性を飛躍的に向上させる戦略的資産であり、ソフトウェアの全体的な品質と持続性に決定的な影響を与える存在なのです。

プロダクトの信頼性とは

ユーザーの視点から見ると、ソフトウェアの信頼性は品質の中核を成す要素です。デジタルプロダクトは単に動作するだけでは不十分で、信頼感や安心感を与えられなければなりません。ソフトウェアがこの信頼を構築できなければ、ユーザーを維持し、長期的な関係を築くことは困難になります。

この「不信」を回避するためには、視覚デザインがブランドおよび製品の目的と一致していなければなりません。たとえば銀行アプリであれば、金融機関としての安定性と信頼性を視覚的に表現する必要があります。曖昧なデザイン要素は、初回利用時の不安感を招きかねません。

この前提に基づいて、簡単な比較をしてみましょう。以下のUIのうち、視覚デザインだけを見てどちらがより信頼を感じられるでしょうか?

2つのモバイルログインUI画面の比較。出典:Filipe Nzongo

視覚デザインがソフトウェアの目的と完全に一致していると、ユーザーが感じる信頼性の構築に大きく貢献します。さらに、洗練されたビジュアルデザインは、テクノロジー受容モデルに基づくユーザーの製品受け入れを促進します。これはUXに密接に関連した要素です。

David Robinsら(2010年)によれば、デザイン上の選択はユーザーの信頼を育むことも、逆に損なうこともあるとされており、以下のような点に影響を及ぼします:

もちろん、視覚デザインだけでソフトウェアの技術的信頼性を保証することはできません。しかし、ユーザーがそれを「信頼できる」と感じるためには、視覚デザインがきわめて重要な役割を果たすのです。いくら技術的に堅牢であっても、見た目が素人っぽく不安を感じさせるようでは、ユーザーの信頼を獲得し、継続利用してもらうことは困難になります。

なぜソフトウェア品質を学ぶべきか

まず明確にしておきたいのは、インタラクティブ製品のデザイナーがソフトウェア品質やテスト、システムアーキテクチャの専門家になる必要はないということです。しかし、ソフトウェア品質の原則に関する基礎的な知識を持つことは極めて重要です。この理解は、こうした基本を軽視する他のデザイナーと比べて、差別化を生む競争優位になり得ます。以下に理由を示します。

  • 実現可能なソリューションの設計: ソフトウェア開発における制約とベストプラクティスを理解することで、デザイナーは使いやすく望ましいだけでなく、技術的にも実現可能で実装しやすいソリューションを設計できるようになります。この理解により、Dribbbleのポートフォリオでよく見られるような、装飾過剰で実装や保守に不向きなインターフェースの設計を回避できます。
  • 根拠あるデザイン判断の実施: ソフトウェア品質がユーザーに与える影響を把握することで、信頼性や効率的な体験に貢献する要素を優先して設計することができます。たとえば、システムのパフォーマンス向上やエラーの発生防止を考慮した設計などがこれに該当します。

補足: 古典的な事例として、NetflixYouTubeなどの動画配信サービスは、ユーザーの回線帯域の変動を検知すると動画を停止せずに画質を落とすという設計をしています。これは、再生体験を維持するというUX重視の判断であり、ソフトウェア効率と耐障害性がユーザー体験に直結することを示す好例です。

要するに、ソフトウェア品質は開発チームだけの関心事ではありません。それは、インタラクティブ製品デザイナーが創出しようとしているユーザー体験そのものを形作る決定的要素なのです。設計プロセスにおいてソフトウェア品質の知見を統合することにより、単に美しく使いやすいだけでなく、信頼性と効率性を備えた成功するデジタル製品を実現することができます。

おわりに

この記事全体を通じて、ソフトウェア品質が単なる技術的な話題にとどまらず、ユーザーエクスペリエンス(UX)の根幹をなす重要な要素であることを確認してきました。品質の定義はユーザー・開発者・マネージャーなどの立場によって主観的かつ多面的に異なりますが、根本にあるのは「成功し信頼されるデジタル製品を構築する鍵は品質である」という事実です。

この記事では、ISO/IEC 25010:2011の中でも特に「保守性」と「信頼性」という2つの属性に注目し、デザインシステムという戦略的資産や、目的と整合した視覚デザインがこれらに与える直接的な影響を解説しました。視覚デザインは見た目の美しさだけでなく、ユーザーにとっての信頼性や技術受容の推進力でもあることが明らかになりました。

あらためて強調しますが、インタラクティブ製品のデザイナーがソフトウェアエンジニアリングの専門家である必要はありません。しかし、その品質原則に関する基本的理解は、きわめて大きな競争優位となります。この知識があることで、実現可能なソリューションの設計、的確な意思決定、開発者との円滑な協働が可能になるのです。

つまり、品質あるソフトウェアの構築という目的は、視覚デザインの範疇だけにとどまらず、設計・実装の全体に関わるエンジニアリング的な視点まで包含されなければなりません。ソフトウェア品質とは真に学際的な関心領域であり、その中でデザインは、堅牢で、使いやすく、何より信頼されるデジタル製品を創るための中核的な役割を担っているのです。

この包括的な視点を受け入れることで、インタラクティブ製品デザイナーは、機能的なニーズを満たすだけでなく、ユーザーの感情的な期待をも超える、真に記憶に残る体験を創出するための力を得ることができるでしょう。