川獺伏草  ~おがどらの雑記ブログ~

自由気儘に書きたいことを書き連ねるブログです。

株式会社いい生活様でインターンをさせていただきました

はじめに

 株式会社いい生活様で1週間(月曜から金曜までの5日間)のインターンをさせていただきました。いい生活様はサークルの友人が長期インターンをしており、少し興味があったので応募させていただきました。選考は面接によって行われました。面接と言っても会社説明が半分といったカジュアルな内容でした。

インターン概要

 インターンはリモートで行われました。Amazon WorkSpacesで接続した仮想マシン上で作業をしました。インターンはチーム開発で行われましたが、Amazon WorkSpacesですと多くのインターン生の作業環境を統一するのが容易である上、PCを貸し出されるより少ないセットアップで済むため、事前準備の手間がかなり省けると感じました。セットアップも完全にマニュアル化しており、迷うことがありませんでした。これに関しては今まで行ってきたインターンでの知見が累積され、都度改善が行われているのだろうと思いました。

 初日はそのような環境構築とReactのチュートリアル、そしてチームの顔合わせと要件定義等が行われました。私達のチームは男気じゃんけんに見事勝利することで無事私がチームリーダーを務める事ができましたが、日替わりでリーダーを変更するチームがあり、とてもおもしろいと思いました。私はReactによる開発を普段から行っているため、チュートリアルは解説より先にぱっぱと終わらせてお菓子を食べたりしていましたが、他のReactが未経験という方もかなりガッツリ開発を行えていたので、要所を踏まえて適切なチュートリアルが出来ているのだと感じました。一方でReactを既に触っている私達のような人向けの参考資料のURLが貼ってあり、関数宣言とアロー関数の違いなど、普段気にしなかったことについて学ぶ機会を得られました。(結局よく分からなかったのですが…) ただ、チュートリアル時点でFunctional ComponentやTypeScriptによるサンプルコードによって解説しており、公式チュートリアルより親切だと思いました。Reactの公式チュートリアルはいつになったらにReact Hooksに書き換えるのでしょうか…

 チーム開発で取り組んだ課題は不動産のデータを用いたアプリ作成で、ターゲットを誰にするかは自由、というものでした。私達のチームでは物件を借りる人をメインターゲットにしましたが、他のチームも同様でした。作成物をどのようにするかは、ペルソナを想定し、そのペルソナのニーズに沿ったアプリケーションを作成するという方式でした。

 インターンは2人のメンターが付いてくださり、基本的な疑問はメンターに質問する形式になっていました。ブランチモデルはmaster&develop&featureブランチを採用しており、最終発表でデプロイすることを前提に開発が行われました。基本的に作業中はSlackのハドルミーティングを繋ぎっぱなしにして作業をしていましたが、途中で集中したいときにはハドルを切ってコーディングしている時もありました。

 GitLab上でコードや進捗管理を行いました。またバックエンドはFirebaseを使用しました。Firebaseは初めて使ったのですが、バックエンドをコーディングする必要がなく、簡単なサービスを短期間で作成するためにはかなり向いていると思いました。全5日のインターン中、コーディングに充てられる時間は実質3日程度しかありませんでしたが、その中でユーザー登録・ログイン機能やユーザーが投稿にお気に入り登録するなどバックエンドが必要な処理を実装することが出来ました。

学んだこと

 「同じ領域を担当する人々でチーム開発を行う」という経験は初めてだったので、それ故の難しさや楽しさを知ることが出来ました。特にコンフリ解消などは、個人で開発を行っている限りほとんど起こり得ないこと(たまにGitの使い方を間違えて大変なことになる程度)なので、それをかなりの回数行ったことは勉強になりました。またgit rebaseコマンドなど、初めて触ったコマンドが多くあり、gitについての知見をより深めることができました。一方で、チームメンバーと認識のズレがあったために実装箇所に重複が起こりそうになったりするなど、コミュニケーションの難しさを改めて感じることもありました。今回はたまたま未然に防げましたが、実際にチーム開発を行う際は曖昧な部分を出来るだけ取り払い、具体化して相手に伝えることを心がける努力が必要だと感じました。また変数名の命名規則やファイルのディレクトリ等が共通化することが出来ず、チーム開発を行う上でそうしたことも事前に打ち合わせる必要があるのだと勉強になりました。

 一方でカンバンを有効活用することによって、誰がなんの機能を開発しているかが明確にすることができたなど、これからも続けていきたいこともありました。実務を行う上では、そうしたコードを書く以外の部分も適切に管理する必要があると強く感じました。

その他

 一週間という短い期間でしたが、かなり多くの機能を実装することが出来、個人的には満足行く結果になりました。また、社員さんにフィードバックを貰ったところ、「しっかりペルソナに沿った開発が行えている」とお褒めの言葉を頂けました。コーディング能力だけでなく、企画や仕様策定などに対しても学ぶことができ、非常に良い体験になりました。

謝辞

 5日間という非常に短い期間ではありましたが、チーム開発における手法や株式会社いい生活という企業の奥深さを学べる一週間でした。メンターのお二方を始め、チームメンバーとして共に開発してくださった方や、様々な機会でお話させていただいた株式会社いい生活さんのみなさん、本当にありがとうございました!