みなさん、こんにちは。
今、多くのコンピュータープログラム(ソフトウェア)の開発で問題が起きています。
完成したソフトウェアを使ってみると「これ、使いづらいな」と感じることが増えていると思いませんか?
なぜこんな問題が起きるのでしょうか?
それは、ソフトウェアを作る過程に問題があるからです。
今回は、小さなチームでソフトウェアを作るときに、「デザイン思考」という方法を使って、この問題を解決する方法をお話します。
今までの開発方法の構造的な問題点
今までの開発方法には、次のような構造的な問題がありました。
- 使う人が本当に何を必要としているのか、開発の始めの段階でよく分からない
- 開発が終わりに近づくまで、実際のソフトウェアを見ることができない
- 一度決めた計画を途中で変更するのが難しい
- 技術的にできることと、業務で必要なことのすり合わせが遅れがち
これらの問題は、「使う人の本当の必要性を理解すること」と「それを実現する技術的な方法を考えること」が別々に進められているために起こります。
そのため、何を作るべきか(要件定義)と、どう作るか(設計)を正しく決められない状況に陥ります。
デザイン思考を活用すれば、使う人の立場に立って、必要なものを見極め、実現可能な形にまとめることができます。
デザイン思考による解決方法
デザイン思考では、次の5つの段階を通じて問題を解決します。
- 共感する: 使う人の立場になって考える
- 問題を見つける: 本当の課題を明らかにする
- アイデアを出す: 解決方法を考える
- 試作品を作る: 考えたアイデアを形にする
- 確認する: 実際に試して評価する
では実際にどう実践すればよいのか、具体的な進め方を見ていきましょう。
小さなチームでの具体的な進め方
1. 共感する
- 期間: 2週間ほど
- やること:
- 開発する人が実際の仕事現場で1日過ごす
- 仕事をしている人に3回、じっくり話を聞く(1回1時間)
- 仕事をしている人に1週間の仕事日記をつけてもらう
- 使うツール:
- オンラインの共有ボードで仕事の流れを図にする
- オンライン会議で話を記録する
この段階では、仕事をしている人が言葉にしていない大切なことを、開発する人が理解することが目標です。
2. 問題を見つける
- 期間: 1週間ほど
- やること:
- みんなで見たことを共有する(1時間半)
- 困っていることを見つけて、重要な順に並べる(1時間半)
- 一番解決すべき問題を決める(1時間)
この段階で決めた問題は、後から変更してもかまいません。
大切なのは、1週間という決められた時間の中で、とりあえず解決する問題を決めることです。
3. アイデアを出す、試作品を作る、確認する
- 期間: 3週間ごとに3回繰り返す。予備の時間として3週間を用意し、全部で12週間ほどかける。
- やること:
- a) アイデアを出す
- 2時間かけてみんなでアイデアを考える
- 最初の30分:一人で考える
- 次の30分:考えたことを共有する
- 残り1時間:アイデアを組み合わせて発展させる
- 開発する人が実現できるか検討する(3日間)
- 結果をみんなで共有する(2時間)
- 2時間かけてみんなでアイデアを考える
- b) 試作品を作る
- 紙で簡単な見本を作る(2日)
- 画面の動きが分かる見本を作る(1週間)
- 基本的な機能が動く試作品を作る(1週間)
- c) 確認する
- 仕事をしている人に1日試してもらう
- 意見をもらう会を開く(2時間)
- 直すべきところを整理して優先順位をつける(半日)
- a) アイデアを出す
このような手順を実行すれば、ユーザーに寄り添った使いやすいソフトウェアを開発することができるはずです。
注意点
アイデアを出し、試作品を作り、確認する段階は、正解と思われることにたどり着けずに何度も同じ状態を繰り返してしまうリスクがあります。
そのため、次のポイントに気を付けることで、時間とお金を効果的に使うようにしましょう。
進め方のポイント
- 試作品は段階的に詳しくする
- 基本的な考え方
- 各段階で確認したいことを明確にする
- 確認に必要な最小限の試作品を作る
- 確認結果が良い場合だけ、次の段階に進む
- 1回目の試作品
- 紙や画面で基本的な考えを確認する
- 画面の流れの大きな部分を確認する
- この段階で問題が見つかっても、やり直しの手間が少ない
- 2回目の試作品
- 主な機能の画面の動きを確認する
- 技術的にできるか確認する
- データの流れを確認する
- 3回目の試作品
- 実際のデータを使う
- 主な機能を実際に動くようにする
- 動作の速さなどを確認する
- 基本的な考え方
- 確認時間と優先順位を決める
- 確認時間の決め方
- 1回の確認は2時間以内
- 意見の整理と対応方針は翌日までに決める
- 優先順位の決め方
- 仕事への影響の大きさ
- 技術的にどれくらい簡単にできるか
- 直すのにかかる時間
- 他の機能への影響
- 確認時間の決め方
- はっきりとした完了の条件を決める
- アイデア出し→試作品作り→確認のサイクルを終える条件を、前もって決めておきます。例えば次のような条件です。
- 主な機能の使いやすさが今より20%良くなる
- エラーの発生が5%以下になる
- 使う人が手助けなしで主な作業を終えられる
- 今の仕事の進め方に合っている
- アイデア出し→試作品作り→確認のサイクルを終える条件を、前もって決めておきます。例えば次のような条件です。
デザイン思考が効果を発揮する条件
デザイン思考が効果を発揮するには、事前準備がかかせません。
実践する前に、以下の条件をできるだけ整えておくようにしましょう。
チームの条件:
- 仕事をしている人が定期的に参加できる
- 開発する人が仕事の現場に入れる
- 進行役が話し合いをうまく進められる
プロジェクトの条件:
- 仕事の進め方も改善する
- ソフトウェアを使う人がはっきりしている
- 試作品を作って確認できる
組織の条件:
- 失敗を受け入れる雰囲気がある
- 現場の意見を大切にする
- 少しずつ改善しながら進める方法を受け入れられる
デザイン思考での検証から本格的な開発への移行
デザイン思考で試作品を検証する場合、すべてを完璧に検証することは難しいものです。
不可能といっても構いません。
よって、次の条件が満たされたら、本格的な開発に移ります。
- 試作品の80%が確認済み
- 主な機能が技術的に実現できることが確認済み
- 動作の速さなどの条件を満たしている
- 関係者全員の同意が得られている
本格的な開発のために、次のものを引き継ぎます。
- 確認済みの必要な機能の説明書
- 画面のデザインと試作品
- 技術的な確認結果と制限事項
- 確認済みの使い方の例
これらが、いわゆる要件定義書と設計書となります。
これらの成果物があれば、その後の開発作業を確実に進めることができます。
つまり、使う人の立場に立って、デザイン思考で丁寧に準備することで、使いやすいソフトウェアを作ることができるのです。
まとめ
デザイン思考を使ったソフトウェア開発を成功させるには、次のことが大切です。
- 予算と時間の制限をはっきり決める
- 試作品を段階的に作る
- 確認の進め方を上手に管理する
- 各段階の完了を適切に判断する
これらを上手に管理することで、デザイン思考の良いところを活かしながら、決められた予算と期間の中でプロジェクトを終えることができます。
ただし、成功のためには組織全体の理解と支援が必要不可欠です。
特に、発注する側と開発する側がよく話し合い、お互いを信頼することが大切です。
ここまで読んでいただき、ありがとうございました。
品質の良いソフトウェア開発の一助となれば幸いです。