関西の大学生だけで開発合宿をやってみた話し

この記事は [TECH::CAMPAdventCalender2016](http://qiita.com/advent-calendar/2016/tech-camp) 10日目の記事です。

普段の業務上、関わっている大学生はプログラミングをやっていることが多いのですが、一歩引いた目線で見てみるとまあなかなかの変態ぶりだなぁと思ったりするわけです。「プログラミング」がバズワードになっても実際にやり始める人はまだまだ少ないんじゃないかなと思っていて、関西でITに敏感な大学生はしばしば東京のIT企業にインターンに行くのが王道ルートになっています。
TECH::CAMPの関西チームには20名を超えるメンバーが在籍しており、今回そんなメンバーで開発合宿を行なったのでどんな感じだったのか書いてみます。

# 開発合宿とは
そもそも開発合宿って何？という人へ。 **「温泉やリゾート地などのホテルや旅館に出向き、合宿のように寝泊りしながら集中的にソフトウェア開発をする行為のこと。」** by Wikipedia。つまるところ、「プログラミングをすることを前提とした旅行」です。概してプログラミングはいつも同じ場所でやっていると、環境を変えたくなるのです。※個人差はあリます

## 何のためにやるの？
なぜやるのか、理由を考えるとたくさん出ますが例えば以下です。

- チームの交流を深める
- 開発のためのまとまった時間を取る
- サービスのプロトタイプを作る
- 環境を変えて仕事を・・・

いろいろあるのですが、 **なぜやるのか** という点は言語化しておいた方がいいと思います。そもそも大きな出費になりますし(大学生だと特に)、目的が明確でないとダレる可能性があります。(大学生だと特に)
自分たちは「まとまった時間をとってチーム全体のレベルを向上させる」という目的で実施しました。

# 実際にやってみた

## きっかけ
開発合宿を開くのって結構大変なんです。幹事の経験がある人、あんな感じです。
場所、日程、参加者集め、お金、コンテンツなどなどかなり工数がかかります。

ただ、これらから逃げていると結局やらないんですね。。やろうやろう詐欺で終わっちゃいます。
自分たちの場合はある一人のメンバーが「開発合宿やるぞ！」と言いだし、企画から実行まで全部やっちゃいました。思い切って言ってやらざるを得ない状況を作り出すのって結構大事な気がします。

## 企画
企画段階でやったことを順番にまとめます。

### 参加人数を決める
まずはグループチャットなどで参加希望者を募ります。20人ほどいるメンバーのうち12人が参加しました。既に予定が入っている人も多かったですが意外とみんな乗り気です。業務との兼ね合いもあるので6人6人の2回に分けて実施することに！

### 予算を決める(今回は1泊2日ということ前提で)
予算をどれくらいにするのか、参加希望者の中でアンケートをとりました！2万円！とか3000円とか人によって金銭感覚も違ったりするので大変です。全員の承諾も得て、最終1万円 ~ 1万5千円の予算に決まりました！(結構高めの価格設定)

### 場所を決める
今回行ったのはここ、白浜荘。滋賀県西側、琵琶湖のほとりに位置する落ち着いた雰囲気のある旅館です。
リンク：http://www.shirahamaso.co.jp/index.htm

<img width="1440" alt="スクリーンショット 2016-12-10 10.02.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/81509/e49ec9c1-9385-3b18-b022-ab453326546b.png">

#### 場所を決める際のポイント
- 自然豊かな場所か
- 部屋(もしくは会議室)にコンセントと延長ケーブルがあるか
- wi-fiがあるか
- 温泉つきか(欲を言えば露天風呂)
- コンビニが近くにあるか

ここ白浜荘は上記5つのうち、4つを満たしていました！
コンビニだけが遠いのですが、旅館に売店と食堂が入っているので、問題ありませんでした。

気になる値段は、、
【1組目】1人あたり12,150円
【2組目】1人あたり14,550円
なんとか予算以内に納まる。上記の内容に加えて

- 1日目の夕食
- 2日目の朝食
- 会議室

がついてくるので、結構お手頃な値段だと思います。2組目が少し高いのは、同じ部屋が埋まっていてグレードアップされた部屋だからです。

とまあここまで決めるだけで時間かかりますね。。
場所を探すのは結構大変。 [Airbnb](https://www.airbnb.jp/)とか[SPACEMARKET](https://spacemarket.com/)で探すのとかいいかもしれません。

### 当日の予定を決める

イベント行事を滞りなく、かつ満足度高くやり遂げるために最も大事なのは準備なのですが、2人のメンバーが道順から時間からコンビニ情報から詳細にまとめてくれました！しかも手引きまで作ってくれて、、感謝。。

合宿の手引き

<img width="901" alt="スクリーンショット 2016-12-10 15.47.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/81509/df228c2b-8a80-d6aa-761d-04070bec7f44.png">

入念に準備してくれたおかげで自分たちは参加するだけで、何も気にすることなく参加できました。

## 合宿中

今回の合宿の目標は「slackのようなチャットアプリを作ること」にしました。各々好きなアプリを作る時間にすることもできますが、技術力を向上させることに焦点を当てたいので、予め作るものを決めておくというスタンスにしました。そうするとすっと作業に取りかかれます。

日程はこんな感じです。

| 1日目       |        |    2日目   | |
|:-----------------|------------------|------------------|------------------:|
| 12:00            |           現地集合 |9:00 - 9:30  　　　　　　　|  朝食 |
| 12:00 - 13:00    |             ランチ |9:30 - 13:00 　　　　　　　|開発 |
| 13:00 - 13:30    |    移動(バスで15分) |13:00 - 13:30 　　　　　|ランチ
| 14:00 - 19:00    |              開発 |13:30 - 18:00   　|開発
| 19:00 - 20:00    |              夕食 |18:00       　　　　　　　　　|解散
| 20:00 - 22:00    |              開発 |         |
| 22:00 - 23:00    |            お風呂 |       |
| 23:00 -          |             自由 |      |

開発時間は15時間くらいでしょうか。


疲れた時には夕日を見ながら湖岸を散歩できます。

![Slack for iOS Upload.jpg](https://qiita-image-store.s3.amazonaws.com/0/81509/73a67abb-73f0-f2fa-5847-e1e8742064b5.jpeg)

ちなみに12月ともなると寒すぎるので春とか夏過ぎがおすすめですね。


### あるといいなぁと思ったもの

#### スピーカー
自分のイヤホンで聞くのもいいですが、せっかくみんなで集まっているので耳塞がない仕様にしたいなと思いました

#### 夜食・お酒類
コンビニが近くにあればいいんですが、ない場合は宿泊所に行く前に買っておくべきです。何かとみんな夜起きてるのでお腹減ります。ちなみに白浜荘は夜になると売店閉まるので餓死するかと思いました(夕食食べたの19時)

#### 写真撮れる人もしくは撮るのが好きな人
自分たちの場合は写真に関心がなさすぎて上の夕日くらいしか撮っていないので、写真好きな人いると良さそう

# いかがでしたか？

環境を変えて、しかもみんなで作業をするとかなり捗ります。最終的には8割くらいの人が目標を達成していたので有意義な時間になりました。同じものを開発すると他の人がどういう思考をしているのかわかりやすくていいのかもしれませんね。

大学生だけで行くと部活の合宿みたいな感じになるので、おすすめです！