コーディング道場・コーディングの型

本日は仕事を早めに切り上げて、BayXP月例会に参加。今回はコーディング道場・コーディング型(カタ)。柔道や剣道での型のこと。[*1]
やることは簡単で、ある御題目をテスト駆動型開発していく。当然、ペアプログラミング。ただし、開発端末は1台のみ。これをプロジェクタに接続し、生徒達全員が状況を見られるようにする。そして、ペアプログラミングの片割れは5分経過したら交代。

参加者は15人いたので、ざっと1時間半もあれば一回りする。開発したのはOld Timersには懐かしの「/usr/games/animals」。これを「テスト記述」→「そのテストをパスするコード記述」→「必要ならテスト追加、もしくはリファクタリング」→...という「TDDマントラ」で開発していく。

子供が通う道場と同じで、内容はお遊びのようなもの。少くとも、仕事場で目にするような題材ではなく、実用性には欠けるプログラムを書くことになるが、大事なのは「基本の徹底」。テストコードを書き、それをパスするコードを書く。無駄をみつけたら、すぐにリファクタリングする。こういった流れを人の前で見せる、あるいは人のやっているのを見る。

実に単純なことだけど、TDDの学習としては非常によくできている。「教えることは最高の学習である」という格言があるけど、まさにその通りだと思った。会議室にプロジェクタとパソコンがあれば、すぐにでもできる訓練方法。企業や学校の中での研修に向いているのでは?

ちなみに集まったのは15人。

  • 若い人もいたけど、主力は30-40代。こういうおっさん世代が、バリバリとTDDしていく様子は日本では想像ができない。
  • 人種はいろいろ。白人がマイノリティなのはシリコンバレーでは当然のこと。まともな英語を話す人のほうが少かった。それでもコミュニケーションはとれてしまう。
  • 会場はAutoTradeCenter.comが提供してくれた会議室。当然、同社はAgile開発。

アメリカのソフトウェア産業はオフショア移転して死んだなんて話があるそうだけど、実態は違う。そりゃ、どうしようもなく付加価値のない開発はインドやら中国に投げちゃったし、その程度の仕事しかできない人達は職を失なった。でも、スピードが重要視される分野では、顧客の足元での素早いソフトウェア開発が求められ、そこにはAgile開発が当然のように普及しつつある。

*1:Agileソフトウェア開発は日本の製造業を手本としている。なので、あちこちで日本語がそのまま使われる。Coding Dojoとか、Code Kataとか。