エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

エムスリーエンジニアリンググループ第三回開発合宿を開催しました!

エンジニアリンググループ・マルチデバイスチームの金丸 (@maru333) です。

年度またぎのバタバタで遅れてしまいましたが(言い訳)、先日(3/15〜3/17)、第三回開発合宿を開催しましたので、その様子をご報告したいと思います!

f:id:kanemaru-m3:20190405151936j:plain

ご参考までに、これまでの開催の様子 (第一回、第二回) も貼っておきますので、ご興味あればそちらもご参照ください! (第一回の様子,  第二回の様子)

開発合宿を行っている背景

第一回でもご紹介していますが、基本的には日々の業務や既存施策ではできない「新しいもの」を生み出すことが目的だと思っています。
日々仕事をしているオフィスから離れ、少し歩けば海の音が聞こえるような快適な開発環境の中で、リラックスした状態で開発できること。普段別チームで、仕事上あまり関わることのないメンバーも含めて1つのチームになり、皆で立てたお題の中の1つについて好きなだけ開発をし続けられる環境というのは、開発合宿以外ではあまり実現できないことだと思います。
私も去年末にjoinしてから今回初参加の開発合宿でしたが、開催日が近づくワクワク感は何にも代え難いものがあります。また、今回はVPoE山崎が3日間フルに参戦となり、オフィスでは話せないようなくだらない話も含めて盛り上がり、楽しい時間を過ごすことができたことも付け加えておきます。

施設の紹介

リピート割があることもあり、すでに定番化している千葉県富津市金谷にあるvoido*1さんで合宿を行いました。

f:id:kanemaru-m3:20190410105611j:plain
施設外観 (僕の車、かっこいいですね!(違))

voidoのホームページにあまり詳しいことは書かれていないので、どんなところだろうとワクワクしながら向かいましたが、2F建ての貸切スペースで、1Fが開発スペース、2Fに2段ベッドとくつろげるスペースがあり、とてもオシャレな施設でした。

f:id:kanemaru-m3:20190405153616j:plain
1F開発スペースの様子

基本的に開発に必要なものは全て揃っているので、Macを持っていくだけで開発がスタートできます。(21インチディスプレイも複数借りられます) 気になる方は、ぜひ一度利用されてみてはいかがでしょうか、オススメです。

個人的にはキッチン付きなので好きな時間に料理もできること、近くにあるスーパーの食材がすごく美味しいのでシンプルに塩だけで味付けして炒めた野菜がめちゃくちゃ美味しかったのがポイント高かったです♪

合宿で取り組んだこと

では、本題の合宿の内容に入りたいと思います。
合宿開催前に、事前に参加者で集まって今回何をやりたいかを1時間くらいかけてブレストして決定しました。最終的に残った候補は以下4点。(他にもたくさんの候補がありました)

  • m3.com API の GraphQL化
    • マルチデバイスチームはサーバ側のリソースが現状不足気味なこともあり、BFF的なことをやりたい!というのがずっと実現できていませんでした。今回の合宿で、メインサービスのm3.comで使われているAPIのいくつかをGraphQL化し、今後の開発のベースにしたいという取り組みです。
  • FIDO2 組み込み検証
    • 先日2/25にAndroidがFIDO2認定を取得したこともあり、最近FIDO界隈が盛り上がってますよね!エムスリーでも複数のサービスでログイン機構があり、場所によっては多要素認証などを取り入れているところもありますが、やはりパスワードリスト攻撃の危険性は排除しきれず、より安全なログインの仕組みが求められています。技術的な検証が合宿中にできれば、そのベースを元に経営会議に持って行ける (プロジェクトとして立ち上げられる) だろうと考えました。
  • 勤怠自動化
    • 弊社は勤怠管理をWebシステムベースで行なっています。出社/退社時にWeb上のボタンを押下するのですが、よくその行為自体を忘れ、後になって記憶や記録からその勤怠時間を追加/修正するという非効率的なことになっていて、今回のテーマではAndroidのBLEを活用しこの勤怠部分を自動化できないかという試みです。
  • 会議予約をなんとかしたい
    • 現行の会議予約システムが、会議室の空きと参加メンバーの空きのマッチングが非常に難しいという日々の困りごとがあり、これを提供されているAPIとVue.jsで何とかしようという試みです。

