9月『技術ひろば.net』に参加してきました。

http://hiroba-tech.net/tabid/70/Default.aspx

会場は、新宿のマイクロソフト。この前のアジャイルのときにも思ったけど、こういうところにオフィスがあるのはうらやましい。
ぼくの場合、

  • 鉄道大好き
  • 高いところ大好き

な人間なので、新宿の高層ビル街と言うのはすごく合ってる。

今の会社も9Fと高めではあるのだが、テツ成分が全くないのと、せいぜい東京タワーぐらいしか見るもんがないので、つまらない。
でも、地形好きにはいいかもしれない。何たって江戸前なので『ここの広場は怪しいな。昔、川だったのに違いない。』とか、どうでもいいタイムスリップができる。

着いたら、かなりのアウェー感を感じてしまった。まず、

  • Macはぼく一人だけっぽかったこと。
  • .NETほとんど知らないっす。
  • 開発環境がEclipseではなく、Visual Studio
  • C#(全く知らん)

と言う感じ。

技術ひろば.netの『.net』の意味がようやくわかりましたよ〜。

テスト駆動開発〜基礎のキソ」by せおさん

ぼくはこれがメイン。ぼくにとって、テストは堪え難いほど嫌いな作業なので、それを少しでも楽しいものにしたい。と言うことで、テストを後回しにするのではなく、開発の初期に組み込んでしまえば、嫌悪感が少しでもなくなるのではないか、と思って参加した。

内容は、TDDの基礎知識とVisual Studioでの実践方法。

今まで、TDDをやる上で、一番障害になってたのは、開発のスピード感がないこと。もちろん、トータルの開発期間で見ると、従来のやり方よりも開発速度は速くなると思うのだが、開発の1段階では、テストコードを書かないと行けないので、どうしても開発の速度が鈍って見える。そして、やっている本人からも、もっと機能を実装したいのに、テストを書かないといけない、と言うことで、じれったさを感じてしまう。

この誘惑を抑えるにはどうすればいいのだろう? メリットを訴え続けるしかないのだろうか?

ふと、自分の仕事を考えた時に、LSI業界ではTDDは当たり前にやられている。
大学のとき(今から、9年ほど前かな)、某社にインターンに行かせてもらったことがあるのだが、そのときの開発スタイルがTDDだった。まず、仕様書があって、仕様書を検証するためのビヘイビアモデルを作った。このビヘイビアモデルを使って、テストコードとテストパターン、期待値を作った後に、RTLモデルを作った。

ソフトウェア開発のTDDとは異なる部分は多いものの、思想はほぼTDDと重なる。結局、開発規模が大きくて、かつ失敗が許されない現場では(作った後にLSIのバグが見つかると、致命的ですからね)、当たり前の手法かもしれない。TDDを成功させるための秘訣は、実は身内にあったのではないか、と思いました。

最後に

主催者の瀬尾さんの思いが素敵だった。個人でありながら、MSの会場を借りて、かつ参加者には無料で提供してくれる。このような場を提供して、技術者のネットワークを作っていこうよ、みんなの記憶の残る人になろうよ、と言う姿勢に共感しました。体調が悪かったので、懇親会には参加できませんでしたが、こういう熱い人に触れられたのが、一番の収穫だったかも。