2012/10/05

エンジニアの育て方を考える

最近になってよくエンジニアの対話について考えるようになりました。

最近あるインターンが始まりました。Guildというインターンです。これは僕のような入社して日の浅いエンジニアが、学生やそれに準ずるエンジニアに対して実践型の育成を行なっていくというスキームを持ったプラグラムです。

就業型実践育成プログラム「Guild」|VOYAGE GROUP インターンシップ ~ミチをソウゾウせよ~ http://voyagegroup.com/internship/guild/

こういうインターンの場合、学生一人ひとりに合わせて方法を変えていかなければなりません。一人ひとり癖がありますし、スキルも異なります。また事業に対する理解度も最初は浅いでしょうし、所属するチームのやり方も様々です。そんな中でもフレキシブルに、かつ着実に学びを得られるような環境をつくる、ということについて最近は考えています。

育てる、と言いつつ僕は育てられてばかりです。不思議な事ですが、大学院にいる時よりも学習ペースが上がりました。それは時間に対して自分でしっかり管理するようになったからとか、評価してくれる人がいるからだとか色々な要因がありますが、総じて環境による影響は大きいです。同じような関心ごとをある人に囲まれて、日々それとなくご飯を食べたりお酒を飲んだりしながら技術の話をして、帰り道や運動している時や帰って風呂に入っているときにふと「あ、あそこはもっとこうすればよかったなぁ」なんて思って次の日にとりかかるのです。今もそうです。こうして帰宅して文章を書きながら、あのときこういうふうに問いかけていたら良かったのかな、なんてことを思い返しています。

前に出て講義形式で教える時と、対話しながら教える時では、今はやり方が異なります。対話しているときは特に問いかけていることが多いです。ゲーテとの対話 ほど諭すことができるほど高尚ではありませんし、アプレンティスシップ・パターン に書いてあるほど定型的なやり方を心得ているわけではないのですが、人によって問いかけが多かったり少なかったりします。たとえばとあるMVCフレームワークに関するチュートリアルをやっていたとして、MVCに関して理解していることを確かめようと思った時には、大体頭の中に以下の様なツリーを描きます。

  • なぜMVCの構造が必要なのか
    • Model View Controllerそれぞれの役割を把握しているか
      • 複数人で開発する場合はどうか
      • MVCの構成は自分の感覚とズレはないだろうか
        • それはもしかしたら正常かもしれない
    • HTTPリクエストをなぜControllerで捌くのだろうか
      • そもそもHTTPリクエストには何が含まれているのだろうか
      • ControllerのプロパティにModelインスタンスの参照を渡すのは妥当だろうか
    • なぜModelでデータの操作をするのだろうか
      • そもそもModelによって抽象化しているものは何なのだろうか
      • このチュートリアルではModelにどのような工夫がなされているだろうか
    • Viewに表示する際にどのようなフローを経ているだろうか
      • そのフローは合理的だろうか
(すごく偏っている気もしますが)大体こんなことを大枠として捉えておいて、相手の状況によって質問を変えます。コード自体は動いているのだけれど、なぜそのように書いているのかが自分でも理解できていないという場合もありますし、MVCっぽい書き方をしていても何かエッセンスを捉えていないコードになってしまっている場合もあります。そういうときに上の簡易的なツリーをたどって質問をします。僕が対話をするときには大体そういう方針をとっています。もちろん話題は多岐にわたりますし、MVCの話だったのに開発フローの話になったり、Webサーバの話になったり、Gitの話になったりします。それはそれでよくて、学びのきっかけとしてチュートリアルというものがあれば良いのかな、と思っています。

ただ、もちろんこんな一例にすぎないことで完結するものでは当然あるわけもなく、日々少しずつ続けていくということをしています。逆も然りで、僕も気がつけば教わっていたという場面が多々あります。そういうとき、「ああ、巧いなぁ」と感じたりもします。教えているようでなくて、気がついたら本人が気がつく環境が作られていた、ということなのです。僕ももう少しそういう環境づくりをうまくできたらなぁとよく思います。

前も一度書いたのですが、「誰のために何ができるのか」というのはやはり僕の中で日々の大きな部分を占めている関心ごとなのです。相変わらず変わらないなあ、などとこの文章を書きながらまた思い返しています。