はじめに
こんにちは!ITプロダクト開発チーム でエンジニアをしている奈良です。
前回の記事では、入社2カ月の感想を投稿しました。
気になる方はこちらをご覧ください。
今回は、前回の記事でも少し触れたインターンプロジェクトの振り返りを書こうと思います。
インターン受け入れを検討している企業の方の参考になれば幸いです。
準備期間でやったこと
ITプロダクト開発チームが属するグループデジタルソリューションセンター(以下GDSC) では今回が初めてのインターン受け入れだったため、GDSC内に参考情報がありませんでした。
そこで、複数回のMTGを重ねて以下を決定しました。
- 初日のスケジュール
- 2日目以降のスケジュール
- 開発するプロダクトの選定
- 最終日のスケジュール
- 受け入れまでに必要な申請事項の洗い出し
受け入れ期間でやったこと
9月から週3日×4時間の形で、インターン生3名を受け入れました。
初日はチームの親睦を深めるため、自己紹介の後に「ノーミング」 を実施しました。
ノーミングの詳細はこちら
2日目はプロダクトの詳細説明とアジャイル開発のルール共有を行い、スプリントプランニング に入りました。
今回のプロダクトは 社内就業規則のRAG検索システム です。
3日目以降はアジャイル開発のルールに沿ってSprintを回しながら進めました。各スプリントのゴールとしては、
- 技術選定を行う
- MVPを作成する
- 機能改善を行う
という流れで進めました。
またスプリントの最後にはレビューを行い社員からフィードバックをするようにしていました。
レビューとは別で、本プロジェクトではAWSを活用して開発を進めており、 10月中旬にはAWSのソリューションアーキテクトの方にご協力いただき、中間発表を行ってフィードバックをいただく機会を設けました。 そこで、アーキテクチャ設計やセキュリティ、パフォーマンスに関する貴重なフィードバックをいただきました。
これらの指摘をもとに、UIの操作性向上やAWSサービスの構成最適化、認証機能の実装など、プロダクトの品質向上に取り組みました。
こうした改善を重ねた結果、最終日には完成度の高い成果物を発表し、プロジェクトの取り組みと成長をお披露目することができました。
プロダクトの完成画面については今後投稿されるインターン生のQiita記事を見ていただければと思います。
インターンのまとめ役担当をして良かったこと
インターン生から質問される機会が多く、その都度調べて答えることで自分の知識も深まりました。
逆にインターン生からちょっとしたTipsを教えてもらうこともあり、学びも多かったです。
また、ゼロからチームでプロダクトを作り上げる過程を間近で見られたことは非常に貴重でした。
技術選定から開発、レビューまで一連の流れを体験でき、さらにPO視点でレビューする機会も得られました。
3ヶ月という短期間ではありますが、マネジメントの練習をさせてもらえたことはとても良い経験になりました。
大変だったこと
本業務との兼ね合いが難しく、スクラムイベントやレビュー対応で時間管理に苦労しました。
開発が進むにつれてインターン生の質問レベルが上がり、答えられない状況を避けるための準備も大変でした。
また、インターン生向けイベントの企画・運営も、日程調整や関係者連絡など普段意識しないタスクが多く、準備に時間を要しました。
ただ、これもインターン生が喜んでくれる姿や社員からの感謝の言葉でとても救われました。
次に活かしたいこと
コミュニケーションの壁をなくす取り組みは継続したいです。
実際にやったこととしては下記になります。
- ランチ会の開催
- 僕自身が出社してこまめに話しかける
- ノーミングや相談会を実施
上記を行った結果インターン生からも「発言・相談のハードルが下がった」と言ってもらえました。
また、調整が必要なタスクは事前に対応を始めることが重要だと痛感しました。
実際就業規則の取り扱いに関するグループ会社との調整が遅れ、進捗が止まる場面もありました。
振り返り でも反省事項として挙がったため、次回は調整タスクには早めに取り掛かろうと思います。
作成したプロダクト
今回作ったプロダクトは、社内就業規則のRAG検索システムです。
技術構成としては、
- フロントエンド: Next.js、TypeScript、Material-UI
- バックエンド: AWS Lambda
- AI/RAG: AWS Bedrock (Claude 3.5 Sonnet)、Knowledge Base
- データベース: Amazon Aurora (ベクトル検索)、DynamoDB (履歴保存)
- 認証: NextAuth.js
という構成で、以下の機能を実装しました。
- 自然言語による質問応答(RAG検索)
- 会社・雇用形態・キーワードによるフィルタリング機能
- 回答の参照元PDFとスニペットの表示(情報の信頼性担保)
- 会話履歴の保存・復元機能
- 2つのKnowledge Base(社内規則 + 過去Q&A)によるハイブリッド検索
また、Aurora DBのコールドスタート問題に対応するため、事前に定期的にDBを呼び出してスリープ状態を回避する仕組みと、Exponential backoffによるリトライ機構を実装しています。
今後の改善点としては、
- ローディング表示などのUI/UX改善
- プロンプトチューニングによる回答精度の向上
- レスポンス速度の最適化
- インフラ構成の見直し
などが挙げられます。実務で使えるシステムとして、さらなる改善を続けていきたいと考えています。
最後に
今回のインターン受け入れは、学びの連続でした。
フォローしてくださったチームメンバーやGDSCの皆さんに心から感謝しています。
特に42Tokyoの学生だったため、プログラミング領域の進行は非常にスムーズでした。
今後、新卒インターンを受け入れる場合は、また異なる工夫が必要になると思います。
最後まで読んでいただき、ありがとうございました。
明日から投稿されるインターン生の記事もぜひ読んでみてください!