「DevOps」なエンジニアを増やすには体制次第、だと思う
◆フルスタックエンジニア
海外のスタートアップで「Full Stack Engineer」の求人を出しているのを、以前より多く見かけるようになっているそうです。要するに、インフラからミドルウェア、モバイル、デザインまで、あるいは設計からプログラミング、デプロイまで、何でもこなせるエンジニアが求められているわけです。
2000年前後からIT業界に携わっている人は、たいてい何でもやってきています。それぞれのレイヤーのレベルはピンキリでしょうが、スタートアップの時期は人が少ない分、誰かがやらなければいけない環境なので必然的にすべてのレイヤーを担当していたでしょう。今でもスタートアップの時期はそうなのだと思います。
当時と異なるのはスタートアップを経験した/実績をもったエンジニアが増えた、ということでしょうか。事業が成功してエンジニアが増えてくると分業化がある程度進みます。その人にしかできないことをその人が担当するようになり、何でも屋は実はなにも担当していない、いわゆる器用貧乏になっているケースもあります。
もったいないですね。
たいていの場合、スタートアップを経験したエンジニアには、ある分野のスペシャリストでさらにさまざまな分野を事業に必要なレベルorスペシャリスト並みに持っている人が多いです。 そういった人を浮かしておくのは組織にとって損失だと思います。が、全部を通しでコミットしたいエンジニアは分業化が進むとモチベーションが保てないかもしれません。
そのような背景で市場の需要と供給がでてきたのかもしれません。
◆「DevOps」な考えを実践できるエンジニア
もう1点、テクニカルな分野が一人ですべて担当できるほど少なくない、当時とは比較にならないくらいさまざまな技術が増えています。 本当の意味でフルスタックエンジニアは物理的に時間的に無理です。求人しているのは、すべての技術をもっている人ではなく最近浸透してきた「DevOps」な考えを実践できるエンジニアを欲していると思います。
◆ほかの職種も影響する
分業化が進めばその弊害が出てきて、その部分をカバーできる分野をまたいだエンジニアが良い意味で目立つ、しばらくすると一人のエンジニアが通しでやっていたことを効率化と称して分業化する。その繰り返しが安易に想像できます。
ですが、IaaS、PaaSなどクラウドという考え方やサービスが充実しつつある現在は、提供されたAPIやフレームワークを利用すれば一人のエンジニアでけっこうなところまで作ることができる環境が整いつつあります。分業化する必要がなくなる、むしろ分業しないほうがより早く開発できる環境でもあります。将来的には良いサービスを作れるエンジニアにしか価値がないようになっていくのではないでしょうか。そのときには企画屋さんも同列です。エンジニア上がりのサービスオーナーか企画上がりのサービスオーナーかの差でしかないと考えます。
この流れはエンジニアだけではなくサービス開発に携わる人の全員に影響があろうと思います。効率化のため分業するのであれば現在のようにデザイン、アプリケーション、インフラのような区分けではなく、サービスにコミットするか、プラットフォームにコミットするか、大きく2軸であるとしっくりきます。
人材が「フルスタック」になってそうなるのか、そういう分業体制にして「フルスタック」な人材を求めるのか、 またはレイヤーごと分業でやっていくのか、まず会社が求める人材を決めるのが理想です。
◆人材戦略がある会社は強い
どの会社も中長期の事業計画はあるんだと思いますが人材戦略まで落ちている会社は良い意味で目立っていてそして強いですね。
現場だからこそ感じる流れとかを経営サイドはどう扱ってるんでしょうか。クラウドでインフラが変わればほとんどのレイヤーでより開発スピード向上に繋がるようにスキームを変えることができます。まさに「DevOps」なことですが部署間の隔たりは現場では越えられない壁があるんです。