1日目 (3/15(金))

今までの開発合宿では、出社扱いにするために金曜午前の出社が必須だったのですが、移動があまりにも無駄だということでリーダが調整をしてくれ、直出OKとなりました!(これかなりありがたかったです!)
僕は千葉に行くならどうしても車を出したかったので、今回は車組と電車組に分かれて向かいました。
voidoは車でのアクセスが非常によく、JR川崎駅からちょうど1時間程度で到着します。11時にvoido現地集合と決まったので、車組はJR川崎駅に10時待ち合わせでピックアップし、平日の昼間なので渋滞もなく、大師線・アクアラインを経由して快適に現地へ向かいました。(直線も多く非常に快適に走れる路線なので、事故等にはいつも以上に注意しながら向かいました)

f:id:kanemaru-m3:20190410105739j:plain
JR川崎駅での出発の様子。金髪の怖いお兄さんが居るように見えますが気のせいです。

11時過ぎに到着し、荷物の整理や各自ベッドの確保などが終わりちょうどお昼に良い時間になったので、金谷港にランチに出かけました。

f:id:kanemaru-m3:20190408191606j:plain
金谷港でランチ

合宿スペースから金谷港まで徒歩5分ほどで行ける距離にあるので、非常に恵まれた環境にあります。美味しいご飯には困らず、逆に何を食べようかと散々悩む結果になりました。初日は地魚定食にしました。

f:id:kanemaru-m3:20190408205635j:plain
地魚定食

ランチが終わって帰ってきてからは集中タイムです!

各チームごとに1日目の目標や情報の共有を行い、実際の実装作業に入りました。
合宿前の事前打ち合わせでは、「消灯時間を決めないとみんな延々とやってしまってヤバイ!」というフィードバックがあったのですが、そこは開発合宿なのであえて制限は設けずに好きな時間に好きなだけ開発しよう!ということになりました。結果として早い人はちゃんとした時間に寝てスッキリした状態で朝目覚め、明け方まで集中してやってる人と朝の挨拶をしてから交代するかのように就寝し、その人は昼頃まで寝て昼ご飯だけ一緒に行ったりと、かなり自由な空間になり僕はとても居心地が良かったです(笑)

f:id:kanemaru-m3:20190408213358j:plain
夜の集中タイムの様子

2日目 (3/16(土))

2日目はみんなで昼ご飯に出かけた以外は集中タイムでした!
正直、こんなにみんな集中タイムが続くのかとビックリしつつも、周りに刺激を受けつつ僕も集中できたので良い環境だったと思います。

またこの日は「こういう実装はどうだろう?」「何かアイデアください!」のように、チームをまたがってみんなで意見を出し合えたのは楽しかったです。僕のアイデアも採用してくれて、即実装が完了してたのにはビックリしました。西場さんすげー!

2日目の夜は、毎回恒例となりつつあるLT大会を行いました!内容は「趣味の変遷」「みんなの知らないルービックキューブの世界」「楽しいベトナム」など、社外の自己紹介的なLTでやっても凄く盛り上がりそうなものから、合宿以外ではあまり発表できなそうな怪しげな内容のものまで様々で、全部の内容がとても面白く、大変勉強・刺激になる会になりました。LT大会、良いですね!!!

f:id:kanemaru-m3:20190410110355j:plain
趣味の変遷
f:id:kanemaru-m3:20190410013620j:plain
みんなの知らないルービックキューブの世界
f:id:kanemaru-m3:20190408213638j:plain
楽しいベトナム!

3日目 (3/17(日))

