これ僕.com:行動分析学マニアがおくる行動戦略

意図と行動のギャップから生じる「不自由さ」への挑戦。果たして僕たちに自由はあるのか?

XP祭り2006 あは体験レポート「ワールドパブにて」

イベントの懇親会参加は2回目。
食べ物・飲み物が持ち込みというのが
ちょっと不安だったけど、
意外に上手くいくもんだなー。
でも、最初に行ったスーパーに
酒がなかったのには参った。


さて。
ではリラックスして話した重要なことを。

詳細設計書を書くのは、同じことを2度書くようなもの

なんと角谷さんの話が聞けたのだ!
ドキュメントについて質問されてる方が居たので便乗。
聞いたのは「詳細設計書って作らないんですか?」。
作らない、とのこと。
詳細設計書を書いて、コードも書くのは、
同じことを2度書いているようなもの。
だったらいきなりコードを書いた方が良い、と。


コードを書く前に決めるのはテスト仕様。
モジュールのインプットとアウトプットを事前に決めて、
それに沿ってコーディングしていく。
Test Drivenだなー。
いいなー。


が。
確かに、と思いつつも、
ある程度の人数(10人とか)になり、かつ、
詳細設計ができるレベルに満たない要員が多い場合、
ちっとばかし厳しいよなぁ・・・と。
プログラムの作りがまずくなったり、
似たような機能なのに作りに統一感がなかったりとか、
そもそもプログラムが全然出来てこないとか・・・。
ううむ、なんだか「ORの抑圧」に負けてる気がしてきた。
もっと創造力を働かせよう。

白状します

ええと、白状します。
和室に移動した時に和田(id:t-wada)さんを発見して、
テーブルの雰囲気を読めずに侵入してきたのは私です(滝汗
失礼しました。
快く受け入れて頂いた和田さんと稲尾さんに感謝。

テスト資産の運用

で。
どうしても聞いてみたかった
テスト資産の運用について質問を投げてみた。
私の最近の悩みは、

ちょっとしたリファクタリングや変更で
テストがいっぱい赤くなることがある。
当然、緑にするんだけど、
テストを修正すること自体が目的になってて、
なんだか違うなー、と感じることが多い、

というもの。
生産的じゃない気がするんですよね。


以下は、その時に和田さんにお話頂いたことを、
あとで私なりに解釈したものです。
(メモを持ち歩いてなかったのが悔やまれる)


実装に依存しすぎたテストは、
リファクタリングしただけで赤くなる。
これはテスト資産としての価値が低い。
本来、テストしたいのは「実装(How)」ではなく、
「機能/仕様(What)」である。
そのテストクラスがテストしているものは、
テスト対象として本質的ではないのだ。


テストコードには「What」を、
というのが前に出てきたが、
つまり資産価値の低いテストには
WhatではなくHowを書いているのである。


資産価値の低いテストは、
リファクタリングして赤くなった時に
削除することを検討するといい。
但し、削除したとしても、
そのテストクラスが担っていた部分のテストは、
他のテスト(例えば機能テスト)によって、
代替されなくてはならない。


そうすると、その代替したテストは、
「代替」として妥当なのかという話が出てくる。
元のテストが担っていたテストの役割と、
代替するテストが担う役割は、
等価なものか判断しなくてはならない。
その指標として、カバレッジ率はどうか?
という話も出たが、この辺りは今後の課題。

カバレッジ

その後、ちょっとカバレッジ率の話へ。
普通にテストコードを書いていれば
85%程度のカバレッジ率は達成できる。
そこから100%を目指すのは、
実はあまり意味がないのでは?
少なくとも、それはプロジェクトを
前に進めるという点において
貢献してくれるものではない。
んー、なるほど。

聞いたことある人達ばかり

ふと気づくと周りに人が増えていた。
よくよく見ると、
名前と顔を知ってる有名人がいっぱい。
んー、すごいとこにいるなぁ、と思ふ次第。
酔ってるせいか、あまり緊張せずにすんだ。
酒の力は偉大だ(ぉ
そしてこれを書いている今も酔っぱらい。
ええ、酒の勢いで書いてますとも。


何はともあれ、楽しく有意義な時間を過ごせました。
話して頂いた皆様、ありがとうございました。


以上でXP祭り2006 あは体験レポートは終了でございます。