みなさん、こんにちは。
今日はすでにいろんな人が書いていると思いますが、私が自分自身の言葉で書きたくなったので、システム開発時の要求定義・要件定義について書きたいと思います。
“びゃー”って、何?
私は今、コンサルタントとして企業のデータベースとある業務に関するシステムの要求定義・要件定義を行なっています。そこでシステム導入前の業務を行なっているお客様からよく聞くのは
「ここは機械的に計算してもらって・・・」
「これ入れたらこれが自動的に出てくるようにして・・・」
「システムでびゃーっとこのExcelファイルを出力して・・・」
“機械的に” とか “自動的に” とか “びゃーっと” とか
それってどういう意味でしょうか?
上流工程に携わったことがある方は特によく聞く言葉かなと思うのですが
それをITの設計に落とさないといけない側はこう思います。
「その“びゃー”っていうのはどういうことかもっと説明してくれ・・・」
これまで言語化されていなかったり体系化されていなかったり、平準化されていない業務を言語化するのがコンサルタントの仕事なんですが、
そしてシステムへの期待値をコントロールしていくのがコンサルタントの仕事なんですが、
それを認識してその上で伝えたいのが今日のタイトルです。
要求定義・要件定義って要は自動化ってどこからどこまで、何が一体どうなって/どうやったら最終的にほしいものが出てくるのか・・・
みたいなことを本当に大雑把に言うとやっているかと思いますが、これがとっっっても難しい。
それってなぜならお客さんもこれまで自分の業務をそこまで体系的に捉えられているわけではないから。やりやすいように作業手順みたいなものがあるとは思いますが、それはあくまで「その人がその人向けに」カスタマイズした手順。システム向けに考えられているわけではない。
それをじゃあ翻訳してあげましょうというのが私たちコンサルタントであったり、SEの皆さまもやっていらっしゃるわけですね。
ところがここで例の問題が出てきます。システムへの過度な期待、です。
冒頭でご紹介したこと、割と日常茶飯事でエンジニアの方は言われていないでしょうか?
お客さんだって、いやもう私だって、できることならお願いしたいんです。
システムに「いい感じでやっといて、」と。
なぜシステムにはぽいっとお願いしたら人間と同等かそれ以上のなんだかすごいものを出してくれると思ってしまうのでしょうか。
考えました。
システムは基本的に受け身な箱です。
システムはインプットとして投入されたものと、それらを使って人間が指示命令した手順以外のことは基本的にしてくれません。これを知らない方、または言われればそうだけど、あんまり意識したことなかったな、という人が多いから人間みたいにお願いすれば自分で考えていい感じにやってくれると無意識に思ってしまうから要求定義・要件定義のときの翻訳が難しくなってしまうのではないか、と私は考えています。
さらにこの中身はこの2点に尽きるのかなと思っています。
・言葉にしなくてもやってほしいことは伝わると思っている
・業務を言語化できたとしても翻訳する先の言語や仕組みを知らないから要求定義・要件定義が片手落ち
この課題を解消していくには、私たちが仕事にしている翻訳活動の他に、IT側のできる/できないを伝えつつ一方で業務の可視化、平準化を平行してやっていかないといけない。
これが超難しいと言われる所以と思っています。
この課題って永遠の課題だと思うんです。
だから常に口すっぱく、飽きられるくらいでもいいから伝えていかないといけないと思っています。
システム化のプロジェクトは非常に多くの人たちが役割を分担して成り立っています。いろんな問題がそれぞれの視点からあげられます。その中で要求定義・要件定義を担当する人が一番いろんな課題を集約して板挟みになるのかな、と思っているのですがめげずにやっていってほしいです。
そんな人が一人でも増えたら「システムは魔法」なんて幻想は少しでもなくなって、システムと人間の双方の調整で業務改善/システム導入ができるんだなと理解してもらえることができるのではないかなと期待しています。