見出し画像

TDDBCに参加したら、人生にたまにある最高のことを得てしまった

こんにちは、ファームノートのにくです。ファームノートに入る前からこの名前で活動していたので、牛に関するプロダクトをてがけているファームノートで働いているのには不思議な縁を感じますね。

TDDBC札幌2019に参加し、TDDという名前は同じでも内容がだいぶん変わっていたことに驚いたのと、それを通してベストプラクティスは常に変化しつづけているので、自分がベストプラクティスだと思ってやり続けて身につけたことが今もベストプラクティスであるかは自省してみてもよいと感じました。

「ひさしぶりなので挨拶しておくか」

TDDBCが札幌で開催されるのは8年ぶりであったようです。8年前の私はTDDをやり始めたくらいのころで良くわかっていなかったので新鮮な気持で参加して得るものが多かったです。しかし数年間のTDD経験を経て、TDDに関してある程度できている状態であると思っていました。ですから今回の参加にあたって、私にとっては楽しみ以外の意義について、正直あまり期待していなかった部分があります。

ベストプラクティス変わらないと思ってた?ざんねんー

しかし8年前のTDDと現在のTDDでは大きく異なる部分がありました。以前はTDDで利用し残したテストコードというのは、アジャイルテストの四象限の分類では「技術面」で「チームを支援する」ためのものであり、他の象限のテストと混ぜて考えないことが、TDDをうまくやるコツですというスタイルだったと思います。最近のTDDにおけるテストは、それ以外の象限での再利用についても強く意識されているようでした。

世界を望む形に変えるためにやっていたこと

なぜこう変わったか推察すると、以前は自動テストがない状態のプロジェクトが多く、たとえ開発者向けに限定されていても自動テストを加えるというのは意義があることで、もし他の象限の自動テストのことを考慮して導入ができないくらいなら割りきってTDD用途だけにフォーカスした自動テストを導入した方がプロジェクトのためになるという状況だったのだと考えています。

望んでいた世界を手にいれたなら、望んでいた世界を手に入れる方法はもういらないよね

幸いなことにこの作戦は成功して、今は自動テストがあるのがあたりまえになりました。しかしここで過去のTDDによって作られた、構造化されていないテストコードがプロダクションコードの素早い変更を阻害する要因になってしまうという現象が起きるようになったのだと思います。

どういうことかというと、プロダクションコードのふるまいを変えたいと思ったときに開発者がテストに何を書いているか理解しにくければ、1. テストを書きかえる 2. テストを捨てる 3. テストが通らないということを受けいれる を選択しなければいけないのですが、テストを捨てる、テストが通らないことを受けいれるという見切りはとても勇気がいるので多くの人や状況ではテストを書きかえるということを選択せざるをえません。するとプロダクションの振舞いを変えたいときにプロダクションコードの他にテストコードの変更コストが無視できないくらいに加わってしまうということです。素早い変更に耐え得るよきプロダクションコードを生むための補助であったテストコードが時間の経過によって素早い変更を阻害するようになる(こともある)というのは興味深いですね。

ベストプラクティスって、変わるんだなあ

今回、私が驚いたこのことを一般化すると、たとえ同じ名前であっても世界の状況によってベストプラクティスは変わるため、10年間同じやりかたがベストプラクティスであり続けるとは限らないということでした。名前もやることも一緒なのにベストプラクティスは変わっているというのはかなり衝撃的で、新しい領域の知識を仕入れて活用していれば古い考え方に囚われることにはならないと信じていたのですけれど、そうではなくて一旦知っていてもう自信があると感じているところであってもいつかのタイミングで再び知識を仕入れてアップデートするとよりうまくいくとわかったのはとても良かったです。

Expect the UnExpected

期待していなかったことが得られてしまう、人生にたまにある最高のことの一つだと思います。自身の目利きが正確であるなら、多くの場合は期待している通りのことが起きます。しかし私のように自身の目利きが当たることもあるけれど、外れることも多いような人間は、参加前に想像もしていなかったことが起きることを期待して特に理由なく何かに参加してみるというのは悪くない選択肢なのかもしれません。

思い返してみると私は過去に何回かそういった経験をしていました。関東に住んでいたときにたまたま近くで試合開催されるのを知り特に何も期待せずたまたま観に行ったら想像を超える楽しさがあったために北海道コンサドーレ札幌の応援を10年以上続けているとか、秋葉原のヨドバシカメラで何げなくHHKB Proというキーボードを押してみたところそのキータッチの素晴しさに衝撃をうけて(高価さには悩みましたが)手に入れるといったやつです。

謝辞

今回も私がそれほど強い動機がなかったにもかかわらず、ぶらりと参加できたのは、札幌在住の私が行きやすいところでTDDBCが開催されたからで、その結果大変いいものを持ち帰ることができてしまいました。TDDBCを札幌でやろうと頑張ってくださったアジャイル札幌のみなさん、和田さん、井上さん、参加した方たちにあらためて感謝いたします。

ヘッダ画像はWikimediaにあったJohn Hillさんの写真をお借りしました。

この記事が気に入ったらサポートをしてみませんか?