TDDと黄金の回転
前述のきれいなコードへ至る道とTDDのサイクルをマッピングしたものがこの図です。
「回転が力をもたらします。リファクタリングが特に重要です。きれいな方向にもっていけるのはリファクタリングだけです」と力強く述べていました。
TDDのこころ
TDDのこころとして、7つの項目が掲げられました。以下抜粋します。
1つずつ、少しずつ
細かく区切ることが大事です。プログラムに限らない話です。タスクを分割するというのは仕事術の一種です。
1人ずつ仕留める
一体多という状態を一対一の連続にしてしまいましょう。
テストをすばやくまわす
テストは速ければ速いほうがよいです。分単位でまわせるようになりましょう
自分が最初のユーザー
利用者側の視点ではじめることができます。本当に必要かどうかという視点から考え、気づくことができる様になります。
道具にこだわる
コードを書く効率も大事になっていきます。コードを書くスピードを自分の思考速度に近づけていきましょう。
不安をテストに
どこをテストするのか? 何をテストすべきか? ということに対してテスト駆動開発が言っているのは不安を感じることをテストにするということです。不安に思っていないところはテストしなくても、後でテストしてもよいものです。テストには濃淡があってもよいのです。自分の不安を解消するためにテストを書いています。足りないテストは、チームでペアプロやったり、別の視点の手法で補強したりしましょう。
祈るのではダメ
テストが一行も書かれておらず、修正したら祈るような状態ではダメです。そんなときはテストが命綱になります。緊急時に命綱を編むのようではダメです。日々こつこつテストを書いていきましょう。いざというとき、テストがセーフティネットになってくれます。
なぜTDDをするのか?
「私たちは完璧なプログラマではありません。最初から思い通りにコードをかけるほど、賢くありません。最初から思い通りに動作するほど、対象は単純ではないです。だからこそTDDによって素早く対象に近づき、フィードバックを得て方向修正しながら開発を行う必要があるのです。テストは目的ではなく、手段なのです」と語りました。
和田さん自身が感じるTDDのメリットは、定量的な成果などいろいろありますが、最大の理由はそういった工学的なものではなく、プログラマの心理的なものなのだそうです。即座にフィードバックを得るため、自分が書いたコードに自信を持つため、これから書くコードに自信をもつためとのことでした。