システム開発はどれから教えれば良いか
とても漠としたタイトルだけど、この問いにどう答えれば良いのだろう。多分、質問を投げかけられたエンジニアの生い立ちに強く影響を受けた回答が出てくるのではないかと思うのですが。
開発指向の強いエンジニアなら、コードを書くために必要な思考方法を1番にあげるかもしれないし、設計指向のエンジニアならアーキテクチャのデザインをするために必要な思考方法をあげるかもしれない。多分にもれず、プロジェクトマネージャならシステム開発の全体を把握して欲しくてプロジェクトマネジメントとは、から始めてしまうからも知れない。何れにしても、やはりそれぞれのエンジニアの専門性のある領域から手をつけてしまうと思われますが、どうなんでしょう。
システム開発の全体とは何か
ところで、システム開発の全体とはどこからどこまでなのでしょうか。そしてどこが入口なのでしょうか。
多くのエンジニアはここを捉える前に、目の前に出された質問に答えなければいけないと早とちりして自分が持ち合わせていることから教えなければ、と思い込みをしてしまうのではないでしょうか。
まあ、システム開発の全体の外枠はここからここまでとビシッと線引きできるんだっけ、という考えもあるのですが、世の中は多くが曖昧なので、システム開発の全体とはに対する考え方は一旦線引きをするけれど、違っている事が後でわかったら線を引きなおせばいいじゃん、くらいで。
道具より世界観
戦力が欲しくて採用をしているので、採用者が未経験なら道具の使い方を教えたくなりますが、それでいいのかという疑問を持つことも一つの考え方です。
今に限らずエンジニアの課題は技術はできるけれど全体を考えられないパートタイマーなエンジニアが多いという嘆きです。それもそうなってしまったエンジニアを育てたのは誰だよ、と嘆いているシニアなエンジニアやマネージャにつっかえせばいいだけなのですが。
世界観というとこれまた、世界の構成を細々と説明しなければならないのかと早ガッテンして事故を起こしそうになるエンジニアが出てきそうですが、そんなことはおいおいでいいのです。
ただ、システム開発の全体、世界観を示すことは教える対象のエンジニアに対して今後のキャリアの選択肢を広げておくという考えがあることに気づいて欲しいところです。エンジニアで採用してもやってみたら違ったとか合わなかったとかザラなので。やりたいことを仕事にする考え方もありますが貢献できるキャリアを見つけさせるのも必要なことです。
そのために、世界観を示す必要があるのです。
4つと3つ
4つとは、システム開発の4つのレイヤーのことです。
- マインドセット
- ツール&テクニック
- システム開発手法
- プロジェクトマネジメント/プロダクトマネジメント
次の3つとは、
- 企画
- 開発
- 運用
のライフサイクルです。この4つと3つのマトリックスの中に様々な役割と仕事が押し込まれていて、それをドットとしたときにエンジニアはどこを自分の陣地として広げていけばいいかをしめすのが、今の所良いのだろうと思います。
教える側は、マトリックスの中のどこをこれから話そうとしているかを示しながら教えれば、教えられるエンジニアは迷子にならずに済むし、蛸壺に入り込んでいるなんて馬鹿らしいと思ってもらえるのではないかと。
あとはプライオリティの高い業務から教えればいいです。