フルスタックエンジニアという言葉の登場の経緯
「full stack engineer」をキーワードに検索してみると、full stack programmer、full stack web developer(engineer)、full stack Java Developer(Engineer)といった類似した言葉が出てきました。
これらの言葉が登場した時期については定かではありませんが、筆者が調べた限りでは、2008年にForge38(Webサービスのプロトタイプ開発を請け負う企業)を運営するRandy Schmidtさんが“Full Stack Web Developers”という言葉をForge38の開発ブログに登場させたのが最初のようです。Randyさんの定義は、Webアプリケーション開発において、「JavaScriptやHTMLを駆使してユーザーインターフェースを作るだけではなく、その背後で動くサーバサイドのプログラミングまで1人でこなしてしまうスゴイ人」というものです。
その後、2011年前半にfull stack programmerという言葉が米国のエンジニア求人にちらほら上がり始めます(注6)。IT系オンラインメディア「Publickey」の2013年6月の記事「最近よく目にする「フルスタックエンジニア」とは何だろうか?」では、2013年前半から、主に米国のスタートアップでfull stack engineerに関する求人広告が目立ってきていると述べています。この記事で紹介されているいくつかの求人の要件を見ると、クライアント技術からサーバサイド技術、SQLチューニング、UXなどの各種設計技術、インフラへのアプリケーション配備まで、実に多様な技術が求められています。ただし、多様ではあるものの、求人ごとに求められる技術の幅は異なっています。
日本でも、この海外の動向に追随するかのように、2014年に入ってスタートアップ企業を中心にフルスタックエンジニアという言葉を用いた求人が増えています。何しろ、筆者が従事するSyncThoughtの求人でも「フルスタックエンジニア募集」という言葉を使っているぐらいですから。
これらフルスタックエンジニアを求める企業を眺めてみると、そのほとんどが、Webを通じて顧客にサービスを提供するWebサービス企業です。飲み会で意見を聞いた5名の間では、フルスタックエンジニアの定義が異なりましたが、結局、企業求人という観点では求められているのは、「フルスタックWebエンジニア」なのです。それではなぜ、フルスタックWebエンジニアが求められるようになったのでしょうか。
注6:求人に書かれている「full stack programmer」が一体どういう意味かを尋ねる質問が、有名なQ&Aサービスである「Quora」に上がっています。
フルスタックWebエンジニアが求められる背景
現在、Webサービスを構築するために必要なスキルを、大ざっぱに図1にまとめてみました。フルスタックWebエンジニアは、図1に記載したスキルすべてを持つ必要があるでしょうか。この疑問を解く手がかりとして、まずはフルスタックWebエンジニアが求められる理由と登場した背景を考えてみましょう。
スタートアップ企業が求めるスピード感
最初に、フルスタックWebエンジニアが求められる理由を考えてみます。先ほど、求人でフルスタックWebエンジニアが求められている状況について述べましたが、そのほとんどがWebサービスを提供するスタートアップ企業です。これは偶然ではなく、スタートアップ企業にはとにかくスピードが求められるのです。伝説のハッカー、ポール・グレアム率いる起業家養成スクール「Yコンビネーター」は、起業家たちにこんなアドバイスを送っています(注7)。
「急いでローンチしろ」、「市場が君たちをクビにする」、「セールスアニマルになれ」、「常に成長率に目を光らせろ」、「他の連中より真剣に考え抜いた点だけが優位性になる」
いかに素早く市場にサービスをデリバリーできるか(=急いでローンチしろ)、そして、いかに素早く試行錯誤をしてサービスをユーザにとって最適な形に改善するか。つまり、常に素早くユーザのニーズに対応できなければ会社が終わってしまう(=市場が君たちをクビにする)のです。このスタートアップ企業のスピード感を支えるには、フルスタックWebエンジニアが必要なのです。
ではなぜ、フルスタックWebエンジニアがスピード感を生み出すのでしょうか。ポイントは少数精鋭の開発チームです。おそらく、スタートアップ企業は大人数のフルスタックWebエンジニアを必要としていません。大人数での開発にありがちな伝言ゲームやチーム間の争いとは無縁の、少数精鋭によるサービスの開発から運用・改善までを密接にした開発チームを求めているのです。結果、このような開発チームの生産性は極めて高くなります。
フルスタックWebエンジニアを集めた少数精鋭の開発チームで成功した好例として、先日Facebookが約1.9兆円で買収した米WhatsApp社が挙げられます。同社は、WhatsAppというスマートフォン向けメッセージングアプリの提供を2009年に開始し、それから4年ほどで月間4億5000万人のアクティブユーザを抱えるまでに成長しました。しかし、開発チームはわずか32人しかいません。WhatsAppが以前に出していた求人を見ると、同社もフルスタックWebエンジニアを求めていたことが分かります。
注7:ランダル・ストロス(2014)『Yコンビネーター シリコンバレー最強のスタートアップ養成スクール』滑川海彦、高橋信夫、TechCrunch Japan翻訳チーム 訳、日経BP社
