🗻

開発合宿のススメ

2021/11/11に公開

10月から Magic Moment にJoinした @aqlwah です。
開発のことやチームのことなど、他のメンバーに日々多大なフォローをいただきながらキャッチアップしている身ですが、今回ぜひブログを書かせてくれ!と頼み込んで筆を執っております。

さて、Magic Moment Techチームでは10月末に1泊2日での開発合宿を実施しました。チームとしては初の試みです。
この記事では、開発合宿の目的や内容、振り返りなどについてお話ししていきます。

development-camp-1

開発合宿の目的

開発合宿を行うにあたり、以下の目標を設定しました。

  1. 現在開発中の新機能のQA(テスト)を完了させ、社内利用できる状態にすること
  2. 日々あまり着手できていない課題に取り組むこと
  3. 今後の開発の展望を議論すること
  4. 懇親

この「現在開発中の新機能」は、わたしたちのプロダクト(Magic Moment Playbook)のこれからを担うコア機能のひとつ、という位置付けのものです。
筆者が入社するずっと前から企画され、10月にいよいよ開発に着手をし、Techチーム総力を挙げて1ヶ月をほぼこの機能のために費やした、社内でも注目度と熱量の高いプロジェクトです。
プロジェクトとしては10月で第一フェーズを終えた段階であり、開発はこれからも続いていきますが、フェーズの区切りとして合宿を行い締め括る形としました。

そのため、目標1が最優先課題で、あとは時間があればやりたいこと、という位置付けです。
合宿の期間は1泊2日しかないので、タスクを山盛りにしてもただ疲弊をするか、最悪の場合目標1の未達ということにもなりかねません。目標はほどほどに絞り込み、「これだけはなんとしてもやり切るぞ」という覚悟を決めました。

Magic Moment Techチームでは、QAを行う際、メンバーがまとまった時間をとって集まり、様々な視点を交えて議論しながら集中的に進めることが多いです。
メンバーが同じ場所に集まれること、割り込みのない十分な時間を確保できることからも、QA工程を合宿で行うという計画はわたしたちのスタイルともほどよくマッチしていました。

また、10月初から新しいメンバーが2名Join(筆者含む)しているので、親睦旅行のような側面も期待し、合宿に臨みました。

ロケーション

千葉県木更津市の龍宮城スパホテル三日月を利用しました。
他にも候補はありましたが、テックリードの強い勧め(ここの話をしているときだけなぜかテンションが高い)で行き先が決定しました。

今回の開発合宿は仕事の一環ではありますが、せっかく場所を変えるなら日頃の疲れがリフレッシュできるような場所がよいです。とはいえあまり遠方すぎると、時間的にも体力的にも移動コストがかかって逆にコストパフォーマンスがよくないので、1都3県の範囲内で検討しました。
バケーション寄りの合宿であればもう少し遠出してもいいかもしれません。

海も間近に見えてとてもよいロケーションでした。(ディスプレイを間近に見ている時間の方が長かったですが。。。)
龍宮城、とてもオススメです。筆者もファンになりました。

何をやったのか

現在開発中の機能のQA(テスト)を完了させ、社内利用できる状態にすること

これがすべてでした。完。

具体的な流れとしては以下の通りです。

  • 1日目
    • 10:30 - 12:30 チーム全員でQAの項目出し
    • 12:30 - 13:30 お昼(持参)
    • 13:30 - 15:30 4チームに分かれてQA実施
    • 15:30 - 16:00 状況共有ミーティング
    • 16:00 - 18:30 QAのバグフィックス
    • 18:30以降 業務終了
  • 2日目
    • 9:00 - 12:00 QAのバグフィックス
    • 12:00 - 13:00 お昼
    • 13:00 - 14:00 QAのバグフィックス
    • 14:00 - 14:30 状況共有ミーティング
    • 14:30 - 15:30 4チームに分かれて再度QA実施
    • 15:30 - 16:00 新機能デモ!
    • 16:00 - 16:30 まとめ
    • 16:30 - 17:00 撤収・解散

スケジュール的には微妙にカツカツで、合宿中に終わらないかもしれない緊張感がほのかに漂う中ながら、メンバーがお互いをフォローしあいスピーディーに目標達成に向けた行動ができました。

2日目の最後にデモをやるのは最初から決めていたことで、合宿の目標を達成した=待望の新機能が使えるようになったことをチーム全員で確認し、労いあうイベントとして設定したものです。

