1、はじめに
はじめまして、名城大学都市情報学部3回生の天野玲於捺です。
私は1週間、ソリューション開発本部/プロダクト開発統括部/プロダクトソリューション部/メディアWeb開発課のインターンシップに参加しました。
インターンでは、求人情報サービス「バイトル」のWeb開発に携わり、不具合の調査や修正、動作確認、プルリクエストの作成などを経験しました。
この記事では、ナイトワーク求人を検索した際に、一部の求人情報が表示されない問題への取り組みを中心に、1週間で学んだことを紹介します。
2、インターンで設定した目標
インターンに参加するにあたり、私は次の目的とゴールを設定しました。
目的は、技術的な修正だけでなく、課題発見から相談・検証・共有までを自力で進められるようになることです。
そして、担当した課題について、原因調査、仕様確認、実装、検証、説明までの一連の流れを完遂することをゴールにしました。
私には、曖昧なことを疑問のままにしておくのが苦手で、自分で調べたり周囲に質問したりして、納得できるところまで明確にしようとする傾向があります。
この特徴を実務でも生かし、毎日「仮説・確認事項・実行結果・次の行動」を言語化することを意識しました。
3、取り組んだこと
3−1、開発環境に慣れ、PRを作成するまで
初日は、Macの操作やリポジトリの構成、開発の流れを理解するところから始まりました。
これまで私はWindowsユーザーだったこともあり、そもそもMacを触ることが初めてだったり、これまで自分が触れてきた個人開発とは異なり、実際に多くのユーザーが利用しているサービスのコードには、さまざまな機能や処理が関係しています。最初は、どのファイルが何を担当し、どの処理につながっているのかを把握するだけでも時間がかかりました。
一方で、実際のリリース作業も経験し、自分が規模の大きなサービスに携わっていることと、それに伴う責任を実感しました。
2日目には、ローカル環境での確認、コードの修正、コミット、プルリクエスト作成までの流れを経験しました。最初は社員の方に教えていただきながら進め、次第に自分で確認し、最終的には一連の作業を自力で進められるようになりました。
3日目には、緊急性のある調査やエラー修正、リリース後の確認にも参加しました。その一方で、確認が不足していたために、実装を一度やり直す場面もありました。
この経験から、コードを書き終えることがタスクの完了ではなく、想定した条件で正しく動作することまで確認して、初めて修正が完了するのだと学びました。
3−2 ナイトワーク求人の表示問題を調査する
4日目には、ナイトワークを選択した際に、本来表示される求人情報の一部が検索結果に表示されない問題を担当しました。
この問題で難しかったのは、画面に求人が表示されないという事実だけでは、原因を判断できなかったことです。
考えられる原因には、表示判定の実装、検索条件、ユーザーのログイン状態、プロフィール情報、接続している環境、確認用求人の登録状況などがありました。そこで、最初から一つの原因に決めつけず、可能性を分けて調査しました。
まず、リニューアル前後の実装を比較し、表示条件に違いがないかを確認しました。その結果、特定の状態では、ログインしているユーザーであっても、表示判定に必要なプロフィール情報を取得できず、対象外として扱われる可能性があることが分かりました。
次に、未ログインの場合、成人の場合、高校生の場合、プロフィール情報を取得できない場合など、ユーザーの状態ごとに期待する動作を整理しました。自分の判断だけで仕様を決めず、関係者へ確認し、「成人かつ高校生ではないユーザーに表示する」という条件を明確にしてから実装へ進みました。
3−3、影響範囲を考えて修正する
原因となる処理を直す方法として、複数の画面に関係する共通処理を変更する案も考えられました。しかし、共通処理を変更すると、今回の検索結果画面だけでなく、別の機能へ影響する可能性があります。
そこで今回は、ナイトワーク求人の表示判定に修正範囲を限定しました。必要なプロフィール情報が通常の取得経路から得られない場合に、ログイン時に保持されている情報を参照し、表示対象かどうかを判定する形です。
共通処理自体の課題については無視するのではなく、今後検討すべき内容として切り分けました。目の前の問題を解決することに加えて、修正によって新しい問題を生まないことも重要だと学びました。
実装後は、条件ごとのテストに加え、ステージ環境へ接続したローカル環境でも確認しました。最初は期待する求人が表示されず、実装が正しくない可能性も考えましたが、検索条件や接続先、確認用求人の登録状況を一つずつ見直しました。最終的には、対象となる検索条件で、ナイトワーク表示の設定に応じて結果が変化することを確認できました。
4、気づき・学び
今回、特に学んだのは、画面上で「表示されない」という一つの現象にも、複数の原因があり得るということです。
実装だけを見て原因を決めつけていたら、環境やデータの問題を見落としていたかもしれません。反対に、データがないだけだと判断していたら、表示判定の問題を発見できなかった可能性もあります。
また、AIが提案したコードをそのまま実装するのではなく、なぜその変更で解決するのか、ほかの画面に影響しないか、より広い課題が隠れていないかを考えることも意識しました。AIは調査やコードの理解を進めるうえで力になりましたが、仕様を確認し、採用する方法を判断し、結果に責任を持つのは自分です。
技術的に動くものを作るだけでなく、ユーザーやサービスへの影響を考え、必要な相談を行うことも開発の一部だと実感しました。
5、目標に対する結果
インターン開始時に設定した「原因調査、仕様確認、実装、検証、説明までの一連の流れを完遂する」というゴールは、今回の課題を通じて実践できました。
初日はリポジトリの構造を把握するだけでも苦労していましたが、最終的には自分で仮説を立て、関係者に仕様を確認し、影響範囲を考慮して実装し、実際のデータを使った検証まで進められるようになりました。
6、おわりに
1週間という短い期間でしたが、実際に利用されているサービスの開発に参加し、学校や個人開発だけでは得られない経験ができました。
特に印象に残ったのは、開発ではコードを書く力だけでなく、問題を整理する力、仕様を確認する力、影響範囲を考える力、結果を説明する力が必要だということです。
今後も、曖昧なことを疑問のままにせず、仮説と事実を切り分けながら問題を明確にする姿勢を大切にしたいと思います。
これからインターンへ参加する方には、分からないことを恐れず、まず自分で調べ、そのうえで積極的に質問することをおすすめします。
質問や失敗も含めて、一つひとつの経験が次の行動につながると思います。

