第一回チキチキ日本ペアプログラミングの会java-ja支部
行ってきました。java-ja。初参加です。懇親会で自己紹介の時に今月のPlugin勉強会をつぶした張本人*1で、最近NetBeansでRuby使ってSWTアプリを書いているkompiroです。どんだけMなんだよって言われましたが、楽しかった。java-jaはアウェイなのかホームなのかと聞かれてどっちなんだろうと小一時間考えましたが、そういう難しいことはよくわかんねー、と思いました。*2
珍しくじゃんけんに勝ち続けられたのでid:t-wadaさんとペアプロできました。せっかくなのでペアチェンジを知らせるイベントタイマーを作りたいと申し出たら快く引き受けてくださり、短い時間のなかあーだこーだやっていました。結果的に出来上がってきたものは、シンプルなクラスになりました。ペアプロは普段からやってますが、解法の分からないものを相談しあいながら作るのにいい方法だと思います。逆に明確な解法が分かっている場合は無理にペアを組まなくてもいいんじゃないかと思っています。解法が明確に分かっている場合は片方が常にドライバになってしまって、リズムに乗りにくくなります。そうなると一人でソースを組んでいるほうがリズムに乗りやすくなってしまうのです。確かにタイポなどのミスは減りますけれども。これはあくまで自分の所感です。タイポはなるだけ減らすべき!ならばずっとペアで作業でもいいと思います。
TDDも一つの解法であり、このやり方でなきゃだめって思うのは違うと思うのです。TDDは確かにいい方法です。が、引き出しの一つくらいにしておいたほうがバランスが取れると思います。「かなづちを持ったら何でも釘に見える」というのはよろしくないでしょう?何でもかんでもTDDをやろうというのは釘に見えるのと同じになってしまうんではないでしょうか。TDDはテストからコードを書くことでクラスのインターフェースを切り出していきます。が、UMLを使ってモデリングをしたい派からすると、その作業は冗長なんですよね…。たぶん今回id:t-wadaさんとのペアプロで出来上がったコードは、モデリングじゃ絶対作れない自信が僕にはありますが。モデリングはモデリングで、実装を意識しなさ過ぎると動かない設計になっちゃうじゃないですか。その辺りは当人の実力なのかもしれませんが。
プログラマの道具箱にはUMLもペアプロもTDDも入りますが、チームのメンバーによって使い分ける必要があるんじゃないでしょうか。要するにメンバーが気持ちよく使える道具を使っていこうぜ!なんす。
なんてかたくまとめをしてみましたが、僕自身結構ゆるゆるなんで、java-jaのみなさまよろしくです。後半ペアを組んだイヌビームさん、Ruby教えてくださってありがとう。yamashiroさん幹事お疲れです。id:yoshioriさんJAVAはモテっすね。*3
ところで蟹なし北海道で7000Overってないよ。すげー飲み食った。*4