ネットショップの要件定義ってどうすればいいですか。

[15,111 views]

OOK82_gurafuwoyubisasu20131223500

システム開発の現場では要件定義という言葉はよく聞かれます。ECサイトを作るにあたってはどのように要件定義をすればよいのでしょうか。

要件定義と言うと固い感じがしますが、ネットショップを構築する場合、普通にサイトオーナーから要望をお聞きすることから始めていると思います。その際に、モレなく要望を引き出すこと、サイトオーナーが実現したいと思っていることを実現するためには何をすればよいかを考えてまとめるということをしていると思います。そのような場面で、モレをなくすコツや、より低コストでより手堅い実現方法を提案するためのコツがいくつかあると思います。何回かにわけて、私なりのコツを紹介できればと思います。

ポイント「入力から出力までの流れを考える」

コンピューターで行われる処理というものには、ほとんどの場合、何かの入力があり、処理があり、出力があります。「1+1」と入力されると、その文字列を解釈して計算して、「2」と出力します。「1+1」と入力しても、何も出力がないのであれば意味がないです。出力がないということは、そもそも入力する必要などないことが多いのです。また何も入力がないのに出力できる情報もほとんどありません。

入力から出力までの流れ図1 入力から出力までの流れ

この考え方はありとあらゆる場面でシステムについて考えるための基礎になります。

そこで、ネットショップオーナーから要望をお聞きする際に意識したい1つの点は、何か「入力させたい」という要望に対しては、「どこで誰のために出力したいのか」ということを丁寧に確認するということです。逆に何か「出力したい」という要望に対しては、「どこで誰が入力するのか」ということを確認します。こういうことは当たり前過ぎて忘れられがちです。

実例:熨斗(のし)を選択できるようにしたい

実際のヒアリングの場面で発生する状況で考えて見ましょう。例えば、サイトオーナーと購入フローの検討をしているときに、「この画面で熨斗を選択できるようにしてほしい」という要望をお聞きしたとします。この場合の、さらにどのようにヒアリングを進めることができるでしょうか。

まずは、その画面でどんな風に入力できるようにしたいのかというイメージをお聞きすることになります。イメージが決まってそこで終了してはいけません。入力があれば出力が必要ということを思い出していただきたいのです。

熨斗入力画面の例 図2 熨斗入力画面の例

熨斗の情報を入力したら、出力先はどこになるのでしょうか。少なくとも受注テーブルなどに熨斗というフィールドを追加して、購入者が選択した熨斗の内容をデータベースに保持したが良さそうだと思いつく人は多いと思います。これも画面から入力してデータベースに出力するという、ミクロな範囲での入力から出力の流れにはなっています。

もう少し広い範囲、ネットショップの運営という視点で考えてみると、データベースに格納しただけでは出力したとは言えません。せっかくデータベースに格納したその情報を、ネットショップの運営業務の中で利用したいはずなのです。

何のために購入者に熨斗を選んでもらうのでしょうか。それは購入者に届ける商品に熨斗を付けて出荷したいからなのです。こういう当たり前なことを、順を追って考えることが大切です。「この画面で熨斗を選択できるようにしてほしい」というネットショップオーナーの言葉は、最終的には「お客様が要望されるのであれば、お届けする商品に熨斗を付けて出荷できるようにしてほしい」という要件なのですが、サイトオーナーとしては、当たり前すぎていちいち説明する必要はないと考えてしまっているケースが多いのです。こういうことは頻繁に発生しますので、丁寧に確認したほうがよいのです。

WEBシステムの外側も含めて検討する

画面で熨斗を選択するという入力の、最終的な出力は「出荷する商品に熨斗が付くこと」だとすると、最初の入力から最後の出力まですべてがネットショップのサーバの中で処理されるわけではないことに気が付きます。そこには倉庫で出荷作業をする現場が関係してきます。

出荷の現場についてイメージしてみてください。誰が商品に熨斗を付けるのでしょうか。必ずしも商品に熨斗をつけることが可能とは限りません。例えば、出荷を倉庫会社に委託している場合、委託先では熨斗を付ける人員がいないという可能性もあります。まずは、サイトオーナーに倉庫で熨斗を貼るという対応ができるのか確認しましょう。熨斗の取り扱いについては、実はいろいろなレベルがあります。例えば、デパートで熨斗を付けてもらう際には祝儀・不祝儀、結びきり・蝶結びと各種の熨斗が選択可能な上に、綺麗な字で名前を書くことのできる店員さんがいます。包装紙の内側でも外側でもどちらでも要望によって熨斗を付けることもできます。すべての出荷現場で、高級なデパートと同じような対応ができるわけではありません。御中元、御歳暮の2種類の表書きの熨斗しか準備できず、名入れには対応できないという出荷現場もあるでしょう。

ここで、また入力から出力の流れを、全て一本の流れとして考える必要があります。購入フローの画面で選択できる熨斗の種類や、表書きや熨斗に入れる名前を指定する入力枠の有無を検討します。出力先である出荷現場で対応できないのであれば、熨斗の名前などの入力枠を作っても意味がありません。入力画面を検討する際に、最終的にどういう出力が可能なのかを十分に把握しておく必要があります。

次に、最終出力から少しさかのぼって考えてみましょう。倉庫の出荷担当者はどうやって熨斗についての指示を知るのでしょうか。

EC-CUBEを使っているネットショップの場合、納品書を印刷してその納品書をピッキングリストや出荷指示書としても利用している場合が少なくありません。倉庫ではいちいちパソコンを見ていては非効率ですので、納品書をまとめて印刷し、納品書に記載されている商品をピッキングして梱包します。そのようなオペレーションで流れているのであれば、納品書に熨斗の情報が記載しておくと便利だと気が付きます。受注管理画面に表示されているだけでは、出荷の現場では使いづらく、熨斗の付け忘れが発生してしまう可能性があります。

倉庫会社に委託している場合は、倉庫会社のWMS(倉庫管理システム)にCSVファイルで出荷指示データを送る際の項目のいずれかで熨斗情報を指示できるというケースもあることでしょう。その場合は受注のCSV出力に熨斗情報を追加するという対応が必要になります。

ここまではメインの出力先ですが、ほかにも購入者に送付する注文確認メールのような出力先もあります。確認メールにも熨斗を付けることについて記載しておく必要があります。

熨斗についての入力から出力までの流れ図3 熨斗についての入力から出力までの流れ

まとめ

「購入フローで熨斗を選ばせたい」という一言で、カスタマイズが必要になる箇所は結構たくさんあります。受注情報、受注情報を参照する管理画面、購入履歴を表示する購入者画面、注文確認メール、納品書、受注情報のCSV出力といったあたりをトータルでカスタマイズしないといけないということになるはずです。サイトオーナーはこれほど多くのカスタマイズ箇所があるとは考えていないことが多いです。また、そもそも出荷現場で熨斗を印刷するというオペレーションが可能かどうか未検討であるケースもあります。

今回の例を挙げて考えたように、「入力から出力までの流れ」に沿って考えると、必要な機能のモレを減らすことができます。

システムも、人間のあらゆる業務も、かならずインプットとアウトプットがありますので、この考え方はほとんどの場面で通用します。

とはいえ、熨斗について話されて、倉庫のオペレーションについて考えないといけないと思いつきにくいと思う方もいらっしゃると思います。次回は、そんな方のためのコツを紹介したいと思います。

ライタープロフィール

朝山 俊雄
株式会社システムフレンド 取締役。
SEとして販売管理システムや倉庫管理システムの開発経験多数。2000年以降、ECサイト構築案件に多く携わるようになり現在に至る。EC-CUBE公式完全ガイド執筆。