2019 年も開発合宿を行いました

こんにちは, 2018 年に入社して新卒エンジニア 2 期生として会計freee の開発をしているけむりだま (@_kemuridama) です. この記事は freee Developers Advent Calendar 2019 の 12 日目の記事になります 🎄

昨年は会計freee で使っている JavaScript のパッケージマネージャを yarn から npm に戻す話を書いたりしていましたが, 今年は技術的な話題ではなく 10 月末に実施したfreee のプロダクトチームで恒例行事となっている開発合宿の様子の紹介と運営してみた感想を書いていきたいと思います.

参加メンバーの集合写真

4 回目となった開発合宿

freee のプロダクトチーム (エンジニア, UI/UX デザイナー, プロダクトマネージャ) では毎年秋ごろに開発合宿を開催することが恒例となりました.

freee の開発合宿ではプロダクトチームがメインタスクから少し離れて, 普段感じている課題や技術的な負債を解決するためにオフィスを離れて 2 日間フルで集中して取り組み, プロダクト全体の品質向上や生産性向上に寄与することを目的としています. オフィスを離れるとミーティングなどで開発の差し込みが入ることがなくなり, また普段と異なる環境で仕事を行うことでリフレッシュして開発を行う事ができます.

今回の開発合宿は神奈川県の三浦海岸にあるマホロバマインズ三浦さんにお邪魔しました. 家族の事情などで宿泊で参加が難しいメンバーもオフィスや家からリモートで参加してくれました.

開発合宿の様子

開発合宿の会場として大きな会議室を 2 つお借りしました.

開発合宿の会場となった会議室

椅子をつなげて寝ながら開発する人もいたり...

椅子をつなげて寝ながら開発をする人

前後の人と相談しながら開発を進める人たちもいたり…

前後の人と相談しながら開発を進める人たち

机をつなげてチームで開発を進める人たちもいました.

机をつなげてチームで開発を進める人たち (1) 机をつなげてチームで開発を進める人たち (2)

開発合宿の舞台となったホテルから三浦海岸には歩いて行けるため, 海岸でリフレッシュしているメンバーも多くいました.

海岸でリフレッシュしているメンバー

夕食は三浦海岸ということもあって新鮮なお刺身を含んだバイキング形式で参加メンバーたちも大満足でした 😋

刺し身の盛り合わせ バイキングで食べ物を取る様子 ご飯を食べながら談笑するメンバー

毎度のことながら温泉もあってリフレッシュや疲れた身体を癒すには最高だったのですが, 写真は撮れなかったのであしからず….

CEO 参戦

弊社の CEO でもある DS*1 が開発合宿に初参戦して, 他のメンバーと共に会計freee の開発をしてくれました. DS は会計freee ローンチ時には実際に手を動かしてコードを書いていましたが, 最近は中々時間が取れずにコードを書きたい欲が沸々と湧いていたようです. ローンチ当時に比べてコードが巨大になっていたり, 使っている技術が変わったりしていて難しいといいながら新卒エンジニアのメンバーに教えて貰って機能修正やリファクタリングを頑張っていました.

今年の新卒に教えてもらいながら開発をしている DS の様子

DS が久しぶりに会計freee の開発をした感想やプロダクトにコミットしたことでちょっとしたおもしろエピソードがあるのですがそれは本人に 23 日の Advent Calendar で書いてもらいます ✌️

開発合宿をやってみて

僕は去年と今年の開発合宿の運営メンバーでした. 特に今年は開発合宿プロジェクトのオーナーとして運営チームを引っ張っていく役割でもあったので色々大変でした.

今回どのように freee の開発合宿を企画 / 運営したかを簡単に共有したいと思います.

OKR 決め

前回まではあまり定性的な目標を置かずに開発合宿を実施していました. しかし, ただ単にどこかで合宿を行うというだけだとどのような価値がこの開発合宿にあるのか示せないので, 今回は OKR を決めて開発合宿をすることでプロダクト全体にどのような良い影響をもたらしたのか測ろうということになりました. 過去 3 回の開発合宿を運営チームで振り返り, 今年の開発合宿の Objective は「過去最大のマジ価値が生まれる開発合宿」で Key Result にプロジェクトのリリース率を 70% 以上と定めました.