最終日はいつもみんなの疲れが尋常じゃないということで、昼頃解散が恒例だったのですが、voidoさんのプランだと17時まで利用できるので、せっかくだからもうちょっと(頑張れる人は)頑張ろう、という流れになりました。
また最終日は疲れもたまっているためリフレッシュも兼ねて、内房の海が一望できる天然温泉 海辺の湯*2に朝風呂に行ったり、昼は金谷港にある牡蠣・海老・ホタテ・サザエが食べ放題の海鮮浜焼き まるはま*3に行って海鮮焼き食べ放題をしたり、楽しいイベント盛りだくさんでした♪

f:id:kanemaru-m3:20190408220038j:plain
海鮮焼き食べ放題の様子
f:id:kanemaru-m3:20190408221640j:plain
食材が山盛りでした、全て食べ放題です!

昼ご飯から帰ってきてからは、最終発表を14時スタートで行いました。

f:id:kanemaru-m3:20190408221148j:plain
最終発表の様子(1)
f:id:kanemaru-m3:20190408221222j:plain
最終発表の様子(2)

最終発表は、参加者それぞれにしっかりとした成果と学びがあり、大変有意義な合宿になったと思います。(実際の成果については、後日ここTechBlogで成果共有があると思います!)
発表が終わってからは後片付けを行い、VPoE山崎の奥様が車で駆けつけてくださったので、2台の車に分乗し帰路に着きました。結局17時近くまで合宿スペースにいたので、金曜の午前中からフルに合宿を行う (合計56時間!) という結果になりました。
帰りの車内でも今抱えている会社の課題などについて話し合い、実際に対策するためのSlackチャンネルが後日立てられたりと帰りも非常に収穫が多かったです! メンバーの中には力尽きて車内で爆睡している人も居て、最後までそれぞれ自由に活動できて楽しかったです(笑)

おまけ

集中して開発するには、適度な休息と遊び要素が大事!だと僕は考えています。
今回PSVR未経験のメンバーが何人も居ることが判明、これはエムスリーエンジニアとしては由々しき問題だと考え、2FくつろぎスペースにPSVRを設置し、いつでも遊べる状態にしておきました。
結果として、就寝前にAceCombat7大会やグランツーリスモ大会が行われたりしたので、良いリフレッシュになったかな、と思っています!
PSVRは、VRで実際に遊んでいる人の映像がディスプレイにもそのまま映るので、みんなでディスプレイを囲みながらワイワイと盛り上がりました!個人的には、怖がってもらおうとBioHazardの結構怖いシーン直前のセーブポイントから体験してもらい、絶叫してもらおうと画策していたのですが、体験してくれた人曰く「あまりにVRが凄すぎて怖さを感じるという感覚がなかった」と言われてしまい、ちょっと悔しかったです(笑)

f:id:kanemaru-m3:20190409173944j:plain
PSVR体験会の様子。この後あまりにハマって購入した人も!?

また、2日目の夜にはVPoE山崎の奥様が「助っ人(&料理人)」として参戦してくださり、適当に買ってあった食材でささっと鍋や焼きそばを作り、大変美味しいご飯をいただくことができました!
VPoEの奥様の手料理が食べられるなんて、サイコーかよ…。。

f:id:kanemaru-m3:20190409181625j:plain
このお鍋、めちゃくちゃ美味しかったです!

最後に、エンジニア募集です!

エムスリーでは一緒に働いてくれるエンジニアを募集しています!
今回の合宿のように、様々なチーム混合でたくさんの新しいことを生み出したり、隔週で行われるTechTalkでみんなの知見を共有したり、日々お互いに刺激を受け合いながら、楽しいエンジニアライフを過ごしています。
この記事を読んで、もし少しでも興味を持った方はぜひ下記リンクよりご応募ください!また、会社の雰囲気が知りたい!という方はカジュアル面談や、隔週で行なっている社内TechTalkを聞きにくることもできますので、ぜひお気軽にお問い合わせください!