はじめに
こんにちは。2020年夏にEightで1ヶ月のインターンをした辻です。 今回はEightのインターンでどのようなことをしたのか、経験できたこと・自身の学びも含めて書いていきたいと思います。
参加した目的
私は普段、ユーザー300人弱のWebサービスの開発をお手伝いしているのですが、 まだ経験したことのない大規模開発を実際の現場で経験したいと思い参加しました。
オンライン・オフラインでの実施
今回のインターンはコロナウィルスの感染拡大予防のため、オンラインとオフラインの両方を活用するかたちでの実施となりました。 実際、インターン期間中に出社コードが「在宅推奨」に切り替わりましたが、ミーティングなどは基本的にオンラインで行われており、在宅勤務でも問題なく勤務できる環境が整っていました。 また、オフラインの場合も感染予防対策がなされた状態での勤務となりました。
また、メンターさんと在宅勤務の日にもモニターがあるといいなあと何気なく会話をしたことをきっかけに、実際にモニターを用意してもらう事ができ、オンラインでも集中できる環境で業務に取り組めました。
インターンの1日
Eightでは9時30分から全体での朝会が始まり、その後チームでの朝会が行われます。 チームの朝会で進捗を確認したあとは、基本的にずっとコードを書く時間に充てられます。 オフィスでは休憩スペースでゆったりしながらコードを書いたりもできて、気分転換になり最高でした。
昼は、チームメンバーや他職種・他部署など社内の色々な方とランチできる機会があり、オフィスに出社した日はオフライン・在宅の日はオンラインで美味しいランチをご馳走になりました。Sansan・Eightの話やキャリアに関する話なども聞けてとても有意義な時間でした。
一日の終わりにはメンターさんと夕会を行い、その日出来たこと・学びを確認し、次の日やることを決定します。 また週の終わりにはフロントメンバーの方々とレビュー会*1を行い、その週の成果物の発表をしたり、チーム内での振り返り・プランニングをしたりします。
業務内容
私はEightの企業向けプレミアム(企プレ)チームにスクラムの1メンバーとしてジョインして、実際にその時の現場において優先度の高いタスクに取り組みました。中でも「企プレに非Eightユーザーを招待する」というのが期間中で最も大きなタスクでした。 Eightのドメイン知識が必要かつ複雑なタスクだったのでキャッチアップは大変でしたが、よりサービスの背景を理解した上で取り組む経験が出来たので良かったです。
技術
業務では主にRailsを使用して、APIの作成などを行いました。 EightのAPIはRESTとGraphQLを併用しており*2、私が担当した部分はGraphQLで実装しました。 Railsは普段から使っていましたが、GraphQLを使うのは初めてでした。 ただ、既に書かれたコードの可読性が高かったため、そこから読み解いたり、時にはペアプロしたりしながら業務を進めていきました。ペアプロの際はVSCodeのLiveShareなどを活用することで、オンラインでも問題なく業務を進めることができました。
間に合わない事件
上述のように実際のスプリントのタスクに取り組んでいたため、チームとしての計画があり、いつまでにこのタスクを終わらせるかという事が決まっていました。
そんな中で事件は起こりました。 私が担当していたタスクを予定までに終える事ができなかったのです。
原因は、「チームの目標が優先なはずなのに、私が自分の恥・恐れに負けて自分を優先してしまっていたこと」でした。 終わらない・出来ないならば、チームの計画を踏まえて、いつまでに誰とどんなコミュニケーションをとるべきなのか考えて行動する。 言ってしまえば当たり前のことなのですが、これが出来ていませんでした。 この反省は自分の中に強く残っており、これから仕事をしていく上で意識していこうと思える出来事でした。
当初の予定からは遅れましたが、自分でやり切りたいという意思を伝えてチームメンバーの了承を得た上で、予定を半日ずらして貰うことになりました。そしてボトルネックとなっていた部分を解消し、無事リリースすることが出来ました。リリースしたあとの定量的な結果からも改善を確認することができ、嬉しかったです。
大規模開発を経験して
Eightで大規模開発を初めて経験して、責任の重みを感じました。障害が起きた時の影響の大きさも全然違いました。 しかし同時に、リリースしたときに得られる反応・影響範囲も大きく、とてもやりがいを感じられました。 初めて大規模開発を経験して、改めてサービス開発の面白さを感じられた1ヶ月でした。
スクラムの1メンバーとして参加して
今回私が参加した企プレチームはベテランの方が多いチームで、スクラムで開発を進めていくという点に関しても沢山の学びが得られました。
「いかにスプリント目標を達成し、ユーザーに価値を届けるか」を常に意識しながらチームが動く。目標達成のために自分は何をすべきか考えて動く。 という目標を達成する意識・覚悟が足りていなかったんだなと自覚しました。
また、週を重ねるごとにチームが良くなっている感覚があったのも印象的でした。これは、チームメンバーの自分ごと感・毎日振り返る仕組み・週ごとの意味のある振り返りによって成り立っているんだなと感じました。
感想とまとめ
まだまだ書き足りない部分はありますが、本当に貴重な経験ができました。
今回のインターンは、強マッチ *3 や業務を通して自己理解が深まり、自分がどういう状態だと成果を出しやすいかを認識できる良い機会にもなりました。
この1ヶ月は自身のエンジニア人生にとって非常に貴重で価値のある1ヶ月になりました。