アプリケーション開発サークルが行った開発合宿の話

この記事は [早稲田大学Adventcalendar](http://qiita.com/advent-calendar/2016/waseda) の4日目の記事です。

早稲田大学アプリケーション開発サークルA+plusのエンジニアの @taiyo です。
今回は弊サークルが開発合宿を行った話をします。

## TL;DR
* A+plusで開発合宿を行った。
* 開発合宿前に決めてよかったこと
    * 目標
    * やること
    * 進め方
* 成果をしっかり出せた。(まだ途中のもある)
* 合宿を通じて古いメンバーと新しいメンバーの温度感の差を埋められて、チーム感が出てきた。
* 組織の状況や合宿の背景を鑑みながらやり方を変えていくとよさそう。
    * いろんなやり方があるが、今回とったメンター制はサークルの状況に合っていてよかった。



## A+plusとは
詳しくは[こちら](https://ei-plus.com/about)を御覧ください。


## 開発合宿を敢行することになったきっかけ
お陰様で多くの早稲田生にA+plusを認知頂き、
利用人数が増えるにつれてサークルの人数も増えてきました。

結成からもうすぐ1年となる今年の春、
**週一の活動とリモートでの活動の繰り返しが単調になってきた**こともあり、

**「もっとサークルっぽいことしようぜ？」**

という話になったのが、開発合宿を敢行することになったきっかけでした。

## サークルっぽいこと？
案として出たのは、どこのサークルでもやっているであろう、**「夏合宿」**です。
**うん、とてもサークルっぽくてよい。**

そして、開発サークルなんだから**開発合宿**がいいんじゃないか。
うん、そうしよう。とトントン拍子で実施することが決まりました。

さあやるぞ！
## まずは宿探し
開発合宿ということで、Wi-Fiと電源が完備されていることは必須事項です。
そして、あくまでサークルっぽく、ということなので、
多数のサークルが利用している(と聞く)サークルの合宿プランなどを組んでいる某代理店様に、
それらの条件を提示させて頂いた上でお願いをすることにしました。

最終的に決まった宿は、[筑波グランドホテル](http://tsukuba-grandhotel.co.jp/)さんでした。
決め手は、（他の候補と比べての）**料金の安さ**と**東京からのアクセスのしやすさ**です。
離れすぎたところにしまうと移動だけで疲れてしまう&移動費がかさむので、あまりオススメできません。


## 次に合宿の内容だ
###  目標
今回は開発合宿ということですが、
目的や目標もないままでは、着地点が不明瞭になり、
人によってモチベーションに差が出てしまうので、
全体として以下の目標を設定しました。

* **エンジニアとして成果を出すこと**
* **プログラミング初学者のレベルアップ**

A+plusの、「会うのは週一でリモート作業がメイン」という活動だと、
初学者の方のキャッチアップに時間がかかりすぎてしまい、
初学者のモチベーション維持の障壁となってしまっていることを感じたので
**この開発合宿で一気にレベルアップして開発のメインストリームに乗ろう！**
ということで定めました。

しかし、２泊3日で成果出るのか、2泊3日でレベルアップできるのだろうか。
不安はありましたがやってみるしかない！アウトプット！

### 開発の進め方と内容
設定した目標を達成するためにも、合宿中の開発の進め方や取り組む内容は
事前に参加者で相談して決めてから臨みました。

#### **エンジニアとして成果を出すこと**
成果の定義が曖昧だったので、取り組む内容を先に決めました。
取り組む内容の種類は大別して2つあって、

* (一応定めていた)開発ロードマップ上にある機能の開発
* 開発ロードマップ上にない機能(でもあるとよさそうな機能)の開発

結論からいうと私たちは後者を選択し、それをリリースすることを成果としました。
なぜそうしたかというと、以降に記述するように、
初学者メインで開発していってもらうことにしたからです。

ロードマップに乗せている実装は大きめなものが多いので、あえて今回は開発内容から外しました。

#### **プログラミング初学者のレベルアップ**
これを達成するためには、開発の進め方を工夫しなければなりません。

今回の参加者の中には、「ある程度自走して書ける人」と「プログラミング初学者」がほぼ同数いたので、
前者と後者を1対1のペアにした**メンター制**をとって進めていくことにしました。

1ペアに課題として事前に決めた「1機能の実装」が与えられ、
 「プログラミング初学者」がメインで実装します。
わからないところがあれば、メンターに聞くという形です。
メンターは、ペアの開発を支えることをメインとし、
ペアの人にはどんどんコードを書いて成長してもらいます :muscle: 

よし、とりあえず目標と取り組む内容、進め方が決まったぞ！行くぞ！

## そして合宿へ
都心から電車とバスを乗り継いで2時間半前後で着きました。
ホテル内の会議室を2日間貸し切らせて頂きました、ありがとうございました :pray: 
![akebono.jpeg](https://qiita-image-store.s3.amazonaws.com/0/95646/1f7b25f9-e86c-2c17-6118-0b2d4558348a.jpeg)

外はきれいな自然で溢れていて、開放的でした。
（台風前夜だったため、雲行きは超怪し目です）
![IMG_1205.JPG](https://qiita-image-store.s3.amazonaws.com/0/95646/f2ebda95-a75f-d9b8-36c1-648eb8fc9136.jpeg)


残念ながら開発中の写真を誰も撮っていませんでした。。。次回から撮るように心がけます汗

1日目と2日目は9時〜19時頃まで、3日目は~12時まで作業の時間を取りました。

## 合宿を終えて
### 成果
開発合宿の開発内容で、現在リリース出来ているのは以下の2つです。

* [webアプリトップ](https://ei-plus.com/)のデザイン刷新
* iOSアプリのチュートリアル実装
* iOSアプリトップで新着レビュー表示部分をスクロール操作できるようにした

合宿内でのリリースとはなりませんでしたが、合宿成果がしっかり出たことはめでたい :tada: 
お疲れ様でした！
まだ出ていない機能もありますが、担当者が鋭意開発中ですので期待してお待ち下さい！

### サークルとして
今回、全体として初学者の人たちをメインにしたメンター制で開発を行うやり方にしたのは、
以下の点でよかったのではないかと感じました。

* 元々、自走できるエンジニアと初学者(新しく入った人)との間に若干の温度差があり、横の繋がりが希薄だったのを解消でき、チーム感が出てきた
* リリースできたものはまだ3つだが、確実に初学者のみんながレベルアップできた

そもそも普段の活動の仕方から変えていく必要もありますが、
合宿というイベントを通して、サークルとしてもチームとしても、
かなりポジティブな成果を得られたと感じています。

そして何より、丸一日、何にもとらわれず開発に時間を充てられるということに**尊さ**を感じました。
ちなみに、それもあってか、お酒は3日間で一滴も飲んでいません笑
全員が真剣に作業に取り組んでいました。

### 課題
前述しましたが、今回の合宿を通して、
普段の活動の中にも、新しく入った人のOnBoardingや育成に関して
改善していく余地があることがよりハッキリと分かりました。

A+plusというプロダクトとしても、チームとしても規模が大きくなってきており、
それに伴って運営の仕方を変えなければいけないことは明白なので、
考えて実行していきます。

### 次回以降
合宿はこれからもやっていきたいです。
ただし、今回はこのやり方でよかったですが、
次回は今回と同じやり方ではうまくいかないかもしれません。
その時の状況に応じて開発合宿の内容を最適なものにできるようにもしていきます。

A+plus全体でクラウドサービスの利用を積極的に行っているので、
次回以降は、今話題の[Airbnb](https://www.airbnb.jp/)さんや[スペースマーケット](https://spacemarket.com/)さんを利用してみようか、など画策しております。

今後もやっていくぞ٩( 'ω' )و 
ここまでご覧頂きましてありがとうございました！
引き続きこの後の 早稲田大学AdventCalendar をお楽しみください！(๑•̀ㅂ•́)و✧