2014年5月22日木曜日

「フルスタックエンジニア」に見るWeb系とSI系の差

久々にブログ更新。そういや、前回の記事で書いたVX279ですが、結局返品することになりました。気が向いたら事の顛末を書くかも。


日本でこの言葉が流行るきっかけになったのは、publickey1さんのこの記事だったと思います。こちらによると

  • クラウド化によりインフラ周りの負荷が軽くなった
  • サーバーサイドも各種フレームワークの登場で負荷が軽くなった
  • クライアントサイドも同傾向

これにより
  1. 以前より全体的に作業負荷が減ったんだから、空いた時間で他のタスクも出来るよね?
  2. じゃ、他のタスクもやってね!
  3. おまえ、全部出来んじゃん!
  4. こういう人がいると便利だよね。これからはこういう人を募集しよう!
という展開になったのではなかろうか、と。

この「フルスタックエンジニア」、度々話題に登るので、みなさんどう考えているのかWeb上を漁っていたところ、2つの異なる面白い記事を発見しました。


Web系の方のご意見

35歳定年説より怖いフルスタックエンジニアしか生残れない未来とは

SI系の方のご意見

フルスタックエンジニアもオフショアに脅かされる未来


リンク先の内容を要約すると、Web系の方(転職支援サイト運営)は
  • 受託開発のSIer中心から、事業者・サービス提供者の内製中心へと転換
  • 「市場の求めるニーズに素早く到達するための開発」
  • こういった環境に適しているのは少人数で素早くプロダクトを作れるフルスタックエンジニア
  • オフショア先から見て給与水準の高い日本は、長期的に見るとそれらの国のエンジニアよりも高い価値を生み出していかないと職を奪われる

対して、SI系の方(元請けSIerのプロジェクトマネージャー)
  • クラウド化により地理的制約が小さくなったので、オフショア先のベンダーとの競合性が増加
  • 技術のコモデティ化、学習コストの低下は日本人だけの特権ではない
  • よって、フルスタックエンジニアといえど、優位性はあと5年程度

どちらも「このままではオフショア先に職を奪われる」と言っているのですが、Web系とSI系でかなり内容が異なります。どちらにも所属したことがある身として、この差は何処から来るのかを考えてみました。


まず、Web系企業の場合、文字通りWebでサービスを提供することで利益を得ているため、Webサービスの開発能力が利益に結びつきやすい傾向があります。特に、提供するサービスの質がライバルより劣れば、即座に死活問題に発展します。その為、開発力向上に繋がる、技術的な事柄に対する関心も強くなります。

それに対し、SI側は別記事 コーディング技術にこだわり過ぎるとITエンジニアの地位は向上しない にある通り、「結局、生き残るのはビジネスを作れる人」であり「フルスタックエンジニアではない」とおっしゃっているようです。これは、裏を返せば「現状、多くのSIerにはビジネスを作る能力がない」ことを意味します。

また、このことは「ビジネス創出能力の欠如」だけでなく、同時に「顧客の利益に直結するシステムを提供できていない」ことも意味します。「システム増える = 利益増える」関係が成立していれば、顧客からの引き合いが無くならないので、ビジネスを作れなくても困らないからです。


つまり、SI側は
  1. 自社に仕事(ビジネス)がない
  2. その為、仕事を取ってくるか創り出す必要がある
  3. ほとんどのSIerにはビジネスを創る能力はない。だから、外部の仕事を取ってくる
  4. 多くの場合、お客さんを支援(お金稼ぐ or コスト削減)するシステムを提供する
  5. 技術面では遅かれ早かれオフショア先に追いつかれる
  6. そうなると、人件費で不利な日本のエンジニアは、技術に興味のないお客さんから見放される可能性大
  7. 見放されたくないので、お客さんの利益に結びつく能力をアピールする必要がある
  8. 振り回されたくなければ、「ビジネスを作り出せる力」が必要
という論旨を展開しています。実際には、決して安い買い物ではないので、中身に全く興味がない顧客は珍しいです。ですが、こういう傾向は多くに見られます。

対して、Web側は
  1. 自社に仕事(ビジネス)はある
  2. でも、事業環境の変化が激しいので、変化に対応し続けるには開発にスピードが必要
  3. 要件定義・設計・実装・運用で縦割ると、引き継ぎやコミュニケーションコストやらが増える
  4. だったら、一人で横断的にやった方が早い(ドキュメントとか要らないし) *2
  5. 掛け持ちが不可能な、超専門的な作業はスペシャリストに投げればOK
  6. なので、フルスタックエンジニアかスペシャリスト以外要らないよね
という理屈です。もちろん、Web系の企業だからといって必ず自社サービスがある訳ではなく、受託的な案件も行っている場合が多いとは思いますが、上記の転職支援で紹介される先は自社開発色の強い企業が多いようです。


このWeb系とSI系、他の話題でもよく意見の対立を見るですが、掘り下げていくと

- Web系とSI系 -

Web系 SIer *2
自社ビジネス あ る な い
成果物利用者 自組織 外 部
利用部門の立場 本業
営利部門
本業外 *3
コスト部門
属人化リスク 負う (技術は人に属する) 負いたくない (対策として作業標準化)
付加価値 横断型専門性(フルスタックエンジニア)
部分特化型専門性(スペシャリスト)
非技術的専門性
(業務知識やマネージメント)
キャリア志向 生涯エンジニア
できれば技術で食いたい
マネージャー
技術では食えない


こういう前提があるのではないかと。で、お互い、お互いの前提を考慮しないので意見が噛み合わなかったり、衝突したりする。

中でも、自社ビジネスの有無と、「技術で食べたい」キャリア志向の差が、大きな衝突要因に見えます。実際、上記転職支援サイトの方は「技術で食べる」為の選択肢として「フルスタックエンジニア」のキャリアを提示しています。その前提を変えるとなると、「なら飲食でも介護でも何でもよくね?」ということになってしまうからです。


で、何が言いたいかというと、特段「コレ」というものはないです。ただ、この手の衝突を見る度モヤモヤすることがあったので、ちょっと自分の中で整理した感じです。そもそも、オイラには他人を心配するほどの余裕はない訳ですし (^^;;;


*1 ドキュメントの重要性(詳細さ、作り込み)が下がる、と解釈願います
*2 ユーザー系SIerと独立系SIerでは結構異なる気もしますが、面倒なのでまとめます (^^;;;
*3 本業が情報通信関連の企業は除きます