More than 1 year has passed since last update.

この記事は freee Engineers Advent Calendar 2016 の 3 日目です。

こんにちは、freeeでエンジニアをやってます @yo_waka です。
先日弊社で初の試みとなる開発合宿を1泊2日で実施しました。初めてなのに小規模開催ではなく開発全員で開催した結果いろいろと得たものも多かったので、そのときのブログでも書こうと思います。

やりたいこと

  • みんなが楽しんで開発だけに集中できること
  • 開発全員(およそ60人)で行うこと
  • 初ということもありまだ実績がないので予算はなるべく抑えること

1番目のは開発合宿なので当然として、2番目と3番目は予算と規模は相反するものなので折り合いをつけるのが大変なやつ。
予算の具体的にいくらだったのかはお弁当制度(会社の社食に招待できる)があるので直接聞いてくださいw

場所について

前述の予算感などと合わせ、今回の拠点は千葉県にあるリソル生命の森になりました。
敷地内でWi-Fiが使えること、100人クラスの会議室、宿泊施設が併設されていることなどもろもろの条件を満たしていたことが採用の理由となります。
また、弊社はお子さんがいるエンジニアも多いので、会社がある五反田との2箇所開催としています。

なお、宿の候補やプランについては旅行代理店を通してやりとりをしていました。一定以上の規模の場合は宿選びのコストも馬鹿にならないので、全体感としてはお得です。

みんなが楽しんで開発だけに集中できること

自分で考えたものを作るということ

自分が作りたいと思うものを作るのが楽しいに決まっています(もちろん業務にまったく関連性がないものをやるのはNGですが)。
事前にスプレッドシートを用意して各エンジニアには当日やろうと思っていることを書いていってもらうようにしました。
たった1日でこんなにアウトプット出るのというボリュームと期待感を共有できる、というのと、もし似たようなことをやろうと思っていたり、やってみたいことが書かれていたりしたらその人と一緒にやってみるという動きも期待していました。実際数人のチームもいくつか生まれて、1人では厳しい課題にチャレンジしていたところもありました。

集中できるということ

普段はカスタマーサポートやセールスからの問い合わせなどSlackで来ることが多いのですが、事前にこの日は開発合宿を行いますというアナウンスをしていたためか、当日はまったく問い合わせがなかったという奇跡。
集中が途切れないというのは特に1泊2日という短い合宿においては本当に大切で、弊社のbiz&サポートチームの開発への理解があっての合宿でもありました。

様子です

会議室での開発の様子です。ルータは持ち込んで自分たちで設置などしました。
IMG_20161007_131707.jpg

屋外での開発も気持ちよさそうでした。
DSC_0387.JPG

ご飯は予算を削って自分たちでカレーを作るなどしました。結果としてチームビルディングにもなってよかったです。
IMG_20161007_181828.jpg

夜はロッジ内で開発してました。ある意味ここからが本番でした
DSC_2008.jpg

成果

たくさんのアウトプットが実際にユーザーさんの元にデプロイされていますが、僕は同僚の @nasa4w と組んでサービスのパフォーマンスチューニングを行い、API周りのレスポンスタイムを全体的におよそ2倍速にしました。

下はとあるAPIのNewRelicレポートですが、緑のエリアは各APIで共通で叩いていた処理で、とあるタイミング(合宿前/後)で綺麗に無くなっています。
Pasted image at 2016_10_25 19_57.png

その他にマイクロサービスの叩き方を見直すなどして大幅なパフォーマンス改善を実現しました。

内部的な成果として、合宿後に取ったアンケートでは、概ね満足度の高かった模様です。
スクリーンショット 2016-12-03 11.52.40.png

また、「いつかやりたいと思っていたことを終えることができて、スッキリした」、「普段の働き方を見直すきっかけになった」という人もいたり、「集中して開発することの価値を再考できた」という人も多くて嬉しい限りでした。

逆に改善点としては、「ガチで集中してるので頻繁にやるのは無理」「温泉がほしい」「遠方はしんどい」「現地と五反田の空気の違い」などが挙げられました。
特に家庭の事情などで現地に来れない人たちがいるのを考えると、2拠点で同じ温度感を共有できるような仕掛けは次回以降の改善点かなと思っています。

開発合宿は楽しいし気づきも多いので、いろんな会社でもやってみるといいと思います!

まとめ

開発合宿は2年くらい前からやりたいやりたいと騒いでいたので、とてもやりたかったことだったのですが、開発が20人、40人と人数が増えるに従ってだんだんと開催が難しくなってきていました。
そんな中で今年からeng-hmctという社内のエンジニアのためのイベントを企画・運営するチームが立ち上がり、LT大会や打ち上げといった全員で行うイベントを運営するノウハウが溜まるようになり、これで組織立って開発合宿を実行できる機運が高まりました。
開発合宿やりたいけど、1人ではちょっと・・という場合にチームでもって企画や説得にあたれるのは心強いです。

freeeではサービスの開発も、開発組織を楽しく運営するためのイベントも運営してみたいエンジニアを募集しています

4日目となる明日は、freeeが誇るERPデータ設計の巨匠こと @yebihara さんです。お楽しみに!