はじめに
8月27日から8月30日の4日間、都内の某IT企業のインターンに参加しました。この記事では、そのインターンでの体験や学んだことを振り返り、アウトプットしていきます。
事前準備
インターンではRuby on Rails、React、TypeScriptを使用する予定だったため、以下の教材を通じて基礎を学びました。
しかし、RubyやRailsに初めて触れることもあり、学習の進捗は全体の5割程度と感じました。もっと事前に準備をしておくべきだったと後悔しています。
インターンの形式
インターンは4〜5人のチームに分かれてハッカソン形式で開発を行うものでした。初対面のメンバーと数時間のうちにテーマを決めて進めるのは大変でした。
また、このインターンではユーザー役の方にヒアリングを行い、ユーザーが求める機能を把握しながら、チーム内で認識を合わせていく形式でした。まるで実際の開発プロジェクトのようで、とても現実的な体験ができました。
1日目
初日は顔合わせとオリエンテーションが行われ、その後、テーマが発表されました。私たちのチームは、開発よりもユーザーヒアリングと設計に時間をかけました。
具体的には、
- 現在のユーザーの課題を理解
- チームで解決策を考え、簡単なページ案を作成
- ユーザーに再度確認し、認識の齟齬を埋める
という流れで進めました。この時点では、「何とかなるだろう」と楽観的に考えていましたが、翌日以降にその難しさを痛感しました。
2〜3日目
2〜3日目は開発がメインでした。私はもう一人のメンバーと共にバックエンド(Rails)を担当し、他のメンバーはフロントエンドを担当しました。自分の技術力が他のメンバーに比べて低いと感じ、非常に恐縮しました。
開発はOpenAPIの設計から始まり、その設計に基づいてRailsでデータベースやモデル、コントローラーを作成しました。当初は1日で終わると考えていましたが、設計の過不足が多く、何度も修正することになりました。また、OpenAPIをドキュメント代わりにする方針だったため、後回しにすることもできず、フロントエンドチームにも迷惑をかけてしまいました。
4日目(最終日)
最終日は全力でMVPを完成させ、プレゼン用のスライドを作成しました。私は主にデモ用のデータ作成を担当しましたが、意外と手間がかかりました。
3日目でも同様でしたが、frontとbackでAPIの接続等が意外と手間取ってしまいました。
やはり、自分がもっとfrontendをわかっていれば、より良いアプリができたと感じてしまいます...
反省点
- 見積もり不足: 進捗を時間単位で設定せず、「今日中に終わればいい」という程度で進めてしまったため、予定通りに進みませんでした。
- 一度に多くを進めすぎた: APIを一つずつ作成すればよかったのに、一気に進めようとしたため、非効率になりました。
- フロントとバックのコミュニケーション不足: お互いの進捗状況が明確でなく、連携がスムーズにいきませんでした。時間があればGitHub Projectを使いたかったです。
- 取捨選択の甘さ: やりたいことが多く、時間が限られていたため、MVPをより具体的に絞り込むべきでした。
- 技術力不足: Rails初心者であり、フロントエンドの開発経験も少ないため、他のメンバーに比べて貢献できなかったと感じています。一応Copilotのおかげで、GitHub上では一定の貢献ができたようですが...
学んだ技術
- OpenAPI
- Ruby on Rails
- React
- MVP開発
- チーム開発の進め方
など多くの技術を学べました!
多分思い出せてないだけで、もっとあります!
最後に
今回のインターンでは、多くのことを学びました。優秀なチームメンバーに刺激を受け、同時に自分のモチベーションも高まりました。
また、毎日の始業・終業時に「今日やること、今日できたこと、今日の反省、明日やること」などを言語化する時間があり、これが自分にとって大変でした笑
そういうわけもあって、練習としてこの記事を書いています!