さて、前回「ビットスター流 システム化へのアプローチ -概要-」ということで弊社のシステム化に対する概念を記載していきましたが、今回からはより具体的な場面での内容を記載していきます。
今回は「ビットスター流 システム化へのアプローチ -ヒアリング~要件定義-」という内容で記載したいと思います。
そもそも要件定義とは
(1)機能的要件
(2)非機能的要件
に分かれ、それぞれの項目についてより細かい内容を定義できるほどシステムの精度が向上していきます。
ここで方向性を間違えると、この後の作業すべてに影響するのでとても大事な作業となります。
前回も書きましたが我々はお客様の業務については素人同然ですので、要件定義を行うために「ヒアリング」のフェーズが必要となるのですが、以下の通り、
業務内容を伺った上で、
問題点を洗い出し、
システムに求める要望・要件を定義
していきます。
言葉にすると簡単な作業ですが、この作業には
予算の制限(湯水のごとくお金を使うわけにはいきません)
スケジュールの制限(早ければ早いほど)
の係数が必ずかかってきます。
我々の腕の見せ所はこの部分でいかに早く、安く、要望を満たすものを要件としてまとめるか、がお客様の信頼を得られるかの分岐点となります。
これをまとめ、お客様と調整・合意した内容が要件定義となります。
次回は「設計・開発」フェーズへと入ります。
…
…
とはいかず、実はここまでの作業は要件定義でいう(1)機能的要件まででしかないのです。
では、(2)非機能的要件ては何か?
それは読んで字のごとく「機能面以外の要件」、いつ・誰が・どこで・どれくらいの人数が・どのように システムを使うのかというのを想定し、システムに対する最大負荷を予想し、その負荷に耐えられるシステムを構築する必要があるのです。
また、将来の最大負荷の増大に備え、拡張が容易な仕組みを構築する必要もあります。
機能的要件は、お客様が想像しやすい範囲なので要件定義は容易に進むことが多いのですが、非機能的要件はお客様は現状は把握できてもそれを具体的な負荷の値として定義していくのは難しい作業であり、ヒアリングでもなかなか判明しないことが多いのです。
この部分こそ本当の腕の見せ所で、我々の持つこれまでの経験・ノウハウ・知識を総動員して、システム稼働後の使用状況を予測して決めていきます。
ヒアリング~機能的要件の定義を行いながら、想像力をはたらかせ非要件定義を行っていくのです。
機能的要件は定義できて当然で、非要件定義をどこまでできるかが大事なポイントとなります。
長々と書きましたが、一番重要なのはこの「想像力」!!
次回は次のフェーズ「設計・開発」です。
追伸:とはいえなかなか完全な要件定義は難しい。。まだまだ勉強中です。
waka