アイキャッチ

【フルスタックとは?】サイバーエージェントがフルスタックエンジニアの育成に踏み切った理由

転職

    近年のIT・Web業界でカジュアルに使われることの増えた「フルスタック」という言葉。(※フルスタックとは、あらゆる種類の開発技術を習得しており、開発業務における一通りの需要に応えられるようなスキルのこと。エンジニアの年収アップにも繋がると話題)

    米国IT企業の求人で使われ出したこの言葉は、日本でもバズワード化。その実現可能性をめぐって、さまざまな議論が繰り広げられるようになった。

    中には懐疑的な声もある中で、サイバーエージェントのAmeba統括本部 広告部門(以下、MDH) メディア広告開発室で技術チームのチーフアーキテクトを務める平松紘典氏は、今年4月より「有志を前提にフルスタックエンジニアの育成プロジェクトを始めた」と語る。

    サイバーエージェントのAmeba統括本部が手掛ける最新プロダクトである『AbemaTV』(画像はWeb版)

    サイバーエージェント・メディア事業の最新プロダクトである『AbemaTV』(画像はWeb版)

    同社のAmebaや、今年始めたAbemaTVなどが属するメディア事業のマネタイズをミッションに、アドテク関連の開発をしているこのチームは、現在30名程度のエンジニアが在籍している。

    その中から希望者を募り、現在は第1弾として2名のエンジニアが“修業”中だ。

    Scalaエンジニアの採用で行き詰まり、フルスタックエンジニアの育成を始める

    平松紘典氏

    サイバーエージェントの平松紘典氏

    ちなみにここで言う「フルスタック」とは、インフラからクライアントサイドまで担当できるエンジニアで、MDH内ではさらに「広告配信の業界知識が豊富でサーバ設計まで1人でできる人」を指す。

    フルスタックエンジニアの育成に踏み切った理由は2つあると平松氏は言う。

    「一つは採用上の理由が挙げられます。当部門ではサーバサイドの開発でScalaを使っているのですが、Scalaの使い手を中途採用で獲得するのは少し難しいという感触がありました。であれば、チーム内にいるクライアントサイドのエンジニアたちにサーバサイドも担当してもらえればというのが、育成プロジェクトを立ち上げることにしたきっかけです」

    そしてもう一つは、平松氏自身の経験上、「クライアントサイドの開発はサーバサイドの状況に振り回されるケースが多い」ため、両方を理解しながらプロジェクトを前に進めるエンジニアが必要だという次期リーダー育成の要素も兼ねている。

    おりしもサイバーエージェントでは、UIデザインをベースとしてUIアニメーションやインタラクティブな実装も同時に行う「テクニカルクリエイター」の育成に注力し出すなど、会社全体で職種の縦割り構造を壊すような「横断スキル」の獲得を奨励する取り組みを進めている。

    以前、弊誌で取り上げた「テクニカルクリエイター」の仕事内容についてはこちらを参照

    以前、弊誌で取り上げた「テクニカルクリエイター」の仕事内容についてはこちらを参照してほしい

    これは、開発におけるすべてを1人で補えとは言わないまでも、「周辺開発の“のり付け”のやり方までは理解していた方が分業制のリスクが減る」(平松氏)という点で、昨今のWebサービス開発のトレンドとも言える。

    ただ、冒頭で「懐疑的な声も」と記したように、フルスタックエンジニアの育成が大変であることから、業界内では「チーム開発のやり方をブラッシュアップした方が現実的」という意見があるのも事実だ。この点について、MDHではどう考えているのか?

    「私も、エンジニア全員がフルスタックになる必要はないと思いますし、現実的に無理があるとも思っています。まずは特定領域の開発に習熟することが優先で、フルスタックエンジニアを目指すかどうかはその後の判断になると思っています」

    フルスタックになれるエンジニアの条件は2つある

    さらに、このプロジェクトで重要視しているのは「育成される側のやる気」だと平松氏は言う。

    現時点で育成プロジェクトに参加している2名は挙手制で募ったエンジニアで、年齢も31歳と26歳とバラバラ。一定の年次を迎えたら強制的に育成するような類のものではないという考えゆえだ。

    「サイバーエージェントでは、もともと『タスクを待つより探しに行く』仕事習慣を推奨しているので、今回のプロジェクトでもこのスタイルは重視しています。その方が、成長スピードも速いでしょうから」

    この前提があるからこそ、実際に「育成」と称して会社側から提供している内容も、特筆するようなプログラムではない。具体的には

    ■週1回、午前中いっぱいを勉強に充てられるように参加者へ自由時間を提供

    ■座学は提供せず、手を動かす学習内容に(Scalaを使ってサンプルアプリを開発したり、本番稼働中のプログラムを切り出して修正作業をやってもらう、社内用ツールの開発をするetc)

    ■ MDH内でScalaに関する知識が豊富なメンバーがメンターをしながら、月イチで行っている1on1で進ちょくを共有(※初期は参加者とのQ&Aを週イチで行うなど配慮しているそう)

    といった内容で、今のところ、通常業務と同時進行で行われている。

    「もちろん、このプロジェクトに参加したことで業務面での評価が下がったりしないように、技術レベルの習熟度をエンジニアリングの分かる上長がしっかり評価してあげるような仕組みも大事になります。当社の場合は、『S100』と呼ばれる非常に細かな軸で人事評価を行う仕組みがあるので、レベルアップの度合いはこの中で評価していきます」

    ともあれ、

    【1】まずは特定領域の開発に秀でることを前提に
    【2】意思ある人にだけフルスタックエンジニアになるための機会を提供する

    というのは、育成の本質(つまり、お仕着せがましい育成研修では人は育たない)から考えても全うな仕組みと言える。

    「いろんな技術分野を横断するようなスキルセットを持っている人というのは、たいていの場合、自分から進んで勉強したり、自ら機会を得にいくような人たちだと感じています。ですから会社ができることは、学びたいという意欲を歓迎し、学ぶための時間を提供することくらいというのが僕の考えです。スモールスタートでこのプロジェクトを運用していきながら、いずれはサーバサイドエンジニアからも『クライアントサイドの開発を学びたい!』という声が挙がってくるようにできればいいなと考えています」

    取材・文・撮影/伊藤健吾(編集部)

    Xをフォローしよう

    この記事をシェア

    RELATED関連記事

    RANKING人気記事ランキング

    JOB BOARD編集部オススメ求人特集





    サイトマップ