Magic Momentでは「プロダクトは全員で育てていくもの」という強い信念があり、デモイベントをとても大切にしています。
デモを行うことによって、エンジニアが生み出した「プログラム」をその苦労や思いまで含めて他の仲間に手渡し、「わたしたちのプロダクト」に昇華することができます。

合宿の最後に行ったデモはTechメンバー内でも好評で、「デモでちゃんと動いているのを見て、やり遂げた達成感があった」との声も多く挙がりました。

振り返り

後日、チーム内で合宿の振り返りを行いました。
振り返り(KPT)の内容の一部を以下にまとめます。

Keep(よかった点)

  • 合宿の目的が明確だったため、集中して取り組み、達成感を得られた。
    やり遂げるラインがハッキリしていたことで、合宿中にやるべきこと・後でよいことの切り分けがしやすくなり、タイトなスケジュールでも効率的に動くことができた。
  • 寝食を共にしたり、業務外の話をしたりすることで、お互いの理解が深まった。
    10月入社者から見ても、先輩方と親睦を深め、お互いの思いを知ったことで、志を同じくする仲間なんだと改めて認識することができた。
  • デモで成果を確認しあって、成果を喜べるのはエモーショナルな面でも良かった。嬉しかった。
    1ヶ月このためにフルコミットしてきたのが報われた気がした。

Problem(改善点)

  • 大きなディスプレイ(or プロジェクター)がほしかった。
    オンラインの画面共有でも用は足りるが、合宿の特別感を演出する意味でも大きな画面があった方がよかったかも。
  • 目標を達成するのでギリギリで、あまり時間的余裕がなかった。
    万が一重大なバグが見つかって合宿中に解決できなかったら気まずい感じになっていたかも。

Try(次回取り組みたい点)

  • アーキテクチャーに関する議論や課題解決に取り組みたい!
    規模が大きくて取り組むのを後回しにしがちなものを、集中的に向き合いたい。
  • 普段の開発ではない開発をやってみたい!
    こんな機能作ってみたとか、もくもく会ライクなものとか。
  • 開発以外の議論の時間をしっかり取りたい!
    今抱えている課題の解決策や方針を議論したり、カルチャーなどについて意見交換したり。

まとめ

Magic Moment Techチームとしては初の開発合宿でしたが、無事成功体験として終わることができました。
新参者の筆者としても、Techチームメンバーとバイキングで盛り付けの綺麗さを競い合ったり、同日程で合宿していたProductチームメンバーと露天風呂で海を見ながら語りあったりと、とても良い経験になりました。

ここだけの話、「オフィスと何が違うのか」という問いがチーム内でも挙がりました。
オフィスでも合宿でもできることにそう大差はありません。違うとしたらやはりメンタル面ではないかと思います。

  • 場所が変わることでスイッチの切り替えがしやすい。
  • ひとつの空間を全員で共有し、すべての時間をひとつの目的に注ぎ込める。
  • 同じイベントに共に参加することで得られる特別感。仲間意識。

こういったものに価値を見出せるチームであれば、合宿はよい手段のひとつになりえるでしょう。

私たちとしては、KPTのTryで挙がったように、「普段できていないことに取り組む機会」としてこれからも合宿を活用していけるのではないかと見込んでいます。
在宅やオフィスで仕事をするだけでは、どんな課題でも業務の延長のような感覚に陥り、ともすれば目先の開発タスクを優先してしまいがちです。そんな中、コンテキストを分離してしっかりと向き合う時間を作れる「合宿」という選択肢を持てるようになったことは、チームとしても大きな財産だと思います。

development-camp-2

↑↑会議室が広すぎたのでコンセントの周りに長机を寄せ集めて作業をしている図

https://www.wantedly.com/companies/magicmoment

最後に

弊社 Magic Moment では、フロントエンド・バックエンドにかかわらず全方位的にエンジニアを募集中です!Magic Momentに少しでも興味を持っていただけたら是非エントリーください!

8/30にはFindy様主催のイベントにMagic Momentから石田さんが登壇されます!
よろしければぜひご視聴ください!

さらに、こちらのイベントも8/29開催予定です!こちらはオンラインイベントです。Magic Momentの開発がどんなものか興味を持っていただいた方は是非ご参加ください!

Discussion