こんにちは、ZOZOテクノロジーズ CTO室の池田(@ikenyal)です。
ZOZOテクノロジーズでは、6/27-28(開発2日間・発表は6/29)にアスクル・一休・PayPay・ヤフーと合同で社内ハッカソン「Internal Hack Day」を開催しました。これまでヤフーの社内で開催されてきたハッカソンイベントを、今回は初のZホールディングスの各社合同で実施することになりました。合わせて、新型コロナウイルス感染症対策として、初のオンライン開催でもありました。 techblog.yahoo.co.jp techblog.yahoo.co.jp
そして、今回のHack DayではヤフーのHack Day史上で初めてテーマが設定されました。「新しい生活様式での課題解決」というテーマです。このHack Dayの開催の形式もそうであったように、新型コロナウイルス感染症の影響で我々の生活様式が新しいものに移り変わってきています。その中で出てくる課題を解決し、世の中の役に立つものづくりをしようという思いが込められています。
弊社ではこれまでにも開発合宿を企画したり、エンジニアがプロダクト開発以外でも技術を学べる場の提供を行っております。 techblog.zozo.com
新型コロナウイルス感染症の影響により、計画していた開発合宿もできなくなっており、なかなかこのような場を作り出すことができない状況にありました。そのような状況で、ヤフーからInternal Hack Dayのお誘いをいただきました。Zホールディングスの仲間として、絶好の機会を得ることができました。
普段であれば社内のエンジニアとしか交流する場がなかったりするので、他社のエンジニアと同じハッカソンに参加し発表を見る、場合によっては同じチームで開発する機会は貴重な場です。
今回、弊社からは3チーム(1チームはヤフー・PayPay・ZOZOテクノロジーズの合同チーム)が参加しました。そこで得られた知見や感想をダイジェストでお伝えします。
参加者の感想
以降、それぞれのチームの感想を紹介します。
地図周りの知見を深めたくてHack Dayに参加(@kurarararara)
ZOZOテクノロジーズ、iOSエンジニアの@kurararararaです。自分達は二人チームで参加しました。
同じく同僚でiOSエンジニアの@koiwai2020さんに、「地図を使ったアプリを作ってみたいので参加しませんか」と声をかけHack Dayに参加しました。たった二日の開発期間というのはエキサイティングかつ非常に緊張感のあるものでしたがとても良い経験になりました。
実際どういった流れで参加したのかダイジェストでお伝えします。
1日目
朝
- 普段から同じチームで開発しており、テーマの方針も決めていたので余裕あり。
- Discordで談笑しながら、具体的にどんなUIでどんな動きにするか話し合う。
- 余裕があるので、SwiftFormatや、.gitignoreを指定したりなど環境整理に費やす。
昼
- 事前に使おうと思っていたヤフーのローカルサーチAPIを調査。
- 同時にMKMapView + Core Locationについて調べる。特に引っかかることなく、地図の表示や現在地などを取得することに成功。
- マスコットキャラクターの作成に着手。@koiwai2020さんの書く牛が非常に味のある絵で感心する。
- マスコットキャラクターの役割を示すため、レーダーのようなアニメーションを追加。
夕
- 構想していた機能を追加し終えて、ほぼアプリ完成。
- 「終わっちゃいましたね。後1日どうしましょう?」と談笑。
- この時はプレゼンに耐えられるアプリやスライド作りの大変さに、まだ二人とも気がついていない…。
夜
- 落ち着いて改めてアプリを見直す。「このアプリ大丈夫かな?機能も足りないし、マスコットキャラクターも変更した方が良いのではないか?」と軽く議論になる。
- とりあえず、マスコットキャラクターを描き直すことに決めて翌日へ。
2日目
朝
- 2日目を迎えて、改めてマスコットキャラクターを見てみると非常に愛らしく素晴らしいことに気づいて続投決定。
- マスコットキャラクターをより際立たせるためにコメント機能を追加。
- 変化が伝わるようにコメントの吹き出しにCore Animationを使ってアニメーションを追加。
- Core Locationを使って地名の検索機能を追加。
昼
- ここで急に残り時間がもうないことに気づく。焦る。
- さらに、プレゼンとスライドを作らねばならないことに気づく。余計に焦る。
- 90秒のプレゼン時間に対して、20ページ近いスライドを作成。リハーサルしてみるとやはり尺が足りないことに気づく。とても焦る。
夜
- なんとかプレゼンをブラッシュアップし、90秒の枠に収まるように修正。
- なんとかアプリがきちんと動くようになり、完成。
- 全工程完了。なんとかやり切ったと達成感に包まれる。
3日目(発表日)
- 今回はリモートということもあり、他の参加しているチームが何をしているのか全くわからなかったが、蓋を開けてみるとどのチームも非常にユニークで技術的にも凄い作品ばかりで感心する。
- 発表は@koiwai2020さんに託す。プレゼンは非常にわかりやすく、自分達のアプリの機能の全てを90秒でしっかり伝えていただいて感謝。
- ただ、機材トラブルで実際にアプリが動いているところが映らないアクシデント発生。どんまいです笑。
最後に
色々ありましたが、二日間に一気に集中してアプリを開発することで、普段の学習よりも素早く濃密に知見を深められた気がします。
前々から地図アプリを作ってみたかったので、この知見を生かして近々何か一個作ってみたいと思います。
また何よりあーだこーだ談笑しながらアプリを作るのはとても楽しかったですね。再びこんな機会があるならば参加してみたいと思います。
新卒5人でHack Dayに挑戦(さっと)
ZOZOテクノロジーズZOZOTOWN部・検索チームのさっとです。
私達は、20新卒のエンジニア4人とデザイナー1人の計5人でHack Dayに参加しました。2日間という非常に短い時間の中での開発だったため、時間に追われ大変でしたが、得るものが多い2日間となりました。
開発したサービス
私達は、「身しりとり」というサービスを作りました。
身しりとりは、ZoomやLINE通話などのビデオ通話アプリと画像認識・画像分類の技術を活用し、体を動かしながらジェスチャーで楽しく「しりとり」を繋いで遊べるサービスです。
外出自粛による、運動不足やコミュニケーション不足といった問題を解決できないか、という思いから開発しました。
開発での苦労話
身しりとりを実現するために、ユーザがどのようなポーズを取っているかリアルタイムで判断する必要がりました。
そのため、サーバ側の処理としては、ビデオアプリでキャプチャーした画像からユーザのポーズを抽出するためにユーザの骨格情報を使ってピクトグラム化する処理を行います。
次に、事前に深層学習を使って作成した分類器を用いて、ユーザがどのようなジェスチャーをしているか類推します。2日間で分類器を作り、さらにチューニングを行うことはとても大変でしたが誤検知率が低下し、かつリアルタイム性を実現できたので努力した甲斐がありました。
チーム内でやってよかった行動
開発に詰まったとき、作業画面を共有してペアプロを行うようにしていました。自分では気づかない間違いにすぐ気づくことができ、さらに、方向性を話しながら修正できるので効率的に開発を進めることができました。
最後に
残念ながら賞を取ることはできませんでしたが、新卒研修後あまり接触がなかった同期とわいわいと話しながら開発ができてとても楽しかったです。
それぞれ2日間の開発で知識や技術力不足といった課題を見つけることができました。1年後パワーアップしてまた望みたいと思います。
ヤフー・PayPay・ZOZOテクノロジーズ 合同チーム(松浦・むーさん)
3チーム目は、ヤフー・PayPay・ZOZOテクノロジーズの3社の社員が集まった合同チームです。こちらのチームの参加レポートは後日ヤフーのテックブログにて公開されています。
最後に
ZOZOテクノロジーズでは、プロダクト開発以外にも、今回のようなHack Dayやイベントの開催など、積極的に技術に接する機会を用意しています。
一緒にサービスを作り上げてくれる方はもちろん、エンジニアの技術力向上やエンジニアの組織づくりにも興味のある方を募集中です。 ご興味のある方は、以下のリンクからぜひご応募ください!