デブサミ2010のTDDのセッションを聞いたりもしてきて、ふとはてブ見てたら - TDD談義への反応に対する雑感(テスト駆動開発を取り巻く誤解等) - 千里霧中 -- http://d.hatena.ne.jp/goyoki/20100223/1266939139 - 最近の TDD 議論についてちゃんと僕の気持ちを書いてみる - YoshioriのBlog -- http://d.hatena.ne.jp/Yoshiori/20100224/1267015034 - Togetter(トゥギャッター) - まとめ「深夜のテストTL」 -- http://togetter.com/li/5878 -- http://togetter.com/li/6759 -- http://togetter.com/li/6923 とか出てきていた。 デブサミ2010のセッションでも、「TDDの『テスト』は品質保証(QA)を目的としていない、開発者の為のテストだ」というのを強調していた。 どうやら品質保証周りのQAと「テスト」という単語を中心に話が噛み合わないためらしい。 セッションを聞いた後に思ったのだけれど、開発者の「不安を無くすためのテスト」って、自分の場合、開発者+単体テスト&結合テスト項目洗い出し+テスト実行とほとんど一人でこなしてきた為、 ''「不安を無くす」=「単体テストレベルの細かさのテストケースを実装しないと不安を解消出来ない」'' んだよな・・・。 現場やプロジェクトにより・・・ - プログラマが「プログラミング完了!」と思えるレベルもバラバラ - 「単体 or 結合テストの設計、誰がするの?」もバラバラ - 「単体 or 結合テストってどの粒度?」もバラバラ - WEB/RIA/ネイティブGUI/バックグラウンドサービス(デーモン)/マルチスレッド/DB/通信 と、ソフトウェアの種類もバラバラ - 「このソフトウェア、要求仕様満たしてるね!」と判子を押すキーマンのポジション・力関係もバラバラ - TDDを継続する熱意を持ったプログラマが『継続してその現場に何人、何年いるか』もバラバラ TDDを取り巻く状況は、さながらバベルの塔建築中に神様の怒りをかって言葉を分断されたかのようだ。 ぜぇぇ~~~んぶ、バラバラで・・・個人的には「もうついていけませぇぇえ~~~ん」状態。 もうやりたい人がやってみる、でいいんじゃないのかな。 世界はそこまで綺麗になれないと思う。 一部の開発者にとって綺麗で魅力的でやってみたら実際楽しくて役に立つ開発手法なんだけど・・・ 周りに、進められる / 「これやりましょう!」と自信を持って周囲を引っ張っていける / 継続して推進できるほど・・・ 自分は周囲の開発者を期待してないし、何より自分自身の「本当に周りのためを思ってTDDを進めているのか?単に先進(と思われている)の開発手法を周りに見せつけて、『ほ~ら自分、こんなに勉強してるんだぞ、スゴイダロ』と自慢したいだけじゃないのか?」という部分にいつまでたっても疑問符が付いてしまう。 TDDをしなくても/知らなくても、きっちりとしたソフトウェアを開発してくれる、信頼出来る開発者は昔から居たし、自分も知っているし、実際にそうした人と仕事をしたこともある。 けっしてWEBDB PRESSを購読していたり、ITニュースを毎日チェックしたり新しい技術にすぐ飛びつくわけではない。でもプロジェクト管理やメンバーのメンタル管理含めてトータルにきっちりした仕事をする先輩も居た。 結局、自分も信じられないし世界も信じられないだけなのかも。「いや、理屈じゃTDDはすごいけど、現実はね・・・」ってそれなんていう老害? というか、TDDにしたってアジャイルにしたって、み~~~んな、「海の向こう」からだよね。 ルールは全部「海の向こう」からの輸入物。輸入されたルールの中で可能な限りもがくのって日本人らしいといえば日本人らしいよなとも。 あれでしょ?数年後、「海の向こうの○○氏」が「開発者を幸せにする○○手法」とか本出したら、今度は手放しでそれをもてはやして、Blogだのなんだのに「○○手法というのを試してみた」とかいうエントリを挙げて、「個人やWeb開発などフットワークの軽い組織でなら導入しやすくて効果を実感云々」とか書くんでしょ? Google様が、あるいはどっかのハッカーが「○○サービスを公開!」とかニュースに出てくるたびに、「○○サービスを使ってみた」とか書くんでしょ?で、実際にサービスを活かしてお金儲けするのはどっかの誰かさんで、プログラマはな~~~~んも、関係ないんでしょ? もう付き合うの、疲れたよ・・・。 自分はTDD結構好きなので、自分ではこれからもTDDを活用するけど、周りに対しての「啓蒙活動」はもういいや。Web開発の現場から今は離れてるっていうのもあるけど、ゴメン、正直、Web開発の世界は流行廃りが早すぎてついていけなくなった。 どこまでも知識を追い求めて「勉強出来る、何でも知ってるよい子」になろうとしたがるクソ真面目一辺倒の人間には、Web開発の世界は辛すぎたわ。 【追記】デブサミ2010で発表されたご本人のBlogエントリ追記。またTwitterのまとめURLも追記。 品質保証の世界とで議論が白熱しているが、逆に言えば「TDD」という火種が原因で今まであやふや・曖昧にされてきた「品質保証」や「テスト」の定義や理想などが議論されだしたので、これはこれで良いのかも知れない。自分も含めて、今まで恐ろしく無自覚に「品質」だの「テスト」だの口走っていたことがあられもなく曝された訳だwww そのクセ結局業界標準はおろか、議論に加わるような真面目な人達の間ですら了解が得られていなかった事が白日の下に曝された次第www 個人的にはTDDは好きなので、やりたい人から/やりたいチームで、ゆっくりと試行錯誤しながら広めて行ければいいんじゃないかな。xUnitなりなんなり、美味しいとこだけつまみ食い、というのも有りだと思うし。 最後に、自分としては「品質保証」とTDDに関係があったこと自体が驚きで、どちらかというと「インターフェイス/APIを早期に洗練させる」のに効果的だったかなぁと思ってます。あとはxUnitフレームワークによる自動化と、それによる回帰テストの自動化、とか。 See you again, TDD. 俺はバイナリの世界に潜るから。アデュー。