BB.excite事業部で約1ヶ月間インターンシップに参加して...

はじめに

はじめまして!エキサイト株式会社で約1ヶ月間就業型インターンシップ(Booost!!! Excite Internship 2023)に参加させて頂きました大澤と申します。
今回は、私のインターンシップでの取り組みやインターンシップを通じて得た知識や学びについて紹介していきます!少しでも参考になれば幸いです!

自己紹介

私は関西大学大学院に通う修士1年次生の学生で、普段大学院では情報学(特にヒューマンエージェントインタラクション[HAI]の分野)を中心に勉学に励んでおります。キャラクターエージェントとロボットを組み合わせてユーザの不快感を軽減することを目標として、研究に取り組んでおり、Python, C#(Unity), Javaを用いてシステムを構築しています。

また、Web系でよく用いられる言語(PHP, Go, Vue.jsなど)についても全くの未経験というわけではないですが、必要最低限触ったことがある程度でした。具体的には、WordPressサイトの構築に使うことや趣味で作ったWebアプリケーション、ハッカソンやソフトウェアコンテストへの参加の経験程度で、実務的な経験は皆無でした。

今回は、そんな私がインターンシップでの経験や学んだことを述べたいと思います。

私なりのBB.excite事業部(以下、BB事業部)の紹介

そもそもブロードバンドって?

総務省によると、ブロードバンドとは超高速インターネットアクセス及び高速インターネットアクセスを可能とする加入者系ネットワーク*1を意味しており、光回線やケーブルテレビを流用したインターネット接続サービス(CATV)、電話回線を流用したインターネット接続サービス(ADSL)が含まれます。

光回線, プロバイダサービスについて

そもそも自宅でインターネットを利用する際に必要なものとして、回線さえあれば良いというものではありません。自宅でインターネットに接続する時の手順としては、以下の通りとなっています。

【自宅からインターネット接続までのフロー】

自宅のクライアント端末(PC等)→ルータ/回線終端装置→光回線→プロバイダ→インターネット

このように、回線とインターネットを繋ぐ役割としてプロバイダが存在します。そのため、回線だけを契約してもインターネットには接続できませんし、必ず回線とプロバイダはセットで必要になります。

ちなみに、別々に契約することも可能ではありますが、現在では、光回線とプロバイダをまとめて契約できる光コラボレーション(以下、光コラボ)モデルが存在します。

2023年10月現在、エキサイト株式会社ではこのうち、光回線のサービス/プロダクトのexcite光業界最安水準で提供しています。また、特に混雑時間帯においてPPPoE接続よりも高速に接続することができるIPoE接続(IPv6)を採用したexcite MEC光についても業界最安水準で提供しています。

その他関連するサービス展開について

上述の光回線, プロバイダサービスに付随して、「BB.excite光電話」や「BB.exciteメール」、「eset FAMILY SECURITY」などオプション機能を提供したり、「エキサイトモバイル」といった格安SIM事業など通信インフラ事業に関わるサービスを提供しています

斯く言う通信インフラ事業に関わるサービスを20年以上提供し、売上の約半数以上*2を安定して生み出しているのがBB事業部の特徴となっております。

インターンで取り組んだこと

私は、多様な事業展開をされているエキサイト株式会社のBB事業部に配属されました。また、事前の面談で希望していた、バックエンド中心で一部フロントエンドの開発に関わりたいという希望に沿った機能開発となりました。

APIの開発

具体的な開発内容としては、BB.excite光電話や光コラボモデルの契約時に登録する電話番号からユーザ情報を参照するAPIを作成するものです。
初めてのタスクということもあり、メンターの方につきっきりで考え方などをアドバイスして頂き、仕様を都度確認しながら進めていきました。

特に、BB事業は20年以上サービスを提供しているため、歴史を感じる機会が多々ありました。例えば、データベース構造が非常に複雑になっていることや開発に必要なテーブルのER図がどこにあるかわからないこと、光回線/プロバイダーサービスであるため、電話番号が何種類も存在し、どの電話番号を参照するのかわからないなど、初めは苦労したことを覚えています。

管理ツールの新機能開発

具体的な開発内容としては、BB.exciteメールに関する機能開発になります。これまで管理ツールで対応できないエラーが発生した際、エンジニアが直接データベースを修正する形で対応していたのですが、それをツール化するというものでした。

こちらは上述の解決したい課題のみが決まっており、要件定義から全てさせて頂くこととなりました。メンターの方に適宜アドバイスを頂きながらにはなりますが、具体的にどのような画面遷移を行い、どのようにデータベースに検索をかけ、どのように更新するのか、1から検討することはもちろん、新規で作成するテーブル設計書の作成にも挑戦しました。また、その過程で、BB事業部のエンジニアの方全員に確認して頂くという貴重な機会まで頂き、実務で使用するという観点で多数のコメントを頂き、サービスやドメイン知識の理解が深まったと考えております。

その後、具体的に開発に取り掛かったのですが、APIの開発とは異なり、フロントエンド、バックエンドのいずれも開発することとなりました。BB事業部の中では比較的モダンなツール(Vue3+Inertia.js+Laravel)で開発されているツールだったのですが、Vueの開発経験が殆どなかったため、初めの方は非常に苦労したことを今でも覚えています。
ある程度機能が形になった後、エンジニアの方々に再度確認して頂いたのですが、細かな部分は置いておいて、ある程度評価して頂いた時は正直とても嬉しかったことを覚えております。

最終日には、機能をリリースするところまで取り組むことができ、学生のうちからエンジニアとして働くイメージを得られるインターンシップであることを感じました。

インターンを通じて学んだこと

エンジニアとして働くということ

