pixiv insideは移転しました! ≫ http://inside.pixiv.blog/

新卒に伝えたい「経験」の重要さ ~ 多くのプロジェクトを体験する意義について

こちらはピクシブ株式会社 Advent Calendar 2015 20日目の記事です。

qiita.com


こんにちは、ピクシブ株式会社の旅するエンジニア(自称)こと@yudemanjyuです。 pixiv Sketchという気軽にお絵描きを楽しめるサービスを開発しています。

弊社の新人教育はOJTを採用しており、基本的には新卒の配属先プロジェクトでエキスパートとして育てます。一方で、私や先日「入社してからいろんなプロジェクトで鍛えられた話 2015」を書いてくれた@ikのように様々なプロジェクトを渡り歩いて総合的な技術力を鍛えるケースもあります。

これまでに習得した技術

昨年私が書いた「入社してからいろんなプロジェクトで鍛えられた話」やその後の業務をざっくりと振り返ると、以下のような技術を身に付けてきました。

  • 言語
    • Java, Ruby, JavaScript, PHP, Scala
  • フレームワーク
    • Ruby on Rails, Sinatra, Play Framework
  • 運用
    • AWS, Heroku
  • 弊社サービス開発のノウハウ
    • 弊社が運用する各種サービスのアーキテクチャ
    • 各種サービスを連携させるノウハウ
  • 関わったサービスに対する責任感

私が経験したプロジェクトは日々の開発で大きな助けになっています。本記事では自信で経験したプロジェクトを振り返り、右も左も分からない新卒エンジニアがどのように殻を破ってきたか、チームにどう貢献できるようになったかを紹介し、新卒に様々なプロジェクトを渡り歩かせるメリットを語ります。

事例1: 関わったサービスの問題は爆速で対応する!

「エンジニアにとって自分が開発に関わったサービスは自分の子供と言っても過言ではありません。」

私も過去に関わったサービスには思い入れがあり、新しいプロジェクトに移動した後も常に気にしています。エラーログは常時監視しており、不審なログが流れた場合は即座にデプロイ担当者に確認を取っています。非常に恐縮ですが、上司からも「大体@yudemanjyuがすぐ反応するよね」と評価されたこともありました。

また、リリース後しばらく時間が経過してから発生するバグもまれにあります。担当者がすぐに対応できないときは、私が気づきユーザへの影響を可能なかぎり減らせたときもあります。新卒の頃は自分に障害対応なんてできるのかと不安でしたが、開発経験が自信につながり、自分が音頭を取ってさまざまなシステムの障害に対応できるようになりました。

事例2:「その変更、アレにも影響します」

ある日、複数のアプリのログイン機能のバグが発覚しました。特定の状況下で一部機能が利用できなくなるバグで、原因をたどったところAPI側の設定の変更で解決するとわかりました。しかし、複数のアプリが共通で利用するログイン機能の性質上、設定を変更すると他のアプリに影響を与える可能性があり、事前の影響箇所の調査や万が一の時のリカバリ手段の用意は欠かせません。

このときも事例1と同様に以前、アプリ開発やAPI開発に関わっていた経験が役立ちました。複数のサービスを連携させるには、ある程度依存関係が複雑化するのは避けられません。しかし、変更しようとしている設定と機能の利用箇所をすべて担当していたので、すぐに確認が必要な箇所をすべてチェックし、幸いにも設定を変更しても影響は一切ありませんでした。過去の業務経験からサービスの依存関係を詳しく知っていたおかげで素早く気付き、自分が様々なプロジェクトに参加してきたのメリットを強く感じた瞬間でした。

事例3: pixivと連携した機能を作るならまかせろ!

最近は、pixivとpixiv Sketchの連携を強化する機能を開発しています。pixiv Sketchとpixivはシステムが完全に独立しているので、両者を連携させるには一工夫が必要です。設計から実装まですべてを私が担当するときに、pixivのAPIを開発していた経験が役に立ちました。過去に開発したアプリ用のAPIを把握していたので、スムーズに進められました。

入社当初は先輩が設計した機能の実装が中心でしたが、自分自身も同様に可能になりました。結果、2つの機能を並行して実装できるようになり、より早く新機能を提供できるようになりました。

まとめ

様々なプロジェクトを旅する中で、各サービスへの愛と責任感、そして問題があった時に対応できる自信を身に付けてきました。各プロジェクトで得られた知見も他サービスの開発時に非常に役立っています。

弊社のように様々なサービスが連携している場合、各サービスのエキスパートだけでなく、それらを横断的に理解しているエンジニアがいると助かるケースが多々あります。色々なプロジェクトを旅させる教育は、サービス全体に対する愛と責任感と横断的な対応力の強化に非常に有効です。

きっと決済周りでプロジェクトを飛び回ってる@ikも、来年の今頃は「ピクシブの決済は任せろ!」なエンジニアになってくれるでしょう。

明日は新卒のpawaが書いてくれます!


ピクシブ株式会社ではサービスへ無限のを注ぎたくて仕方がないエンジニア・アルバイトの方を募集中です。こちらからどうぞ。

recruit.pixiv.net