「マジ価値」というのは freee が定めている「ユーザにとって本質的な価値があると自信を持って言えること」です. 運営チームはプロダクトチームにとっての「マジ価値」はリリースをして実際にプロダクトにコミットすることだと解釈し, 開発合宿でメンバーが取り組んだプロジェクトのリリースがたくさん出れば出るほどマジ価値であると考えました. 昨年までの開発合宿のプロジェクトのリリース率が 50 ~ 60% 程度だったのでこれを過去最大の 70% 以上にすることを目標とし, 運営チームはこれを達成できるように宿泊地の選定や参加メンバーのサポートを行いました.

宿泊地探し

今回の参加者は 150 人弱で, その中でも宿泊を希望したメンバーは 100 人弱でした. 参加者が 20 ~ 30 人くらいの開発合宿の事例はいくつか検索するとヒットするのですが, 100 名規模の開発合宿事例は中々出てこないので合宿地探しからかなり苦労しました.

さすがに希望する全ての条件がクリアできる宿は中々無いので, いくつかの条件を優先度別に分類して合宿地の候補を探しました.

  • 優先度: 高
    • 100 人規模で合宿が行えるかどうか
    • 予算内で開発合宿が催行できるかどうか
    • インターネット環境が整っているかどうか
  • 優先度: 中
    • 都内から電車だけでいけるかどうか
    • 温泉があるかどうか
  • 優先度: 低
    • コンビニが近くにあるかどうか
    • 全館貸切できるかどうか

優先度高のものは全てクリアが必須なのですが, この中でも特に弊社のエンジニアにとって重要なのはインターネット環境で, 社内では人権と言われるくらいです. メンバーの中には開発環境を AWS 上においている人も徐々に増えているので, インターネットに接続できないとなると開発できないといった事態になってしまいます. 実際に 2017 年の開発合宿では合宿を始めてすぐの頃にインターネット接続が不安定となり GitHub や Slack などに接続できなくなり開発が滞るといったトラブルも起きていました. 今回宿泊地として選んだマホロバマインズ三浦さんは会議室に個別でインターネット回線を引かせてもらってかなり快適にインターネット接続を行うことができました.

開発合宿のプロジェクト集め

毎年開発合宿が行われる 1 ヶ月半前くらいから参加するメンバーに対して開発合宿で何をやるのかを提出してもらっています. 1 人でプロジェクトをやるもよし, 仲間を募ってチームでプロジェクトをやるもよし, とりあえず合宿に行く前になにか明確な課題を出してくれというものです. 後述する成果発表会での発表や OKR の達成度を測るのもこのプロジェクト単位でやっています.

成果発表会

開発合宿を終えて 1 週間くらいして, 合宿の成果を全社に報告する成果発表会というものを合宿の締めくくりとして行いました. 昨年まではプロジェクト全てを参加メンバーに発表してもらっていたのですが, プロダクトチームの人数も増えて全員が発表すると途中ダレてしまったりして良くないだろうということで, 今年はプロジェクトごとにやったことや成果の概要を予めスライド 1 枚にまとめてもらい, 社内掲示をしてどのプロジェクトの発表を聞きたいか投票してもらって成果発表会で発表してもらうプロジェクトを決めました.

全てのプロジェクトの発表ができないのは心苦しかったですが, 発表会自体は中だるみすることなくお酒を飲みつつワイワイとやれたので良かったなと思っています.

おわりに

2019 年の開発合宿も無事に終えることができました. 開発組織が大きくなることによって開発合宿をやることもだんだん難しくなってきていますが, プロダクトチームの恒例行事として来年もやれればなと思っています. DS が来年の開発合宿にも参加したいと言っているので, 次は新機能の実装を期待しています 😆

今回の開発合宿で生み出されたマジ価値は徐々にリリースされて, ユーザの皆さんの元に届いていくはずなので是非ご期待ください!!

最後に宣伝です. 3 ヶ月に 1 回くらいの開催で恒例となっている freee Tech Night の 5 回目の開催がなんと来年 1/21 (火) 決定しました 🎉 こちらも僕が運営として携わってるので是非遊びに来てください!! (開発合宿のこととかもっと聞きたいよって言う人がいたら懇親会とかで気軽に話しかけてくださいね ✌️)

freee-tech-night.connpass.com

明日は 2019 年新卒の緑髪でおなじみスポーンです. アクセシビリティについて書いてくれるみたいです, お楽しみに!!

*1:弊社ではニックネームでメンバーを呼び合う文化があります