システムエンジニアの人なら、システムの要求仕様を整理しているときに盛り込む機能の取捨選択に頭を悩ませたことがあるに違いない。
顧客から出てくる要望は一見すると非常に無秩序でまるで見知らぬ言語で書かれている文書を読むような気分になる。
これを解きほぐし、一つの体系というかストーリーが見えてきたら要求分析のゴールは近い。
いっぱいのカオスを整理整頓し、きれいなユースケースや業務フローができ上がったときの達成感というのは言葉に言い表せないものがある。
これぞこの仕事の醍醐味という人もいるだろう。
だがしかし、である。
このまま教科書通りにいかないのも現実なのだ。
というのは、顧客のシステムに対する要求は所詮業務についてアウトサイダーの人間が作った仕様とは相容れない、と解釈される傾向がある。
つまり、日々こなしている業務がシステム化されるとその仕事はどうなるのか、それがイメージできなければ良いとも悪いとも判断ができない、と顧客は沈黙のうちに意思表示をしてくる。
現実的な観点でしかシステムとは接点を持てないのが一般的な感覚であることを思い知らされるわけだ。
ここで重要なのはヒヤリングであり、顧客からの生の言葉でどれだけの業務のエッセンスを感じ取れるか、そこがのちのちプロジェクトのゴールまでの距離を測る決め手となる。
システムの世界にも多様な棲み分けがあって、さまざまにある世の中の業界にそれぞれ特化した人たちというのも沢山いる。
あなたがそのようなエキスパートが自分の土俵で顧客と相対するのであれば何も心配ない。阿吽の呼吸でばっちりである。
問題なのは、あなたにとってのファーストトライ、つまりド素人状態での挑戦をしなければならないときだ。
あるいは非常に特殊な業界で外には実態が知られていない場合というのもあるかもしれない。
世の中何があるかわからない。ある日突然エジプトでピラミッド調査の支援システムを受注するかもしれない。中国全土向け乗り換え案内サービスのシステムを手掛けるかもしれない。さあ、どうする?
専門家を雇う
いちばん手っ取り早いのは、その道の専門家 ~ 専門知識を持っている人に参加願うこと。
どんな分野にも専門家がいるわけで、的確な探し方を知っていればほぼ必ず見つかるといっていい。
彼らの知見を利用すればプロジェクトの立ち上がりは俄然スムーズになるだろう。
基本設計のあと、工程の後半でのシステムテスト段階でまた登場願うとより効果的である。
多少の違いはあれども、必ず仕様的な見落としなどがこの段階で発見されるものである。
そのとき、実際はどう振る舞うべきか、その答えを彼らがもたらしてくれる。
現実的な話をすれば、一般的に外部から専門家を呼ぶとなれば、コスト面でもそれなりの負担がかかることを覚悟しないといけない。
専門家一人呼ぶ単価でプログラマーを2~3人は雇えそうなのに...ということもある。
しかし専門家と呼ばれる人たちもそれだけの知見を身につけるには長い時間と資金・労力をかけて努力をしている。海外に長期間修行に出るなんてことも驚くべきことではない。それだけの投資をしているわけだから、その知見は安売りをするわけにはいかない。彼らへの対価はフェアな交換法則に基づいているのだ。
自ら専門知識を獲得する
相対した話になるが、自分が専門家になるべく勉強していくという方法がある。
開発期間いっぱいをかけて知識を獲得していくつもりでコツコツと勉強していくわけだが、当然のことながら立ち上がりの時点では知識はほぼ0であり、初期段階では直感に頼るような心細いことになる可能性がある。
全工程を通じて方向性を調整しながら進めるだけの余裕があるなら、これは有効だ。
ノウハウがプロジェクトのものになるということは無形の資産が増えることに等しく、もし同じ分野の次のプロジェクトがあるとなればその知識の蓄積はそのまま流用できる。
あるいは、いずれ自分自身が専門家になることもあるかもしれない。
これは外部の専門家を頼んだ場合と決定的に違うところだ。
で、どうする?
総括して、どちらの方法がより効果的は一概に判断できるものではないだろう。
長期的視野に立っているか、単発的な案件なのか、本当に得たい利益は何か、あるいはコストのこともある。その辺りをよくよく吟味し判断するべきだろう。
それでも、条件的にも拮抗していて、どっちがいいかなと迷うような場合は、私なら断然自分が専門知識を付ける方を採る。
理数系の脳で普段仕事をしているエンジニアの多くは、もしかしたらドメイン、つまり世間のロジックというものに対して多少の抵抗感があるかもしれない。
文系出身の私にはロジックとは基本的に自然の延長であり、外敵から身を守るために虫や魚が周囲の景色に擬態する性質を獲得するとか、歴史上時代が変わっても同じようなシチュエーションになれば同じような事件が起こるとか、コンビニで売れるものがどのような力で栄枯盛衰を繰り広げるのか、そういうことを主に意識する。
数式や工学の世界の公式みたいなものは美しさを感じはするが、基本的に理解の外にある。どちらも自然や世界の出来事を単純化する試みには違いないのだが、アプローチはどうしても変わってくる。
しかし、そこが問題の核心である以上は思い切り挑むしかない時もある。その時にはエジプトの古代王家の勉強から始めることになるかもしれないし、中国の全国地図を眺めることから始めることになるかもしれない。
それはそれで、結構楽しいものだ。
このように、要求分析をしている間は、ちょっとした(いや、ちょっとで済まないこともある。)知識の旅行となる。
そういう仕事をくれ、現実の旅行に行けない代わりに遊ばせてくれ、と魂の叫びを書いておく。