成功を左右する要件定義
システムエンジニアが担当する業務の幅が広くなることが多いせいか、その仕事内容が曖昧に理解されていることも少なくありません。システムエンジニアの市場価値を高められるかどうかは、個々の意識と努力次第ですが、まずは求められている基礎的な要素をしっかり満たしていくところから始める必要があるでしょう。そこで、システムエンジニアの業務の基礎中の基礎である「要件定義」についてご紹介します。
要件定義とは
要件定義を簡単に言うと、「開発するシステムの機能全般をまとめること」です。顧客がそのシステムを活用してビジネスで何を成し遂げたいのか、どんな機能が必要なのかなどを明確にしてから定義書としてまとめあげます。要件定義が終わると詳細な設計が行われますが、開発の過程において設計は要件定義に忠実に、その設計に忠実に実装が行われていくという流れになるので、要件定義の内容はそのまま成果に反映されます。つまり、プロジェクトが成功するかどうかは、ほぼこの要件定義のクオリティにかかっているということなのです。
要件定義に必要なスキルとは
顧客の要望通りのシステムを作るためには、話される要望をただ機械的に聞き取って要件にまとめるだけでは不十分です。顧客のビジネスにそのシステムがどうして必要なのか、システムを活用することでどんな結果をイメージしているのかなど、顧客側のビジネスモデルまで踏み込んでニーズを根本から把握する必要があります。システム開発に関する知識のない顧客の場合、システムでどんなことができるのかがわからないこともあるので、ビジネスで成し遂げたいことを実現するためにはどんなシステムが有効で、どんなことが可能なのかなどを具体的に提案するスキルも必要です。
理想と現実をすり合わせる調整力
システム開発を依頼する顧客はいろいろな相手が予想されます。中には非現実的な無理難題を要求してくる顧客がいるかもしれませんが、そこをうまく調整するのもシステムエンジニアの仕事です。顧客が無理な理想を押し付けてくるように思えても、それは相手がシステム開発についてよく理解していないだけかもしれず、理論的に説明すれば理解してもらえる問題かもしれません。また、要望通りのシステムが完成したとしても、システムを活用するために顧客側が調整しなければならないこともあるかもしれません。そのようにして、作るべきシステムの背景にあるビジネスモデルと、顧客の要望や理解度などを包括的に受け止めて、仕様に矛盾が生じて後に大幅な変更などが発生しないようそれらを要件としてまとめていくということがシステムエンジニアに求められることなのです。