ユーザー要件定義
久々のシステムネタ。
プログラム経験がないとシステムの設計ができないと思っている人がいる。システムに精通した人なら、それが間違いであることを知っている。
システムの設計にも各種あるが、下流工程の詳細設計ならまだしも、ユーザー要件定義などの上流工程での設計で最も重要なのは、プログラムスキルではなく、システムを利用するユーザーとのコミュニケーション能力である。システムに不慣れなユーザーの潜在的な要求を具体的な形としていかに引き出すかが重要なポイントとなる。
システムの評価は最終的にはユーザーが下す。システムはユーザーの道具であり、道具の評価は使用者が判断することは当たり前だ。道具屋の評価は自己満足に過ぎない。いいシステムというのは、ユーザーが使いやすいと思うシステム、すなわち、ユーザーフレンドリーなシステムであるが、そういったシステムは実に細かいところまでユーザーの欲求を満たすように作られている。そして、そういったシステムは、技術者から見ると非常に面倒なシステムであることが多い。
システム構築作業はユーザーと技術者との欲求のぶつかり合いの連続だ。ユーザーの欲求が通れば通るほどシステムは使いやすくなるが、その分コストと開発期間が大きくなる。しかし、ユーザーはそんなことを気にする必要は全くない。ユーザーの要求をいかに低コストで素早く実現するかを考えるのは、技術者の仕事だからだ。ユーザーは技術者から提示される各種ソリューションを自身の持つ予算と照らし合わせながら取捨選択すればよい。
技術者の本来の使命はユーザーの要求をシステムで実現することで、ユーザーの要求をねじ曲げることではないはずだ。ユーザーの方も技術的な難易度を気にして本来の要求を変更して提示する必要はない。ありのままの要求を出せばいい。そのとき、ユーザーの要求を上手く引き出す役目を持つのが、システムの上流工程に登場するコンサルタントやSEだが、必要なスキルはコミュニケーション能力であり、技術的なスキルはユーザーの要求を捻じ曲げる邪魔ものでしかない。
特にユーザーの要求仕様を作り上げる工程では、コミュニケーション力が最重要だ。その他必要なものは、ユーザーインターフェースのデザイン力と完成後のシステムをユーザーにうまくイメージさせるプレゼン能力である。ユーザーの意見を代弁する設計者に技術者は従うしかない。システムは技術者のためにあるのではなく、ユーザーのためにあるのだから。
ユーザーの要求仕様の作成には実は女性が向いている。女性には話しやすいため、要求や不満がどんどん出てくるからだ。すぐに技術的な話をするおっさんエンジニアはお呼びでない。客先の某室長もユーザー要件定義には女性が向いていることを良く知っており、現在女性指定でエンジニアの募集をかけている。募集時に性別をあからさまに指定はできないだろうが、このオヤジよくわかってるねぇ。でも、気をつけないと「あの室長女好きだなぁ」と私みたいに勘違いされるよ。