使う人はだれ?
「要求を定義するためには、まだまだ多くの情報が必要ね。企業システムといえばクライアントサーバ型がどうしても多くなるけれど、じゃぁサーバはどんなスペックで、クライアント側はどういう操作形式にするかしら」
「最近はクライアント側がWebアプリケーションになることが多いですよね。Ajaxとかを使ったりして、リッチクライアントを目指すことも多いとか…」
「そう。確かに最近の風潮として、そういう要求は多いわ。でもバリバリAjaxを使ってみたけれど、クライアント側の環境がそれに対応していなかったり、そこに工期をかけるならシンプルでいい、っていう意見もあるでしょう」
「確かに」
「それだけじゃないわ。実際に運用をはじめたら、サーバ側にはさまざまなデータが蓄積されるわよね。その運用そのものはどうするのかしら?」
「それは自社で管理するのが…」
「アウトソースしたいって要求があるかもしれないわね」
「それは良い仕事に!」
「でも最近は個人情報の取り扱いについて厳しくなっているので、簡単にアウトソースを引き受けたとして『あれは見ちゃだめ』『これはさわっちゃだめ』になったとしたら?」
「最初からそれを見越したシステム作りをしないと、大変なことになりそうですね…」
「そういうことね。最終的に『使う人』がどういう要求を持っているかが重要になるのよ」

図2:システム開発での問題点
システムに求められる性能は?
「ほかにも『あれもこれもサーバ上で処理したい』という要求があったとして、その処理をこなせる性能がサーバ側になかったらどうするかしら」
「…なんか、ものすごく重〜いシステムになりそうですね」
「その通り。さっきのAjaxの話もそうだけど、クライアント側でどういう処理を行うかも重要ね」
「じゃぁ『要求通りのシステムを実現するためには、これくらいの性能のサーバとクライアントマシンを導入してください』と…」
「説明して納得していただくにはどうすればよいかしら?」
「ユーザインターフェースやその操作性、さらに動作速度なんかについて必要な情報を得て、それを実現するために必要なマシンスペックを提示して…」
「『あ〜そこまで予算ありません』といわれたら、プロジェクトは白紙になるかしら」
「(がくがくぶるぶる)」
「そうならないためにも、今ある環境上に構築する際にできること、できないことをまとめたり、最低限この部分の機能は譲れない、といった要求をきちんと聞き取ることね」
「聞き取り、聞き取り、また聞き取り、ですね」
「後、みんなが忘れがちなのが、他のシステムとの連携なの」
「どういうことですか?」
「システムが稼動しはじめる前は『そのシステムが単体で動作すればよい』という意識が強いものね。でも実際に稼動した後には『別のシステムと連携できればもっと便利なのにな』と思うものらしいわ」
「じゃぁ、そこで新しいプロジェクトが!」
「それはそれ。でも他のシステムと連携できるような環境を用意しておくかおかないかで、次の段階に進むための時間が大幅に変わるのよ。ただ、まったく他のシステムとつながない、と事前に決めるのも難しいのよね」
次のページ