こんにちは。キャスレーコンサルティングの秦です。
私は主に受託開発にてお客様からのご要望を伺いながらシステムの開発を行う、といった上流工程~下流工程まで幅広く携わらせて頂いておりますが、今回はシステム開発における上流工程(要件定義、設計)について、私の実体験を交えてお話させて頂きたいと思います。
はじめに
突然ですが、皆様は以下の画像をご存知でしょうか。
出典:http://www.projectcartoon.com/cartoon/586
上図は「顧客が本当に必要だったもの」という有名な図です。
大元の出典等は以下のサイトに詳しく書いてありますが、段々と改変されて行って現在のこのような形になったようです。
TREE SWING CARTOON PICTURES (EARLY VERSIONS)
この図では
システム開発において顧客の要望を捉えることが如何に困難であるか
といったことを端的に表しています。
お客様は「木を使ったブランコを作りたい」とご要望され、一番左上の図のように説明されました。
しかし、実際に各立場の人間の理解や伝達、アウトプットされたもの、運用、最終的に残った結果はどうでしょう。
様々な乖離が生まれ、お客様が本当に必要だったものとは異なっていった、というユーモラスを交えたお話です。
シンプルに、人間が乗ることができてゆらゆらと揺れるものが必要で、本当は「木にぶら下がったタイヤのブランコで良かった」というオチです。
これが示唆することのひとつには、顧客自身も本当に必要なものの形がわからず(あるいは正しく伝えられず)、顧客の説明を聞いた開発者達にもわからない(引き出せない)ことが起こり得る、という「システム開発の難しさ」があると考えます。
背景
今回、私がこのお話をしようと思った背景には、最近担当させて頂いた案件で同様の問題が起こったという実例がありました。
その時に思い出したのが、このブランコのお話でした。
仔細な内容は控えさせて頂きますが、お客様から「商品データベースをWeb上の管理画面で管理したい」というご要望を頂きました。
商品データ自体はExcelで管理されており、システムのデータベースに管理画面上からExcelをインポートする、といった機能をご提案させて頂きました。
しかし、ここで問題がひとつ発覚しました。
「今後数年後を見据えるとExcelには大量のデータが入ることになり、Excelが重くなって編集が大変になる」ということでした。
Excelのインポート/エクスポートに加えて管理画面上での編集機能が必要であろうというのは想像に難くないことですが、「部分的に一部の商品だけを非表示にするような編集をしたい」とのことで、どのような編集方法が良いのだろう、という議論になりました。
「一部の商品だけを非表示にするような編集をしたい」へのご提案
管理画面の商品検索ではテーブルレイアウトを使った一覧形式で閲覧できる形になっていましたし、「画面上から一括で編集できれば良い」と捉えていましたので、最初に私達は以下のようなご提案をさせて頂きました。
1. 各レコードで表示/非表示の切り替えができる
2. 各レコードにチェックを付けて一括で表示/非表示の切り替えができる
上記のようなUI(ユーザーインタフェース)は良く見かけるものだと思います。
ご提案はしてみたものの、その場に居合わせたどの担当者様も、いまいちピンと来ていないご様子でした。
そこで私は「この形は違う。本当に必要なものは何か?」という視点で、更にお話を伺うことにしました。
結果
その結果、お客様が本当に必要なものは以下の形であることがわかりました。
画面上で編集できることも、もちろん必要な機能ではありました。
ここで重要なポイントは「Excelが重い」「部分的にまとめて編集」「数百行を簡単に」でした。
案1、2でも実現は可能ですが、Excel程の手軽さを実現するには工数やお金がかかります。
しかし、既にインポート(新規/編集)機能が実装されており、この機能とExcelを活用するだけで良かったのです。
結果的に、これが「正しい形」であるかは現時点ではわかりませんが、これが最適解であると考えています。
おわりに
今回の案件で改めて学んだことは、「顧客が本当に必要なものを形にすることの難しさ」でした。
お客様にもご予算があり、我々もご提案できるものからの取捨選択が必要となります。
弊社では、お客様が本当に必要なものは何か、本質を正しく捉えながら、今後も皆様のお手伝いをさせて頂きます。
最後までご高覧頂き、誠にありがとうございました。