読者です 読者をやめる 読者になる 読者になる

Ruby合宿2012に参加してワイのワイルドワイバーンや!言うてきたでえ

島根県主催のRuby合宿2012に参加してきた.


IT企業に関心を持つ若者を対象とした4泊5日の合宿で,基礎からRubyを学び,
実際にチームでものを作る経験を通して技術習得を図るという催しであった.
また,島根県のIT企業についての情報を伝えることで,IターンやUターン就職を活発にするという意図もあった.
島根県在住または島根県出身の人を優先する,とあったが,私を含め島根県に全くゆかりがない人もずいぶんいて,
おそらく全体の4割程度に上ったのではないかと思う.
運営の方が「交通費が出ないのにどうも遠いところまで...」というようなことを仰っていたが,
それはまったくのご謙遜と言ってよく,非常に実り多い合宿であった.


以下,自分語りします.


行くまで


夏休みの経験

どうしてRuby合宿に参加することにしたのか.
思い返せばgreeのビジネスコンテストに参加したことがきっかけではなかったか.
スマートフォン上でうごくソーシャルなやつ」というテーマのもとで,
本の授受を通じて,出会うべき人と出会えるようなサービスを夢想した.
id:masa_marulimo, id:Yamakatsuと3人でアイデアを出して仕様を考えるのは本当に楽しくて,楽しかった.
しかし,審査員のご理解を得ることができず,決勝には行けなかった.
自分たちが実際に作って形にできない以上,ビジネスコンテストで敗れたアイデアは単なるアイデアに成り下がってしまった.
実行力にしか価値はない.形にしない限り,何も生まれない.私はそのことに絶望した.


Ruby学習開始

そのようなことをid:yang_yangに相談したところ,

自分で作れるようになるべき.
今からでも遅くないけど,始めるのは早いほうが絶対いい.

みたいなご助言をいただいたので,RubyRuby on Railsを同時進行で勉強することにした.
テキストはこのあたり.

Ruby 1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)

Ruby 1 はじめてのプログラミング (CD-ROM付) (プログラミング学習シリーズ)

Ruby 2 さまざまなデータとアルゴリズム (CD-ROM付) (プログラミング学習シリーズ)

Ruby 2 さまざまなデータとアルゴリズム (CD-ROM付) (プログラミング学習シリーズ)

Ruby 3 オブジェクト指向とはじめての設計 (CD-ROM付) (プログラミング学習シリーズ)

Ruby 3 オブジェクト指向とはじめての設計 (CD-ROM付) (プログラミング学習シリーズ)

RailsによるアジャイルWebアプリケーション開発 第3版

RailsによるアジャイルWebアプリケーション開発 第3版

書いてある通りにすすめるだけでamazonのようなWebアプリケーションが出来たが,
サンプルコードと作りたいものの間に大きな乖離があったし,
Rubyの文法の勉強はなかなか進まなかった.
そんな時にRuby合宿の存在をTwitterで知り,すぐに申し込みしたというわけである.


行ってから


f:id:cauchym:20120220121941j:image
松江は快晴だった


Matz講演

ほむ...となったフレーズを.

プログラムが走るのって,かわいくないか??という発想
育てた犬がお手をするようになった感じがした.

伝説級の人が現存している分野ってなかなかない
ダヴィンチにもゴッホにも会いに行けないけど,プログラミングの世界ではそれができる.

今あるものを組み合わせて世の中を変革し,みんなに自由を与える.
その報酬として万能感を感じることができる.

参加者における自分の立ち位置

参加前は,ガチムチハッカーが多数であることが予想され,私なんか...と考えていたので,
ともすれば卑屈になってしまいそうだった.
しかし,この恵まれた機会で卑屈になって良いこと何一つはないし,それだとそもそも何しに行くのかわからない.
自ら発信しなければ損だと考えなおし,自分から積極的に声をかけることができた.
人に興味を持ちづらい私でもそれくらいはできる.
同じチームの人とは開発中にいくらでも話せる,との思いからご飯の時はあえて違うチームのそばで食べる,などもした.
結果として,実のある話が出来たのか,と問われると黙って俯かざるを得ないが,
少なくとも今の自分にとっては,黙って話しかけられるのをただ待っているよりよかったと思う.
「よくわからない人」ポジションを獲得することは危険だし,
「よくわからないけどがんばってる人」ポジションを獲得することは重要である.

あと,別に「ワイのワイルドワイバーンや!!」とは言ってません.ごめんなさい.
そういう関西弁なイメージは持たれたかと思いますが.

チーム

