こんにちは。青峰 隆です。
誕生日に祖母からこんなメールを貰いました。
誕生日おめでとう!
時々ブログを見ています。だから遠くにいっているとはあまり感じません。
そちらは気候もいいらしいしいいとこですよとお母さんに聞いて安心しています。
流ちゃんが頑張っているので、こちらも安心して頑張りますね。
僕はおばあちゃん子で、小さい時から本当に良くして貰っています。
僕にとってはもう一人のお母さんですね。いつまでも元気でいてくれる事を願っています。
日本に帰ったら必ず顔を出しますね!
システムエンジニアに指示を出せる人間の必要性
プログラムを組むエンジニアとそうでない人が話をして
そうでない人の頭がパンクする。
良く見る光景です。
エンジニアの発する単語一つ一つが意味不明である意味外国語よりも難しい
という事が原因としてあります。
ですが、エンジニアという人種は専門用語を使って生活をしているので
それこそ「Apple」といったら「リンゴ」の絵が浮かぶ様に、
「PHP」といったら「プラグラムの一部」が思い浮かぶ訳です。
PHPの説明をしてくださいと言ったらエンジニアは「サーバーサイドプログラムで・・・」
とはじめてしまうわけです。
その為、エンジニアの人間の多くはそうでない人への説明が上手く出来ません。
今回話しをしたい方向が反対ですので、
エンジニアからそうでない人への説明は「エンジニアの説明術」に譲りますが。
エンジニアがこんな状態である以上
エンジニアにそうでない人が説明をする上でも色々と支障が出ます。
▼やりたい事と実現する方法がすり合わせれない
エンジニアに「コレをやりたい」と伝えます。
エンジニアは「どうやったらそれが達成できるのか」という事が分かりません。
例えば「求人サイトを作りたい」と行ったとしても
求人サイトは数多くありますし、一体どんな機能が必要なのかが分かりません。
そして、依頼する方も見えない部分は指示が出来ません。
例えば、会員登録をする画面について議論します。
メールアドレスを使って登録する。
名前を入れて登録する。
この辺りは指示として出せるでしょう。
ところがシステムの方では
rrrr@
みたいなありえないメールアドレスや名前はどうするのか。
→ 登録できてしまえば、使えないメールでやり取りすることになります。
登録された時、どの様に処理するのか。
→ 例えば、メールアドレスを入力しただけで登録できてしまうと、他人が登録出来ことになってしまいます。
今登録されているメールアドレスで登録されたらどうするのか?
→ 重複したメールアドレスがOKであれば、同じ人が何度も登録できてしまいます。
という事まで考えていなければ出来ません。
もし、この辺りを考えなければ、サイトとして成り立たなくなります。
▼システムを作る前段階
システムがどうあるべきかは実は依頼者の方がよく知っています。
ただ、エンジニアの言葉では説明できません。
ですが、作るのはエンジニアです。
エンジニアでそれを汲み取る事ができれば、大丈夫ですが
先ほどの例にある様に、困難を極めます。
▼前段階の重要性
システムというのは細かいものの積み重ねになります。
組立てしまった後、組立途中に変更を加えると不安定さが増し
場合によっては作りなおさなければいけません。
システムの完成度は前段階で決まると言っても過言ではありません。
▼汲み取れるエンジニアの必要性
この機能を実現するためにはこういう風にすれば可能で、
その為にはエンジニアはこう作らなければいけない。
と依頼者とエンジニアの間に入れる人間が必要です。
依頼者の意図を汲み取って、エンジニアの言葉に変換できる
翻訳者のような立ち位置ですね。
▼少ない汲み取れるエンジニア
汲み取れるエンジニアはかなり少ないです。
もし、そういう人間が近くにいるならば、できれば確保しておくほうが良いでしょう。
それだけで、システムのエラーが大幅に減ります。
汲み取れるエンジニアが自分でプログラムを作る
という状態であれば、仲介役はいりませんが
2:8くらいで、汲み取れる人と作るだけの人に分かれます。
簡単なプログラムであれば問題はでませんが
依頼する側からすると、これが簡単なのかどうなのかも判断が出来ません。
システムエンジニアの目線で、
簡単なものかどうかの判断基準について書いていきます。