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の会場を借りて、かつ参加者には無料で提供してくれる。このような場を提供して、技術者のネットワークを作っていこうよ、みんなの記憶の残る人になろうよ、と言う姿勢に共感しました。体調が悪かったので、懇親会には参加できませんでしたが、こういう熱い人に触れられたのが、一番の収穫だったかも。