良いゲームを作ることも,Rubyをよりよく理解することは当然重要視されていたが,
Ruby合宿で得られる経験の中で最も強調されたものが,チームでの開発であった.

私のチームでは,最終日にはみんな打ち解けて,終わってから有志で観光するレベルに仲良くなったが,
それまでは上手くいっているような,いっていないような,ふわふわした心持ちであった.
ワイルドワイバーンとかなんとか言って(言ってない)平静を装ってはいたが,冷や汗かいてばっかりだった.

振り返ると,その理由としては2点あって,

1.二日目から参加する新メンバーがいるのをわかっていて,初日にブレストしたこと

初日の空き時間を有効利用するべく,どんなゲームを作りたいのかについて
一人欠いた状態で本格的に話し合った.
自由にアイデアを出し,グループ化して抽象度を上げ,相関関係を見出す,というようにKJ法っぽいことをした.
f:id:cauchym:20120221000048j:image:w360

そのあとで,一人を迎えて話し合ったのだが,
前日に話しあったことが思考を制限してしまうのを止めることはできないし,
後から参加した人との間に,前提となってしまったものを完全に共有することはできない.
結果,チーム全員が横一線になって考えることができなくなったし,
後から参加した一人はすわり心地の悪さを感じたのではないかと思う.



2.安易にチームリーダーを変更したこと
運営から各チームに対し,リーダーとサブリーダーが指名されていた.
事前のアンケートをもとに適性をみて,割り振ってくださったのだろう.

しかし,この指名は特に根拠があるものではなかった.
自己紹介の段階で,メンバーの一人があるプログラミングコンテストで最優秀賞を取ったことが判明し,
このときリーダーの役割を安易に彼に変更してしまった.
Rubyでのゲーム開発に最も詳しい人がリーダーをするべきだというのは,
至極真っ当な意見に思えた.

しかし,彼は場を仕切って話を進めたり,リーダーとしての決断を求められることを嫌がった.
それもそのはずで,私たちからのリーダーとしての指名には強制力がないのだ.
運営からの指名には根拠はないが,自分たちの預かり知る所ではない指名だと言う点で強制力がある.
強制力というのは,各人が納得して自分の形式的な役割を全うできるかどうかに大きく関わる.
というよりも,出会ったばかりなのだし,強制でもされない限り形式的な役割になんて適応できるはずがないのだ.
私はこの問題を抜本的に解決するためには何もできなかった.
意見をみんなで出すのはもちろんのこと,話を進めるのもみんなで行うという,従属的な方法を取らざるを得なかった.

と,反省のようなものをぶちあげてはみたものの,
掛け値なしに濃いメンバーで,楽しく開発が出来たと思う.
あーでもないこーでもないと言いながらnetを実装したり,バグにヒーヒーいったり.
デザインもいちいち楽しかったし,目指すゆるい雰囲気を共有できたのも嬉しかった.
最後に一人また一人と別れるのが残念で仕方なかった.
また会いましょう!!!


f:id:cauchym:20120223110207j:image:w360
(会いましょう)


ウロボロス

島根に行く一週間前には,友人に
「世界に数多ある人間関係のすべては,見下してマイナス評価を付け合うという環構造に他ならない!ドヤッ」
というような話をして,本気でそんなエントリを書こうとしていたが,
不思議と一秒もそのようなことを感じなかった.いや不思議だ.
匿名性や流動性が鍵なのではないかと考えている.


ググれと言われなかった

講師,アドバイザーの野坂さん,高尾さん(id:kouji0625),西田さん,雲島さんには感謝してもしきれない.
そういえばグローバル変数ってあったなあ...便利ですね...というレベルの私のやりたいこと
を尊重してくださって,なんとか実現にこぎつけることができた.
彼らは4泊5日という長い期間,コミットしてくださり,初心者オブ初心者ズの質問に対してググれ,と一度も仰らなかった.
熱い思いの証左である.


これから


以上のようなことをRuby合宿に参加して考えた.
これからは1人で,制限の全く無い中で物を作らないといけない.すごく楽しみだ.




その他


バージョン管理

バージョン管理の重要さは骨身に染みた.
限られたリソースをgitの習得に費やしていていいわけがない,との判断から,
採用しなかったが,おかげで,今dropboxに上がったと思ったら上がってなくて...みたいなことで何度もヒーヒーになった.
git使えるようになりたい.

自分が使いたいものを作るという人

自分が使いたいものを作るという人がいて,確かにそれが最も根源的な欲求かもなと思った.
私には「自分」がないのかなあという気がした.

やはり私は承認欲求の犬だワン.