はじめに
はじめまして。 id:mktakuyax です。8月末からの約1ヶ月間、インターンとして株式会社ミクシィに入社し、株式会社Diverse VEAT Product Teamでお世話になりました。
このエントリでは、インターン期間中やったことやインターン前の期待、実際に得た学びなどについて、比較的長い文章を真面目に書いていきたいと思います。
こちらはpoiboyチームの武田くんと一緒に写った写真です。
VEATについて
VEAT Product Teamでは、VEATというプロフィール動画でマッチするデーティングサービスを開発・運営しています。今年の春に海外向けにリリースしました。詳しくはDiverse公式ブログの紹介記事を読むと良いです。
VEATは、上記の通りサービス開始が今年の春と、フレッシュなサービスだったので、他のミクシィインターン生から聞いた長く運営しているサービス特有の闇などを味わうこともなく、レールに沿った気持ち良い開発をすることができました。
VEATは、サーバサイドのフレームワークとしてRuby on Railsを採用しています。APIサーバはRails 5から追加されたAPIモードを使って実装され、別アプリケーションとして中の人が操作する管理画面があり、クライアントとしてiOSのアプリがありました。僕は主に、サーバサイドの開発を担当させていただきました。
Rails自体は他社のインターン・アルバイトや趣味の開発である程度触っていましたが、管理画面を自前実装しているサービスの開発は未経験だったり、WebViewに逃げずJSON APIのサーバとネイティブのモバイルアプリという組み合わせのサービスを扱うのも初めてだったので、「新しいことやりに行くぞ」という気持ちで開発に臨むことができました。
また、社内ではGitLabを使っていて、gitを利用したバージョン管理はもちろん、Issue管理やコードレビュー、さらにはCIまでもがキレイにGitLab内で完結していました。
期待していたこと
比較的大きめなチームでの開発
今までは、創業者以外全員学生インターンなスタートアップだとか、リモートワーカー3人だけのチームといった、小さなチームでの開発しか経験したことがありませんでした。今回のインターンへの参加にあたっては、エンジニアやデザイナさん、マーケティングさんなどを含め15人くらいの比較的大きめなチームで、ひとつ屋根の下サービス作りを進めていく体験をしたいという期待がありました。
特に僕はざっくりとですがチーム開発について興味があったので、自分の地元のバイト先と比べて足りないものは何か、逆に僕の方から何か貢献できることは無いか、という気持ちが強くありました。地元北海道のバイト先での開発フローについては、学内発表会で発表したときの資料があるのでリンクを貼っておきます。
チーム開発事例紹介 / Work with a team in BULB inc. // Speaker Deck
これまで扱ったことのないようなサービスを扱うこと
今までは、学校の先生向けのサービスやシェアリングエコノミーサービスのためのプラットフォームの開発だったりをしてきたので、今回デーティングサービスというまた一味違った性質のサービスを扱うという事に不安もあり、またちょっとした気持ちの高まりも感じていました。やっぱりこの手のサービスは社会からの厳しい目に晒されることも多く、当然運営側としてはそうならないような努力をしてきているはずで、それを現場のエンジニア目線から見てみたいといった期待です。
やったこと
インターンに来た時期がちょっと微妙だったようで、すでにサービスのベーシックな機能は実装し終えていて、「じゃあこれからどういう方向にサービスを持っていこうか」ということを決めていきながら細かい修正などを加えていく段階だったらしく、細切れのタスクが多めだった印象です。
大きめのタスクとしては、管理画面のKPIレポートの改善や、開発用のダミデータ自動生成機能、ユーザに提供されるフィードの高速化と検索の改善などがありました。
学び
比較的大きめなチームでの開発について
体制が整った大きめの会社の中のひとつのチームというだけあって、毎回のMTGや物事が進んでいく流れはしっかりしていたような気がします。毎朝のスタンドアップミーティングや毎週のKPT会議など、一緒の場で、チームで同じ目標に向かっているという感覚を持ちながら働くのはとても楽しく、またまわりの人たちが何をしているのか意識しながら緊張感を持って働くことができました。
基本的な開発体制などに関しては、正直「まぁ2016年にマトモにRailsで開発してたらこうなるよね」という感じでした。レビュー自動化のスクリプトがgitlab CI内で走っていたり、そのレビューも単なるRailsのコードのレビューではなくschemaなどのチェックスクリプトなどがあり、そういったところは持ち帰りたいなと思いました。
これまで扱ったことのないようなサービスを扱うことについて
やはり、サービスの健全化への努力はしっかりしていて、プロフィールや動画などをチェックするための仕組みはあったし、管理画面系でもそういうタスクがありました。
その他、技術的なことについて
RubyやRailsは普段からいじっているので、そのあたりの技術に関して何か新しいものを求めていたわけではありませんが、気になっていたRails 5のAPIモードや、Rails Engineなどをまともに使っているアプリケーションに触れることができたのは良い経験でした。
また上の方でも書きましたが、レビュー自動化、特にDBのスキーマのチェックなど大きなチームで開発する上で生まれた品質を担保するための工夫的なところは良い学びだったと思います。
おわりに
インターン前に期待していたことについて、何か得るものがあったので、良い経験だったなと思います。
めちゃくちゃできる人の下で働くということや、実際にビジネスが動いている場で働くということには、それだけで価値があり、ミクシィ・Diverseにはそういう環境があるので、もし興味のある学生さんはまた来年のインターンに応募してみると良いと思います。
VEATチームのみなさん、Diverseの皆さん、そして他のインターン生やミクシィグループの皆さん、1ヶ月間大変お世話になりました!