お客様のシステムを構築する際には、まずはシステム化の要件を洗い出し、次に要件を仕様として落とし込んでいきます。しかしこの仕様固めの作業にも、使いやすいシステムにするためのコツのようなものがあります。

SEが良かれと思ってガチガチに仕様を固めすぎると、お客様にとっては逆に使いにくくなることも往々にしてあります。ちょっとぐらい遊びがあることも大切なんです。

仕様がストレスに変わることがある

仕様を固めることは、不用意にエラーを出さないためや、どんな人が操作してもシステムを円滑に動かしていくためには大事なことです。むしろ仕様の決まらないシステムなんてものは使い物にならないでしょう。

ですが仕様もガチガチに固めすぎてしまうと、お客様にとってストレスに変わることがあるのです。仕様を固めることとユーザビリティとは、必ずしも比例はしないのです。以下で事例を挙げながらご説明していきましょう。

例1.入力チェック

会員登録をする画面の場合、会員氏名や住所、電話番号など、いくつかの入力ボックスを設けるはずです。そしてデータの登録前には、各入力ボックスの内容を機械的にチェックするのが鉄則ですが、あまりにチェックを厳しくしすぎるのもよくありません。

例えば電話番号の入力チェックにて、半角数字以外の入力値はエラー判定とする仕様とします。しかしお客様によっては全角数字で入力する人もいるはずです。すると全角数字ではエラーとなってしまい、再度半角数字で入力し直す手間が増え、ストレスを感じさせてしまいます。

このようなケースでは全角数字を機械的に半角数字に変換してからデータ登録させてあげるぐらいの配慮があっても良いかもしれません。

例2.一括データ取り込み

CSVファイルなどでの一括データ取り込みをする場合、1件でも不整合を起こすようなデータがあれば、全件取り込み不可にしてしまうと、エラーデータを特定し、解決するまでは仕事が先に進みません。

このようなケースでも、問題の無いデータは全て取り込み、不整合を起こしてしまうデータは一時データとして取り込んでしまうのもありです。そして不整合を起こすであろう対象データは画面上で確認できて、修正を加えながら取り込むことができれば最高ですね。

外部システムなどの連携時には、想定もしていなかったようなデータが飛んでくる可能性もありますので、ある程度柔軟性の高いシステムの方が、使い勝手が良くなります。

SEの目線ではなくお客様目線を意識する

SEにとっては、絶対にここは仕様を固めておいた方がいいと思う箇所が存在するはずです。しかし忘れてはいけない大事なことは「そのシステムを使用するのはSEではなくお客様」であること。

システムに精通しているSEであれば、ある程度決められた仕様の範囲内でシステムを動かしていくかもしれませんが、お客様はそう思い通りに動いてくれるとは限りません。だからこそあまりシステムの仕様をガチガチにして、「あれはダメです、これもダメです」と指示するよりも、遊びを持たせられる部分は柔軟性を持たせておくと良いでしょう。

SEにとっては仕様を固めてその通りに動かしてもらったほうが、トラブルも少なくなり、効率も良くなると考えるかもしれませんが、お客様の視点では、必ずしもそうではありません。お客様にとって使いやすいかどうかが、システムの良し悪しを決める基準となるのです。

頭をやわらかくして考えよう

基本設計や詳細設計などの仕様を固めていくフェーズでは、頭をやわらかくして考えることが求められます。

最初に閃いたアイデアに固執するのではなく、もっと別の可能性も考えていかなければなりません。そうして考えると、システムの仕様を考えるのも簡単ではなく、非常に奥の深い作業だということを感じるはずです。

自分ひとりで考えるのではなく、ベテランSEによるレビューを交えながら、より良い仕様へブラッシュアップしてくのもよいでしょう。

 

おわりに

とにかく仕様はガチガチに固めすぎると、お客様にとっては逆に使いにくいものになってしまうこともあるので要注意です。もちろん仕様はシステムにとっては無くてはならないものですが、柔軟性があることも使いやすいシステムとなる一つの要素なのです。

お客様のことを観察し、SEとしての経験も積みながら、より使い勝手の良い仕様を考えられるようになっていきましょう。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS