Global Day of Coderetreat in Fukuokaに参加してきた

12月8日(土)に行われた「Global Day of Coderetreat in Fukuoka(以下GDCR)」というイベントに参加してきました。
このイベントはプログラマペアプログラミング形式でプログラミング、設計、テストの手法を学ぶという趣旨で行われているものです。この日(12月8日)はGlobal Dayということで世界各地一斉にCoderetreatが行われました。(日本では他に東京、大阪、松山にて開催された)

このイベントの特徴としては、

  • 朝から晩まで「ライフゲーム(Conway's Game of Life)」の実装に取り組む。
  • 1日に6回(実装時間45分、フィードバックタイム15分、計1時間)のセッションがある。
  • ペアプログラミング形式で行う。
  • セッションごとにペアは変わる。また、ペアを変える際は前のセッションで作成したコードは破棄しなければならない。
  • 開発言語はオブジェクト指向のプログラミングが可能なものであればなんでも良い。(今回の会場だとJavaを使った人が一番多かったようです、他にC#RubyPHPも)→実装で使う言語についてはペアで相談して決める

などが挙げられます。

今回のプログラム実装においては通常とは異なり、「意図した通りに動作するか」を確かめるためのテスト用のコードを先に記述し、実際のプログラムはテスト用コードが動作するように実装する、テスト用コードについても簡単なものから記述し、徐々に要求する内容を高度にしていく、という感じで極力シンプルなコードになるよう実装するという手法を採用していました。通常のプログラミングとは真逆のやり方ともいえるもので、「Test First」と呼ばれます。

言語は6回中5回のセッションでJavaを使い、1回だけRubyを使いました。せっかくなのでRuby勉強してみたいなぁ…と思いましたがまだ手を付けられていません。あと今回は結構IDE(EclipseNetBeans)の力を借りる場面が多く、IDEもそれなりに使えるようにしたいなぁ…と思った今日この頃です。

実装時間が45分ということで、気がついたらもうこれだけしか時間がない、ということが多々有りました… そして実装時間が終わった後のフィードバックタイムでは、付箋に書き込む形で良かった点、改善が必要だと思われる点、その他感想などを書き込み、参加者全員が見られるようホワイトボード(的なもの)に各セッションごとに貼り付けました。他の参加者のコメントを見てみると結構興味深いなぁ…と思うものが多数ありました。(写真は撮ってません…すみませんm(_ _)m)

そんなこんなで6回のセッションをこなしていったわけですが、正直なところペアの方に頼りきりな場面が多く、事前準備をある程度はやっておくべきだったなぁ…と感じています。最後の全体の振り返りでは

  • 今日学んだこと
  • びっくりしたこと
  • 月曜日以降ここで得たものを(業務などで)どう活かすか

という3つの質問に答える形で振り返りを行いました。私は「今入っているサークルでプログラミングをする機会があるので、ここでの経験が生かせたらいいな」という旨の回答をしました。

今回このGDCRに参加してみて、周りの参加者のレベルの高さを感じつつ学校の講義ではプログラミングのテストの方法を学ぶ機会はないと思うので、実践形式で学ぶこのイベントは大変有意義なものでした。来年も福岡で行われるかわかりませんが、もし行われるならまた参加したいです。

最後に、今回ペアを快く引き受けて頂いた参加者の皆さん、及びGDCRという機会を提供して下さった株式会社ハウインターナショナルの皆様には心より感謝申し上げます。