はじめに
はじめまして。2024年12月9日から20日の2週間、内定承諾前の学生向け短期就業型インターンにソフトウェアエンジニアとして参加させていただいた、26卒学生の岩城和輝と申します。
このブログでは、以下のことをお伝えします!
- DeNAの短期インターンでやること(学べること)
- 会社の環境、雰囲気
ぜひ最後までご覧ください。
自己紹介
改めまして、簡単に自己紹介をさせていただきます!
私は経済学部に所属する大学3年生の岩城和輝( @one1 )です。大学生活ではサークル活動の運営やエンジニアインターンに取り組んでいます。文系ながらも大学入学当初からプログラミングに興味を持ち、独学やプログラミング学習コミュニティにてプログラミングを勉強してきました。
大学2年生から複数の企業でエンジニアインターンを経験する中で、「顧客の課題を自分が開発したプロダクトで解決できる」エンジニアという職種に大きな魅力を感じ、現在エンジニアとしての就職活動に取り組んでいます。
インターン参加の経緯
2024年3月のサポーターズ主催の逆求人1on1イベントで初めてDeNAの方と面談を行い、その後5月頃から選考を開始し、8月に内々定をいただきました。さらに、9月14日から16日の短期サマーインターンや10月の秋ハッカソンにも参加しました。
これらの経験を通じてDeNAを志望する学生の雰囲気やレベル感を知ることができ、貴重な体験を得ました。しかし、自分が新入社員として働いている姿や、どんな社会人生活を送ることになるのか については具体的に想像することが難しく、悩んでいました。
そんな中、人事の方から「内定承諾前の学生向けに短期インターンを企画していますが、参加されませんか?」と声をかけていただきました。
- フロントエンドを中心に経験していたため、バックエンドの開発を通じて技術的な成長が期待できそう
- 実際にDeNAで働くイメージが湧き、自己の適性を確認できそう
と考え、2024年12月9日から20日までの2週間、平日計10日間のインターンに参加することにしました
形式
インターンは、当初週3日対面、週2日リモートの形式で行われました。形式はインターン開始前に選択できるようになっており、「社会人になると出社とリモートの両方を経験するだろうから試してみたい」と考え、この形式を選択しました。 実際に働く中で、自宅での生産性が低いことに気づいたため、2週目の途中から毎日出社に切り替え、週4で出社していました。
10:00~19:00が基本の労働時間で、私は通勤時間も考慮し10時から稼働していました。
さらに、出社日のランチタイムには、さまざまな社員の皆さんとのご飯会がセッティングされており、美味しいご飯を楽しみながら働き方や業務内容についてお話を伺うことができました。
(写真 左から: TEPPAN KITCHEN 渋谷ストリーム店、しゃぶしゃぶつかだ 渋谷スクランブルスクエア、かつ吉 渋谷店)
※[メンター補足]: DeNAの勤務制度は スーパーフレックスタイム です。今回の短期就業型インターンでは10:00~19:00を基本としていました
どのようなタスクに取り組んだのか
配属先について
私が配属されたのはヒューマンリソース本部エンジニアリング室(以下、エンジニアリング室)です。DeNAでは3年ほど前から、新卒研修の一環として「社内で使われ続けるプロダクトを作る」という目標のもとプロダクトを開発しており、そこで生まれたプロダクトはエンジニアリング室が引き継いで運用を行っています。
新卒研修中に作成されたプロダクトの改善要望などは、エンジニアリング室で対応しています。
取り組んだこと
今回のインターン向けに選定されたタスクリストから、自分の関心やスキルに合うものを選びました。その中でも、以下の理由からQuickMTGというアプリの機能改善に取り組むことにしました。
- Goをメインに開発するプロジェクトであり、技術的な成長が期待できた
- 利用者が多く、自分の作業が大きな影響をもたらすことができる
QuickMTG で関わったタスクは「複数拠点への対応」です。
現在DeNAには渋谷スクランブルスクエアの渋谷オフィス(通称SSS)と横浜市関内にある横浜オフィスの2拠点があります。QuickMTGではこれまで渋谷オフィスの会議室しか予約できませんでした。そのため、横浜オフィスの会議室も予約できるよう機能を拡張しました。
QuickMTGとは
QuickMTGは、DeNAの2024年度新卒エンジニア研修で「社内で使えるプロダクト」をテーマに生まれた、社内の会議室予約に関する問題を解決するためのSlackアプリです。主要なユースケースとしては以下があります。
- Slackアプリから容易に会議室予約が可能(最短で3秒!)
- 利用したい時間や人数を入力するだけで、自動的に適切な会議室を選んで予約する
- ホーム画面からワンクリックで1人用のミーティングスペースの予約が可能
学んだこと
バグ発生時の対応方法
QuickMTGの開発中、会議室が予約できないバグに直面しました。原因を調査した結果、ユーザーテーブルのカラムに間違った値が入っていることが判明しました。
本来、jp_mail
にはメールアドレスが、office_id
には会議室の値を示す1や2の数値がcom_mail
には空の値が入る想定でした。
このバグの原因は関数の呼び出し元と呼び出された側で渡す引数の順番が違ったことでした。
/// 関数の呼び出された側
err = a.userRepository.Save(
*slackId,
authUser.UserID,
authUser.Email,
"", // comメールアドレスは未使用
officeId,
)
/// 関数の呼び出し元
func (t PostgresUserRepository) Save(
SlackId string,
GoogleId string,
OfficeId string,
JpMail string,
ComMail string,
)
Goでは型が一致していれば引数の順番が異なっていてもコンパイルエラーになりません。もしPythonのようにキーワード引数が使えれば、呼び出し時に引数名を指定することで順番を気にせずに値を渡すことができ、このようなバグを防ぐことができます。
この経験から、Goでは引数の順番と型が非常に重要であることを学びました。特に、今回のように関数の引数がすべてstring型で定義されている場合、引数の誤りをコンパイル時に検出することが難しくなります。そのため、各引数に異なる型を割り当てたり、引数を構造体でまとめて渡すなどの工夫が必要だと感じました。
自分はバグの原因自体は割とすぐに見つけることができたのですが、それをすぐに修正しようとしました。 その時にメンターの方から「確かに修正することも大事だけど、一旦エラーを再現してみよう!実際にどのような手順を踏んでみて、そのエラーの起こし方を文字にしてみるのも大事。そしたら、他の人もそのエラー再現して修正することができるし、エラーを直すときもどこを直せばいいのか正確になり、修正漏れも少なくなるよ」とアドバイスをいただきました。
今まで自分はバグやエラーが発生した際に、「すぐに修正しなくちゃいけない」という考えから見つけ次第修正していました。ただ実際に修正した後に考慮漏れがあったり、完全に修正しきれていなくて、再度修正してリリースし直すということがよくありました。
そのため確かにすぐに修正できてバグを治すことはできるかもしれませんが、まだ見つかっていない、これから発生するであろうバグの修正をすることはできません。バグが発生してからの修正になってしまいます。また、「そもそもどうしてそのバグが起きてしまったのか」、「未然に防ぐことはできなかったのか」等の振り返りもできません。
以上のことから、「バグやエラーが発生した際にすぐに修正してしまうのではなく、それを再現してみる。」ということを学びました。
実際に働いてみて感じたこと
とにかく自由に働ける
社員の皆さんとの1on1や食事会を通じて、DeNAの自由度の高さを実感しました。具体的には以下の点で働き方の柔軟性を感じました。
- フルフレックスなので自分の好きな時間から稼働できる
- フリーアドレスなので、好きな場所で作業ができる
例えば、チームによって異なるものの、15時に定例会議がある場合、その時間に稼働していれば、開始時間を自由に設定できます。午前中に集中して仕事をし、午後は外でリフレッシュするなど、多様な働き方が可能です。また、実際にある社員さんが同人活動の準備で柔軟に稼働時間を調整されていたことも印象的でした。
このようにチームに許可をとれば自分のライフスタイルに合わせて自由に働くことができる環境が整えられているということがわかりました。
最後に
インターンシップ期間中、メンターの方をはじめ、1on1や食事会でお世話になった社員さん、そしてこの機会を提供してくださった人事の方々に深く感謝申し上げます。また、この記事を最後までお読みいただきありがとうございました。
このインターンを通じて、DeNAでは「自分のライフスタイルに合わせて自由に働くことができる環境が整えられている」と強く感じることができました。自分は 「多種多様な人と関わりながら大規模な開発に携わりたい」という軸で会社を選んでいて、それを十分に満たしながら自由な働き方ができる と感じたため、内定を承諾しました。
このブログを読んで、少しでも多くの方がインターンに挑戦したいと思っていただければ幸いです。興味を持たれた方は、ぜひDeNAのインターンに応募してください!
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。