ウノウのジュンヤさんの開発合宿のTipsを見て、
来年は、私も数回開発合宿に行きそうだしメモしておこうと思いました。
ジュンヤさんのエントリをなぞりつつ、最後に過去に合宿に参加しか経験から、
ポイントを加えたいと思います。
結果のでる開発合宿をするコツ
1、机と椅子のコンビをなるべく用意する
合宿をわざわざ会社や自宅ではやらないですよね。
当然、旅館かホテル、ペンションなどを使いたいですけれど、
どこに座って開発できるか、は、合宿の成否の鍵だと思います。
椅子があれば椅子。座椅子があれば座椅子。何も無くても
せめて壁にもたれて開発したいですね。
2、できればデュアルディスプレイで開発したい
ノートPC + 液晶ディスプレイの組み合わせは何かと便利です。
モニターが2つあれば、片側にブラウザやターミナルを開きっぱなしにできるので、
Webアプリケーションの開発ではアウトプットのチューニングや
デバッグをするときにウィンドウを切り替えたり探したりする必要がありません。
ちりも積もれば、で啓発時間を削減できます。
開発が終盤になればなるほど、デュアル効果は高まります。
デュアルディスプレイを用意できないとしても、
自分で使ってシックリくる仮想デスクトップを実現してくれるソフトを
探しておいてインストールするのが良いと思います。
3、フレームワークやライブラリを活用する
当たり前のこと言うなよ的な感じはしますけれど。
汎用的なオープンソースのフレームワークを積極的に使ったり、
自社のフレームワークやライブラリを合宿前には整備しておくと、
例えば自社のメンバーとの合宿の場合には、
タスクを共同で解決しやすかったりします。
「何を、どのようにやるか」、の共通認識を持てますし。
4、食べものは少なめの量、十分な質のものを
合宿は観光地に行くけど、観光しないみたいなことが多いですよね。
そうすると気分的にうまいものを食べないとやってられないわけです。
ということで、食べ物は合宿中のストレスのはけ口だったりするんです。
泊まる場所で出てくる食事、周辺の美味しい店などのチェックをしたり、
合宿所に何を満ちこむのかを事前に検討しておくのが良いと思います。
今の時期だと、ダンボールみかんは欠かせない気分です。
ただ、お腹一杯になると開発ペースがガタ落ちですので、気をつけたいです。
5、区切りをキッチリ
合宿で需要なのは規則正しさかな、と思います。
何時からミーティング、何時からご飯、何時で今日の開発終了みたいな、
区切りをキッチリ設けることで集中力が増したり、
次の日に疲労を残さないようにできたりします。
以前4泊5日の合宿に行ったのですが、そのときは寝ることが重要でした。
6、水を沢山飲む
何を言ってるんだ?と思われるかもしれませんが、
合宿所ではソフトドリンクやお茶を沢山飲みがちです。
重要なのはノンカフェインの水分をどれだけ飲めるかだと思います。
体内に留まりやすい水分を沢山とり(1日2リットルとか)、
疲労物質をどんどん外に排出してしまいましょう。
7、生活必需品を忘れない
生活必需品なんて忘れないよ、と思われるかもしれません。
でも、ここでいう生活必需品には電源の延長コードも入ってます。
自分の生活の中で何気なく使ってるけど、
開発場所にある保障が無いものは全部もって行きましょう。
たとえば無線LANのハブとかも生活必需品ですよ。まじで。
コンビニや100円ショップを頼らないで大丈夫な状態で現地入りしたいですね。
8、何はともあれ1日1回くらいは外に出よう
合宿で重要なのは、合宿場所の敷地から1日に何回出られるか、ということ。
つまりちゃんと体を動かせているか、ということです。
行き詰ったときに外を散歩する癖などが無い人は、
朝食後や昼食時などに散歩しておきましょう。
気分転換になったりしますし、私は昼間の散歩のときに色々浮かびました。
9、ネットワークの確保
ネットワークの確保は重要です。
合宿所で使うことができるLANの品質は事前に調べましょう。
無線LAN完備!とうたっているところでも、
「ADSLすら導入してない?」と思えるほど遅い場所もありますよ。
Webアプリケーション開発なのにネットワークが細いと、
開発のペースが落ちまずし、さらに多人数でネットワークを共有するので・・。
以前参加した合宿では、10人が同時に無線LANポートにアクセスしまくりで、
ペンション備え付けのルーターが落ちまくったりしました。
最悪外側に出て行かなくても大丈夫なように、
サーバーやハブを持ち込んだり、必要なデータを事前に集めたり、とか、
そういう準備をしないとテンションが下がりまくったりします。
10、合宿に行くときは「宿泊数-1」日でサービスが完成する状態で
合宿に参加してみて分かったことは、「合宿に行って作る」よりも、
「合宿に行って完成させる」ほうがテンションも上がるし、
精神衛生もよろしいと思います。
合宿に行ってバグ取りをしたりライブラリ整備をしたり、
サービスを一から作ったり、拡張を1から始めたりすることは、
合宿の高等テクニックなんだと思います。
なぜかというと、そんなことをしつつ、気持ちよく合宿を終るには、
それなりに合宿に参加したことがないと無理な気がします。
終ったあと成果を振り返って、手ごたえみたいなものを得たいですよね。
つまり合宿は参加する前から始まっているということです。なにー。
実際に合宿中にリリースするのは、いろいろ危険ですので
家に帰って落ち着いてブラッシュアップしてリリースになるでしょうけど、
帰宅前に回りの人にコレが成果だー、と見せられると良いですねえ。
できるだけ、そうしたいものです(ぉ
11、できればローカルな開発環境をつくろう
自分のノートPCの中だけで全てを完結できる状態もあるとベスト。
coLinuxやVMwareなどを使ってローカルなLinux環境をつくったりしておくと
個人的には良いんじゃないかなと思います。
合宿所から自社サーバーの環境にログインする・・とかは、
あんまり考えないほうが良いと思います。
ネットワークが安定している保証もありませんしね。
12、アルコールは最終の夜に
合宿中は酒を飲むと足をすくわれます。
1泊2日の合宿ではアルコールをできるだけ避けたいですね。無理ですけど。
長いですね。まー、長いですけど、いろいろ大切ですよ。
個人的に10番の「宿泊数-1日でサービス完成」は特に大切にしたいです。
他にも必要なことがあると思うので、見つけるたびに追記します。
▼関連リンク
ウノウラボ Unoh Labs: 開発合宿の Tips