こんにちは、LINEでCulture Evangelistをしている櫛井です。
今回はLINEに新卒エンジニアとして入社した場合、どのように最初の数ヶ月を過ごすのかご紹介したいと思います。

はじめに
LINEでは新卒採用を2013年から開始し、その後、採用数は年々増加しています。技術職は、開発/データ/インフラ/セキュリティの4職種でエンジニアを採用しており、オフィスも東京・福岡・京都の3拠点から選択が可能です。
本年度の新卒研修では技術職21名が東京に集合し、研修を一緒に受講しました。チームは4〜5人で1チームとなり、研修プログラムは以下のような構成です。
[全職種合同] 入社式〜オリエンテーション(1日)
[全職種合同] 全体研修(3日)
[全職種合同] ハッカソン研修(4日)
[技術職のみ] 技術研修(18日) ←本記事でご紹介
全体研修では、ビジネスマナーなどを行います。エンジニアも一般常識的にビジネスマナーを学んでおくことは無駄ではありませんし、ぎゅっと凝縮しての研修なので必要以上に頑張る必要もありません。参加したエンジニア曰く「あっという間だったしポイントをおさえて教えてくれたのでとてもよかった」とのことでした。
技術職向け技術研修の流れ
この研修の目的は「チームによる開発を体験し、 業務開発プロセスに必要な情報共有・コミュニケーションの方法を共有ツールを使いながら学習すること」です。チームは4〜5人で1チームとなり、リーダーは日替わりで交代し情報共有・報告チェックを実施するといった点も特徴的です。情報共有ツールはLINE社内で利用しているものを使いますが、開発言語や技術は一切制限がありません。
これから作るものはこちらです。
- Android 向けアプリ
- サーバ+クライアント型アプリケーション
- コミュニケーションツール
つまり、コミュニケーションアプリ「LINE」のクローンです。LINEは既に多くの皆様にご利用いただいていますが、 このLINEを今ある技術をどのように組み合わせてもよいので作り直すというなかなか面白い研修になっています。
要件は以下の通り。
■最小要件
- messaging among multiple clients
- 1 to 1 messaging
- good UI
■推奨要件
- data persistence
- async messaging
- group messaging
■オプション要件
- sending image/sticker
- push notification
- プラスアルファでチームごとの独自機能
果たして18日間で出来上がるのでしょうか?チームでコミュニケーションを取りながら進めていくというのは、ある意味で一人で作るよりも難易度が高い場合もありますから見ているこちらもドキドキしてしまいますね。
プロジェクトのキックオフ
まずは講師から研修についての説明などがあります。利用ツールの説明、成果物として何を作るのか、コードレビューの進め方、開発スケジュールなどが共有されます。営業日で18日間というのは実際の期間では約1ヶ月。
実はこの全体スケジュールというのは仮のもので、開発中盤の時点で実際の開発でよくある事件が起こるのですが…


開発風景
チームメンバーは社内にあるコミュニケーションラウンジにてチームごとに開発を進めます。時に黙々と、時にワイワイとやっていました。


1日の終わりには同じ部屋に集まって、現状の報告や課題などを日替わりのリーダーから共有されます。

予定調和の仕様変更&スケジュール変更
「キックオフのタイミングで提示されたスケジュールは仮のもの」と先ほど書きましたが、中盤あたりに起きた事件はズバリ「仕様変更」でした。研修に参加しているエンジニアは「ここらへんのタイミングで何かが発生する予定かもしれません」とフワフワした話を講師から伝えられており、何かあるんだろう?と思いつつも実際に何があるのかはわからない状態。そして発表された仕様変更の内容は「認証サーバの一本化」 でした。

変更される内容は以下の通り、なかなかヘビーです。
- 5チームそれぞれ個別に開発している認証(サインイン・サインアップ)を 一本化する
- 認証サーバは現在使用中のサーバ群とは別に、チーム共用サーバを立て アクセスするものとする
- 認証サーバの仕様は、ここまで各チームの開発が極力無駄にならないよう、 各チーム代表者による協議によって決定する
通常の開発においても仕様変更は発生するので、実際の開発現場をイメージしての研修といえます。
仕様変更を言い渡され、早速チームの代表者がホワイトボードを前に相談をしていました。

成果発表
18日間の研修の最後は成果発表会です。LINE社内から様々な部署の先輩エンジニアたちがあつまったオーディトリアムにて、チームごとに発表を行います。
- アーキテクチャ
- 開発環境
- 工夫したポイント
- 独自機能
など、それぞれのチームから発表されました。中には、プロジェクト中盤でAndroid担当とサーバサイド担当を入れ替えたり、自動デプロイを組み込んだり、監視ツールにこだわったりとチームごとのこだわりや挑戦が見えました。




途中、デモを交えて独自機能の説明なども行われました。こちらは「LINEに送信予約機能をつけてみた」というもの。実際に狙い通り動作して、プレゼンする側も見ている側も一安心。

各チームの発表ごとに行われた質疑応答では
- 独自機能について、面白いと思うが他社の特許は調査したか
- セキュリティ面でこういった点は考慮されているか
- 100万人が使うと想定した場合、スケールアウト出来そうか
など、今まで困難な課題を乗り越えてきた先輩エンジニアたちからピリッとする質問が飛び交います。

成果発表会の終わりでは、エンジニアの新卒採用、研修を担当する橋本より「研修が終われば一人のプロフェッショナルとして現場で働くことになります、自分を新卒だと思わずグイグイ頑張ってください」的な激励がありました。

参加してみての感想
新卒エンジニアたちはチームでのプロジェクトを終え、チーム開発の面白さや難しさと共に可能性も感じたようです。
参加したメンバーに感想を聞いてみました。
- とても楽しかったです。使ってみたいツールも使えたし、自分が使おうと思って断念したものを入れてみてやっぱり諦めそうになった時にチームメンバーがサポートしてくれたりして、得意な部分で活躍して互いに補えたのはよかったと思います。
- 突発イベントがあるのといつくらいになるかは一応聞いていたんですが、認証サーバの共通化というなかなか大変なテーマだったので苦労しました。
- 研修期間中は定時で終わらせる必要があり、もっと実装したい気持ちが強くなってしまう場面もありましたが、最終週などは「間に合わせるためにどうすればいいか」をチーム内で考えるようになったのでよい経験になったと思います。
- 社内ツールやWiki、Slackなどのコミュニケーションツールを研修期間にさわって慣れておけたので、配属されてから部署専用の知識だけを身につければよかったので有意義でした。
なんだかとってもよかったみたいです。
おわりに
LINEでは、本配属になった際に違和感なく実務に入ることが出来るようにエンジニアは約1ヶ月の研修を行っています。満足度も高く、今後も継続していく予定です。
最後にお知らせです。LINEでは、サマーインターンシップに参加する学生を募集しています。「LINEに入社してみたい!LINEにちょっと興味ある」という学生の方は是非ご応募ください。締切りは2018年6月18日(月)です。
https://linecorp.com/ja/career/newgrads/internship