このインターンシップでの1つの目標として、私は、「どのような職に就きたいのか/どのようなキャリアプランを歩みたいのか」という問題をある程度明らかにしたいと考えていました。元々、Tech(IT)を用いて誰かの課題を解決したいという想いはずっとあったのですが、それは具体的に、研究者として専門性を深めていくことで解決するのか、エンジニアとしてサービス/プロダクトを生み出すことで解決するのか、はたまた営業やコンサルタントとしてクライアントの課題を聞き取ることで解決するのか、定まっていませんでした。

今回のインターンでは実務を経験することで、後述する自分なりの結論を出せたように感じております。

私は今後、エンジニアとしてサービス/プロダクトを生み出すことで社会に貢献したいと考えております。普段からシステムと対話しているということもあり、物事を理論的に捉えるエンジニアという仕事の方向性が自身に合っていること、機能の生み出す事が出来た時やリリースが出来た時のやりがいを他の職種よりも感じるのではないかと感じております。 また、以前よりエンジニア職につく際のキャリアプランとして、マネージャー職を目指すことを考えていたのですが、人材やスケジュールの管理だけをするマネージャー職よりも、TechLead的なポジションや難しい課題に対してコードの内容を含めて一緒に考えられるマネージャーになりたいと考えています。私は自身が比較的利他的な人間であると考えており、仕事以前に困っている人を助けたいという想いを重要視したいことや少なくともチームの開発環境をもっと良くするなどでコードを書くこと必要は絶対に存在するのではないかと感じています

また、エキサイト株式会社では管理職はもちろん、経営陣の多くがコードを現役で書き続けているというところに対して非常に魅力的に感じたところも上記の理由になると考えております。

クラス名・関数名・変数名の命名に関して

約1ヶ月間のインターンシップで最も苦労したことと言っても過言ではありません。これまでハッカソンなどでのチーム開発経験が多少ある程度だったこともあり、チームで開発するという視点が持てておらず、自分で理解できれば良いという思考で命名してしまっていました。

例えば、上述のAPIの開発において光電話に関連する電話番号を参照する新規のクラスと関数を作成したのですが、初めTelnoクラスget関数命名していました。しかしながらGitHubのPull Requestのコメントでエンジニアの方に、Telnoクラスでは多様な電話番号を扱うBB事業部ではどの電話番号でどんな処理が内包されているのかわからないという指摘や、get関数では具体的に何を取得したいのかわからないという指摘を頂きました。

今後、自分以外の誰かがメンテナンスするという視点を持つことや必ずそのクラスや関数が本質的にしたいことを命名するということについて複数の方から丁寧に教えて頂き、よりわかりやすいクラス名、関数名の命名をすることについて一生役に立つ考え方を学ぶことができました。今後は普段研究や趣味で使っているライブラリやフレームワーク等のオープンソースのコードなどを読みつつさらに技術力を伸ばしていきたいです。

開発に集中できる環境づくり

私がこのインターンシップで学んだことの1つとして、開発に集中できる環境づくりが徹底されているように感じました。開発環境構築が殆ど自動化されており、Dockerをインストールし、GitHubAWSのアカウントを用意しておけばコマンド1つで必要なレポジトリのインストールからビルドまで待っているだけで完結するという画期的な環境でした。一般的に様々な技術を使用しているサービスの開発環境構築は結構な日数がかかると思っていたのですが、1日とかからずに終わったことには非常に感動を覚え、すぐに開発に取りかかれる環境の重要性について学ぶこととなりました。

他にも、GitHub ActionsによるTest, Stage, Prod環境への自動デプロイ機能やAWSのCodeDeployなど、CI/CDが本当に徹底されているように感じました。プライベートではこのような技術の導入などは行わないため、非常に貴重な経験をさせて頂いたと感じております。また、もし今後上述のような自動化ツールが導入されていない会社で働く際には、必ず導入しようと感じた部分でもあります。

他にも全社的に、Slackのワークフローやジョブカンワークフローなど使った電子的でスムーズな申請/承認で統一されており、非常にわかりやすい仕組みであることやリモートワークを積極的に取り入れているところに対しても実際にインターンという形で内部に入ることで学ぶ事が出来たポイントだと感じております。

さいごに

この約1ヶ月間インターンシップを通じて、技術的な部分での成長や学びが大きかったことはもちろんですが、エキサイト株式会社の皆様の人柄の良さや外からではわからない社風や文化、制度などの会社に関すること、Webエンジニアで働くということがどのようなものか知ることができる貴重なインターンシップであったと感じています。また、APIやツールという形で一定の成果を残す機会を設けてくださったことに関しまして感謝申し上げます。

また、私の個人的な事情にご配慮頂きインターンシップの期間をご調整くださったことや、オフラインイベントにもご招待してくださった人事の方はもちろん、対面での勤務についても経験をさせて頂き、快く接してくださったBB事業部の皆様には本当に嬉しい気持ちでいっぱいです。

特に、お忙しいにも関わらず、常に質問できる環境を用意してくださり、様々なことを教えて頂きましたメンターの方々には本当に感謝しかありません。
この1ヶ月でBB事業部のことをたくさん知ることができ、BB事業部の雰囲気が大好きになりました。本当に約1ヶ月間ありがとうございました!!!

ここまでお読み頂きありがとうございます!少しでも誰かの参考になれば幸いです!

*1:総務省, 各ブロードバンドの概念図, 2023/10/30閲覧, https://www.soumu.go.jp/main_sosiki/joho_tsusin/policyreports/chousa/bb_seibi/pdf/041209_2_05.pdf

*2:エキサイトホールディングス株式会社2024年3月期 第1四半期(4~6月)決算説明資料, 2023/10/30閲覧, https://contents.xj-storage.jp/xcontents/AS92613/3c4d882f/cd9f/41ff/8ebc/0df2c72ba11c/140120230809539406.pdf