オールアバウトTech Blog

株式会社オールアバウトのエンジニアブログです。

第1回 開発合宿@伊東に行ってきました

f:id:allabout-techblog:20160722095433j:plain

こんにちは!オールアバウトの@C058です。
7/9(土)-7/10(日)にかけて行った開発合宿に行ってきました!

開発合宿に参加したメンバーは私含め12名。
「合宿目標を明確にする」「2人1組チームを編成する」「事前準備をしっかりする」という3つを意識したところ、
初の開発合宿は無事成功となりました。
今回は、予想以上に良い結果となった開発合宿の様子と成果・まとめを書きます。

開発合宿の目標

初の開発合宿では、合宿実施前に3つの目標を立てました。
この目標にしたがって各自テーマを決めて合宿に参加しています。

課題を見つけてアウトプット

あったら便利なツールの作成、気になってるけど業務で時間は割けないことに挑戦してみる。
いつかは時間をとって作業したい・解決したいを実現する時間にする。

通常業務では使わない技術に(も)トライ

業務に取り入れるまでは、まだいかないけど試してみたいツールや技術を試す時間にする。
スキルアップのために集中してコードを書く・新しい技術に触れる。

チームビルディング

日頃業務で関わることのないメンバーと交流する。
新卒3名を迎え開発チームも増えたのでお互いのことを知る。

開発合宿での成果物

出来上がったプロダクト

以下の様なツールや取り組みをすることができました。

  • Qiitaチームのデータ可視化
  • LineBotで自社サービスの拡張
  • SlackBotで電車遅延や、会議室のスケジュール管理
  • Raspberry Piを利用したIoT
  • 機械学習で記事本文にあった画像を推薦するエンジンの作成
  • Go言語に挑戦

社内で使えるツールやあったら便利なBotの作成だけではなく、Go言語に挑戦したり
機械学習に挑戦するチームなどがおり成果の形は違えど大収穫でした。
(合宿終了後もまだ開発を続けているチームもいるようです。)

合宿中に使った技術

言語・環境などなど各チーム様々な技術を試すことが出来ました。 合宿中に使った・試した技術の一例は以下のとおりです。 f:id:allabout-techblog:20160719221359p:plain

夏のノルマ達成(?)

合宿の間はメリハリを付けて楽しむことができました。
思う存分コードを書くだけで終わらず、美味しいご飯を食べ、
夜は皆で花火をしに海岸へ行くなど 遊びも忘れませんでした。

終始笑顔の絶えない時間で日頃、業務ではあまり関わらないメンバーとも打ち解けることが出来たと思います。

合宿の様子について

合宿先

今回の宿は 静岡県伊東の山喜旅館さんに決めました。 www.ito-yamaki.jp

選んだ理由は以下のとおりです。

  • 東京から程よく近い(新幹線を使えば1時間半で到着)
  • 開発合宿プランで他社様の利用実績がある
  • 温泉が24時間入り放題!

当日の様子 

1日目

旅館到着

f:id:allabout-techblog:20160719141651j:plain 1日目はあいにくの雨でしたが、屋内でコードを書く合宿には関係ありませんでした。 山喜旅館に到着してわくわくしながらチェックインをし 会議室へ向かいます。

開発

f:id:allabout-techblog:20160719141807j:plain 第1会議室を借りてチームごとに座り、作業スタート。 ちょっと机のレイアウトが会議っぽいです。

f:id:allabout-techblog:20160719222644j:plain ひたすらモクモクとチームごとに作業を進めます。

夕食

f:id:allabout-techblog:20160719142111j:plain 夕食はみんなで揃って食べました。美味しかったです。 ちょっとお酒を飲みながら1日目の進捗について共有しました。

チームビルディングを兼ねて花火

f:id:allabout-techblog:20160719222421j:plain 夜は近くのオレンジビーチで花火をしました。 一足先に夏を楽しめたと思います。

2日目

昼食を食べながらも実装

f:id:allabout-techblog:20160719142729j:plain 午後からのLT会にむけて外に出て食事をする時間も惜しかったため、
お弁当を食べながら作業を続けました。

LT会

f:id:allabout-techblog:20160719143108j:plain 午後は 各チーム10分ずつLTをしました。

f:id:allabout-techblog:20160719223042j:plain 合宿中の成果をプロジェクタを使い全員に発表します。

f:id:allabout-techblog:20160719222817j:plain 今回試した技術の共有もしました。

最後は近くのビーチでジャンプ

f:id:allabout-techblog:20160721130840j:plain 合宿終了後、合宿の成功と達成感を抑えきれなかったシーン。
近くのビーチで遊んでから東京へ帰りました。

開発合宿のノウハウ

開発合宿を進めていくことで以下の3つのノウハウが得られました。

開発合宿は目標を決める

初めての開発合宿を失敗させないために目標を立てました。
合宿をとりあえずやってみた(成果物ナシ)という結果にしないためです。

冒頭に触れた3点を合宿の目標として共有し、合宿を行ったことで
各自が『1泊2日で何をするか』を意識して取り組めました。

2名1チーム編成にする

今回の合宿は新卒エンジニアもいたため、合宿中に相談・スキルアップ出来るように2名1組のチームを編成することにしました。
参加希望を取る際に試したい技術やテーマを書いてもらい、その情報を元に新卒と先輩エンジニアを組み合わせたチームを作りました。
興味関心の近い組み合わせ効果もあり、事前準備の段階から協力し、チームごとの目標設定や環境構築が出来たと思います。
あわせてチームビルディングも進み一石二鳥でした。

事前準備をしっかりする

他社様の事例や過去に開発合宿経験者の話によれば「事前準備ができるか」が合宿成功の鍵のようでした。
そのため今回は、合宿へ行く2週間前にキックオフを行い、各チームで準備を進めてもらいました。
(一部チームは相当の気合が入り、キックオフ翌日から毎日終業後に会議室で準備を行っていたようです。)

事前準備期間をしっかり取っていたことで、合宿当日は開発環境の構築トラブルや
誰が何をする?などの混乱もなく、集中してコードを書くことが出来ました。

まとめ

初の開発合宿は無事成功しました。
次回以降も開発合宿を成功させるために開発合宿運営チームでKPTを行いました。

Keep

  • 事前開発期間があったため当日になってから焦るということが無かった
  • 強制的にコード書く/実装しないといけない雰囲気・環境がよかった
  • 旅館のどの場所でも開発できるが良かった
  • 集中してモノづくりすることができた
  • 業務であまり関わりがない人とチームを組めた
  • 1泊2日の共同生活でメンバーとコミュニケーションをとれた

Problem

  • 運営担当が各チームの途中経過を把握できていなかった(開発時間・LT資料作成全て各チーム任せ)
  • 1日目の開発時間が足りなかった(早々に飲み始めてしまった人がいた)
  • 1泊2日では期間が短く大規模なチャレンジは出来なかった
  • もう少し大きめのものを開発したい(bot開発は小規模だった)
  • 最後のLTのネタの粒度が揃っていなかった(最低限試した技術は書いて欲しい)

Try

  • 2泊3日で開発合宿をしたい
  • 積読消化合宿に挑戦
  • 技術面での成長面を考慮した最低限のルールを作る(1つは新しい技術と試してみる)
  • 1チームの人数を増やして開発(3名1チーム制)
  • LT会の資料準備時間をスケジュールに組み込む
  • LT会後に参加メンバーの投票で優秀チーム決めて表彰したい