iOSチームの荒井です。今回は9月に実施したZOZOテクノロジーズのサマーインターンシップについて紹介したいと思います。インターンシップを開催予定の方、ZOZOテクノロジーズのインターンシップに興味がある方の参考になれば幸いです。SUMMER」を実施しました。期待とエールをこめて奨励金も39万円となっています。iOSチームにも9/12〜9/27の期間あおいさんが来てくれました。iOSチームでは初のインターン生となります。今回のインターンシップの特徴は「就業型インターンシップ」であることです。メンターと毎日隣り合ってZOZOが運営するサービスに携わります。エンジニアは本番にデプロイすることがひとつの目標です。実際にプロダクトの開発を行うことで、業務イメージが湧きやすく、サービスの理解も深まります。期間中はミーティングなども社員と同様のスケジュールで行ってもらいました。選考は以下の流れで実施しました。応募条件は2020年4月から2021年3月の間で、高校/専門/高専/短大/大学/大学院を卒業見込みもしくは修了見込みの学生です。日程すべてに参加できる方を対象としています。6月19日(水)から7月5日(金)の期間募集をし、ありがたいことに多くの学生から応募がありました。ZOZOテクノロジーズ初のサマーインターンシップということもあり、学生の期待も大きかったようです。インターンシップ経験などを書く学生が多いです。エンジニアですとGitHubや開発したサービスの紹介などが伝わりやすく、選考する側も判断しやすいと思います。書類選考を通過した方には課題選考に進んでもらいました。課題は希望職種によって異なります。具体的な内容は伏せますが、今年のiOSの課題は以下のようなものでした。実装および画面遷移を実装する詳細ページには指定した機能を実装するWebViewを使用しないといった、いくつかの課題条件を満たすUI、アニメーション、アーキテクチャ等、実装面でのこだわりポイントについて解説する就業型インターンシップという性質上、アプリケーション開発経験がある学生を対象としています。課題はモバイルアプリエンジニアが作成しており、ZOZOTOWNやWEARの開発で使用するであろう技術が身についているかを判断する課題となっています。課題の取り組み期間は10日間に設定しており、学生の都合も考慮し、ある程度余裕のある期間を設けています。フィードバック課題は提出の一発勝負ではありません。弊社のiOSエンジニアが課題をチェックし、要件を満たしていないところ、コード上で気になるところなどをフィードバックします。フィードバックの修正を踏まえた上で合否を決定します。修正内容は後日行われる面談にて触れていきます。面談はオンラインで実施しました。提出した課題を元に技術的な話が中心となります。あおいさんの面談でポイントとなった点は以下の内容でした。iOS担当のばんじゅんが担当したのですが、一番意識していたのは「実装面でのこだわりポイントについて解説する」という点です。あおいさんは「アーキテクチャの選定にはこだわるようにしている」とのことだったのでアーキテクチャの話題が中心になりました。後日あおいさんに尋ねたところ、インターンシップを通してこの面談が一番緊張したようです。課題合格した方は最後に面接があります。面接は配属先予定のチームリーダーが実施します。今回の面接での確認ポイントは以下の3つです。技術的な面は課題で確認しているため、1と2を重点的に確認します。理念との照らし合わせは採用時にも重要視している項目のひとつです。今回のインターンシップで珍しいところは「キックオフ面談」があるところです。多くのインターンシップでは会社がインターンシップ期間中の課題を決めると思いますが、今回はインターン生の希望を聞いた上で目標を決め、インターンシップ期間中の課題を決定します。今回あおいさんからは以下の希望がありました。サービスのレガシーな部分をモダンにする方法を見てみたい大きなサービスの基盤を触りたいチーム間でどのようなコミュニケーションをとっているか見てみたい厳しいフィードバックが欲しいこの中で特に驚いたのが「レガシーな部分をモダンにする」という内容です。学生から出てくるのは珍しいと思います。インターン生の課題設定は難しく、今回私たちも学生が楽しめるような新機能の追加やUI/UXの変更など、見た目上でも達成感がある課題を用意しようとしていました。そんな中、あおいさんのインターンシップに求める内容の説明は感心させられるものでした。要約すると以下になります。「エンジニアをやっていく中で、レガシーな部分と向き合っていく必要性を感じている。モダンなUI実装などは個人開発でも試せるが、レガシーな部分をモダンにするという経験はレガシーコードが無いとできない。確かにZOZOTOWNは運営期間も長いため、レガシーなコードはまだまだあります。私たちが業務で向き合っている課題であり、学生からこの目標を聞いた時は非常に嬉しく思いました。このようなやり取りを「キックオフ面談」で行い、インターンシップでの目標は「レガシーなコードをモダンにする技術を学び、実践する」に決定しました。こちらで一方的に用意するのではなく、事前に擦り合わせを行うことでインターンシップでの有益性も変わってくると思います。実施内容スケジュール10日間のインターンシップで目標が達成できるようにスケジュールを作成します。初日のセットアップやイベントなどはメンターが事前に決めておきますが、それ以外はインターン生、メンターで随時相談していきます。iOS内にあるObjective-CのコードをSwiftに置き換えるリファクタリングです。事前に「大きなサービスの基盤を触りたい」という要望があったため、機能が多く影響範囲も広いファイルを選定しました。最初の数日はZOZOTOWNアプリの開発に慣れてもらうため、1機能で完結する影響範囲が狭い練習課題から着手してもらいました。インターンシップ中は常にメンターが隣にいるため、気軽に相談できる環境になっています。開発中は行き詰まることも多かったとのことですが、メンターに相談しながら解決していくことで「サービスのレガシーな部分をモダンにする方法を見てみたい」という希望が叶えられたのではないかと思います。「厳しいフィードバックが欲しい」という希望も事前にあったため、コードレビューはメンター以外のエンジニアも参加しています。コードレビューには技術顧問の岸川克己さんにも参加して頂きました。2019で岸川さんのセッションを最前列で聴いていたらしく、弊社の技術顧問と聞いた時には驚いていました。10日間の成果発表を行います。この成果発表は代表取締役社長や取締役、VPoEも出席します。社員も自由に参加できるようになっているため、10日間一緒にやっていたチームメンバー以外も多く出席しました。今回はObjective-CからSwiftへの移行という、アプリケーションの見た目が変わらないテーマでありましたが、iOSエンジニア以外にも内容が伝わる資料にまとめられていました。インターン生は中々このような発表の経験は少ないことも多いので、資料作成の時間や練習の場、フィードバックを受ける環境などをしっかり整えることが重要だと思います。you!」にちなんでインターンシップ期間中に関わった39人からのメッセージとメンターから修了証書の授与がありました。社内イベント10日間のインターンシップでは、開発以外にも様々な社内イベントに参加してもらいました。社員と同様の働き方をすることで、ZOZOテクノロジーズのメンバーが普段どのように業務にあたっているかがより伝わったかと思います。インターンシップ期間中にあったイベントを紹介します。弊社のiOSチームでは定期的に社内勉強会を行っています。Capabilities」がテーマでした。資料は有志のiOSエンジニアが持ち回りで作成していますが、参加者はiOSエンジニアだけでなく、デザイナーや品質管理チームからも希望者が参加しています。社内勉強会の雰囲気を感じて頂ける良い機会だったと思います。iOS技術共有会iOSチームは「ZOZOTOWN」「WEAR」「PB」の3チームあります。それぞれ要素技術は違いますし、勤務地も離れているため、「iOS技術共有会」という形で定期的に情報共有しています。この共有会には技術顧問の岸川さんにも参加していただき、ざっくばらんに意見交換を行っています。あおいさんにはiOSエンジニアの前で成果発表の予行練習をして頂きました。iOSエンジニアとしてのチェックや、資料の構成など、詳細を知っているZOZOTOWN担当以外からもアドバイスを受けていました。ZOZOテクノロジーズscrum社員が起案し開催するZOZOテクノロジーズの全社員イベント「ZOZOテクノロジーズscrum」に参加してもらいました。ワイガンド氏によるセミナーが行われました。BLOGをご覧ください。当日は懇親会もあり、普段業務で接点があるエンジニア以外とも交流する良い場になったと思います。2019を開催しました。Sansan株式会社さん、JapanTaxi株式会社さんとの合同イベントで、本人が参加希望していたイベントということもあり、ZOZOテクノロジーズ関係者として参加してもらいました。当日イベントに参加するだけでなく、弊社登壇者の発表資料読み合わせなど、準備段階から参加してもらいました。SUMMERについて紹介しました。インターンシップは学生が学ぶ場というイメージがありますが、あおいさんのエンジニアとしての学習意欲、問題に対して向き合う姿勢などは良い刺激になり、我々も学びが多い10日間でした。インターン生あおいさん、メンターばんじゅんからコメント頂いたので記載します。あおいさんからのコメント今回インターンシップで取り組んだのは、ZOZOTOWNのiOSアプリのリファクタリングです。メンターのばんじゅんさんの的確すぎるご指導のもと、毎日楽しく学びながら仕事ができました。ランチや日々の業務を通じて気づいたことは、ZOZOテクノロジーズのメンバーは本当に優しく温かい人達ばかりだということです。こんな居心地の良い環境の中で自分の大好きなサービスの改善に携わらせていただけたことは自分にとって大きな財産となりました。総括するとこのインターンシップに参加でき本当に良かったです!お世話になった皆さんありがとうございました。じゅんからのコメントレガシーと戦う技術を持つエンジニアが欲しいといつも思っているなかで、インターン生として、そのモチベーションを高く持っているあおいさんが来てくれたことは、そのレア度もあり驚きました。業務の中ではObjective-Cを攻略する戦術を学んでいただいたのですが、それ自体は広くどこでも役立つ知識とも言えないなかで、あくまでレガシーにフォーカスして楽しんで取り組んでいただけたようです。わたしたちのリファクタリングに対する取り組みにもポジティブな影響が出ていたと思います。モダン化にあたっては実際の移行作業だけではなく現状の調査や分析が大きなタスクになりますが、今回のインターンシップではプロダクトの実際のコードや業務に貢献する目的があったため、具体的な分析がまだ行なわれていない部分を題材に調査から実施していただきました。Objective-CとSwiftの相互運用の特性を踏まえて分析しながら現実的な規模へのタスクの分解を考えていただき、限られた期間のなかで、プロダクトへ反映できるコードの作成を完了していただきました。これは単純な開発体験ではなく、わたしたちが普段実施する業務そのものです。今回その課題を提供できたことと、実業務への真の貢献を得られたことは、本当に良い結果であったと考えています。さいごにZOZOテクノロジーズでは、一緒にモダンなサービス作りをしてくれる方を募集しています。開発部の@ahiru_starrrです。本稿では、ZOZOTOWN...2019-12-25ZOZOテクノロジーズの2019年の振り返りと現状こんにちは、ZOZOテクノロジーズのVPoEの今村(@kyuns)です。岸川氏、松田氏、Matz氏に聞くエンジニア人生。〜とにかく書く、...こんにちは、広報の坂井です。ZOZOテクノロジーズ発足から1年。BLOGプロフィール株式会社ZOZOテクノロジーズのテックブログです。