「デザイン思考」とは、簡単に言うと、ユーザを起点とし、ニーズを深堀することで、問題を発見し、解決策を設計することです。
デザイン思考の典型的なプロセスは以下の5つのステージから成り立っています。
そのプロセスは、新しいソフトウェアや製品を開発するときに踏むステップと同じものです。
共感(Empathize):ユーザーや利害関係者のニーズや感情を理解するために、彼らの視点に立って問題を見る。
定義(Define):問題を明確にし、具体的な問題ステートメントを作成する。
発想(Ideate):さまざまな解決策を考え出し、ブレインストーミングや他のクリエイティブな手法を使用して新しいアイデアを生成する。
プロトタイプ(Prototype):具体的な解決策の初期バージョンを作成する。これにより、新しいアイデアを実際にテストする。
テスト(Test):プロトタイプをユーザーや利害関係者と共にテストし、フィードバックを収集する。
このプロセスは繰り返し行われ、各ステージで得られたフィードバックや学びをもとに、問題の理解を深めたり、解決策を改善したりします。
デザイン思考は、ユーザーや利害関係者の視点を中心に置き、クリエイティブな方法で問題を解決するアプローチを強調します。デザインの原則と手法を利用して、実際のニーズや状況に合わせて最適な解決策を模索するのが特徴です。
■ ソフトウェア開発へのメリット
デザイン思考はソフトウェア開発にも適用可能であり、多くの組織や開発チームがこのアプローチを利用しています。ソフトウェア開発にデザイン思考を適用すると、以下のようなメリットが期待できます。
①デザイン思考は、ユーザーのニーズや感情を中心に置くため、ユーザーにとって使いやすく価値のあるソフトウェアを開発することができます。
②プロトタイプにより、実際のユーザーからのフィードバックを早い段階で取得できます。仕様変更の削減により開発リスクを低減できます。
③新しいアイデアや新技術による解決策が検討されることで、開発するソフトウェアの差別化や価値の向上を図ることができます。
④開発チームは問題の本質やユーザーの真のニーズをより深く理解した上で、開発を遂行することができます。
■ ソフトウェア開発への適用
デザイン思考をソフトウェア開発の各工程に取り入れる方法を具体的に説明します。
1)要件定義
ユーザーインタビューや観察を通じて、実際のユーザーのニーズや課題を理解します。
収集された情報を基に、ソフトウェアが解決すべき問題を明確化できます。
2)設計
様々なアーキテクチャを議論することで、最も適切なソフトウェアの構造に決定することができます。
プロトタイプやモックアップを作成し、画面や機能を明示することで、ユーザからフィードバックを得ることができます。
3)テスト
ユーザーをテストに参画させることで、細かな認識齟齬をなくし、改善や再設計を行います。
4)運用・保守
リリースされたソフトウェアの実際の使用状況やユーザーフィードバックをもとに、継続的な改善やアップデートを行います。
■ まとめ
「デザイン思考によって、ユーザニーズに密着したソフトウェア・デザインをつくる」
従来のソフトウェア開発のプロセスでは、ユーザのニーズを明確にすることは、主に要求定義にて実施されます。デザイン思考は、ソフトウェア開発のライフサイクル全体にわたり、ユーザー思考のアプローチをとることで、費用対効果の高いソフトウェアを作りだすことに貢献します。この点では、ウォータフォールよりもアジャイルの考え方に沿ったものであると言えます。