とりのとりかご

とり自身の活動や考えたことを書き残しています。

DMM.comさんの就業型インターンに参加させていただきました

はじめに

お久しぶりです、とりです。前回の記事の更新から1ヶ月が経ちました。奇跡的に速いスピードでの更新となります。 本記事は 9/1 - 9/30 の期間に参加させていただいた、DMMさんのインターンについての報告になります。

DMMについて

dmm-corp.com

合同会社DMM.com さんは「誰もが見たくなる未来。」というコーポーレートメッセージを掲げたなんでもやっているで有名な企業さんです。その事業数は60以上に渡り展開しており文字通りなんでもやっている企業さんです。インターンに参加させてもらった際に技術はもちろん、ビジネススキル(プロダクト思考)を強く持つエンジニアさんが多く在籍している印象を受けました。

インターン参加までの流れ

DMMさんのインターンには参加対象のものが2つあります。一つ目に自身が参加させていただいた就業型インターンです。こちらのインターンへの参加フローとして基本的には以下の流れになると思われます。

  1. DMM人事の方や社員のかたとお話しさせていただく
  2. スキルチェックシートを書く
  3. 配属先希望を出して、現場エンジニアの方とお話しする

自分は1on1イベントで人事の方と掛け合っていただき、希望先の部署の方と繋いでいただきました。またインターンにはもう一種類あり、DMM GULIDというものがあります。こちらに関しては自分は参加していないのですが、出題された課題(クエスト)のなかで、自分が挑戦したいものを選んで行う形式みたいです。

dmm-corp.com

両者の大きな違いとして、部署に配属された中で課題をこなす or さまざまな部署を跨いだ課題の中で選択するかだと思います。個人的にお話を聞いた感じではDMMさんに興味はあるけど部署までは決めていないという方はGULID、もうすでに興味のある分野があり、実際の社員さんのようなフローで開発したい方は就業型インターンの方に参加することをお勧めします。

就業型インターンについて

自身はDMMさんの就業型インターンにて1ヶ月の間お世話になりました。インターン先の部署はオンラインサロン事業部さんにお世話になり、「DMMオンラインサロン」「SalonLive」のiOS開発を行わせていただきました。1ヶ月の間に行わせていただいた具体的な業務内容を大きく述べると Xcode14&iOS16 への対応になります。

Xcode14&iOS16 への対応

私がメインで1ヶ月間行っていたこのタスクは、想像以上に時間を費やしたものでした。具体的な構成は述べられませんが、大きく時間を費やしてしまった要因の一つとして自身が環境構築面での知識が少なかったことにあります。

今回学んだのはiOSのパッケージ管理ライブラリである「CocoaPods」「Carthage」「SwiftPM」それぞれのメリット、デメリットについてです。それぞれについて一言で説明させていただくと

  • CocoaPods:古くからあるためさまざまなパッケージが対応している。依存関係を細かく指定可能なためカスタマイズ性が高い。

  • Carthage:導入したいパッケージを記載するだけで自動で依存関係を構築してくれるためシンプル。プロジェクトファイルやXcodeプロジェクトのビルド設定を変更しなくて良い。

  • SwiftPM:公式が提供する安心感。SPM形式でのみ提供されているswift-algorithms、swift-atomicsなどのライブラリが使えるのもメリット。

となります。今回この責務わけに大きく時間を取られることになりました。というのはXcode13からXcode14betaにアップデートした際に既存に組まれていた環境で構築すると、エラーまみれになってしまった経緯があります。細かいエラーはさまざまありましたが、結論として Xcode14からBitcodeオプションは非推奨になったことCarthageの更新が去年の6月で止まっていること(ver 0.38.0) なのかなと思います。

CarthageはCartfileにてverを指定してライブラリをインストールすることができます。しかし、いくら最新のライブラリを指定してもエラーが解決されることはありませんでした。細かい修正点については別の記事で書きたいと考えていますが、Carthageが依存関係を構築するたびに「Xcode14からBitcodeオプションは非推奨になりました」というメッセージにてbuildが止まっていたのでそこに何らかの原因があったのだと思います。結果として原因がわからなかったのですが、ビルドログからエラーを吐いているライブラリをCocoaPodsに移行することですんなり解決することができました。

Xcode14からのbitcodeについては非常にわかりやすかったので、以下の記事をお借りさせてください。

qiita.com

その他の取り組み

業務内の時間にただタスクをこなすだけではなく、新鮮なものが多くありました。例を挙げると、ほぼ毎日参加させていただいた活動の一つであるHuman Interface Guidelinesをチームで朗読し理解する時間があります。この取り組みの元として業務時間の5%を自己研鑽に充てようという考えからみたいです。

エンジニア個人で理解するには難しいグリフデザインの話や、逆にデザイナー個人で理解するには難しいダークモード周りの話などをお互いの理解を話し合うことで共通認識を持てる時間でした。他にも互いを尊重し合うことを中心に行われていたスクラムミーティングや、さまざまな事業部のかたが集まって取り組みや情報を共有する「開発組織総会」に参加させていただいたり価値観が広がる1ヶ月間になりました。

過去の開発組織総会についての記事 inside.dmm.com

終わりに

今回DMMさんの長期インターンに参加させていただいた記事を書かせていただきました。

まとめになりますが、インターンの中で最も感じたことはエンジニアの裁量の広さです。主体的に動ける仕組みとそれを許してくれる環境が揃っているので、とても働きやすさを感じました。

自分みたいに、「ただコードを書くだけでなくプロダクトをどんどん良くしていきたい!」という方にはとてもおススメできると思います。大企業なのにベンチャー並みのスピード感があるDMMさんに興味のある方はぜひ選考やインターン参加を検討してみてください。