宮本武蔵は『五輪書』の中で、戦いで生き残るためのたった1つの方法は「はたして自分は生き残れるのだろうか」という雑念を取り除くことだと述べている。生き残れるかを心配していると、まばたきをするくらいほんの一瞬の躊躇が生と死を分けることになる。
プログラミングも戦いである。それも人間の心の中で起こる戦いだ。個人やチームの強さと勇気で、自信喪失や欲望、傲慢などの悪魔の囁きを打ち負かすことができるかを試す戦いである。宮本武蔵の戦いと同じく、勝ち負けの心配から自分を断ち切ることが、勝利への鍵である。
(Kent Beck, 「eXtreme Programmingテスト技法」(日本XPユーザーグループ (2001)) の序文に寄せて)
Kent BeckがXPのプラクティスであるテスト駆動開発(TDD)に関して、宮本武蔵の五輪書を引いた味わいの深い文章です。自分も大いに感銘を受け、このテキストを何度も読み返して、プログラミングに対して向き合っていました。
当然、原典である五輪書にも当たるべきです。五輪書(ごりんのしょ)は、宮本武蔵による兵法書であり、その剣術の奥義をまとめたものであると言われています。原文は読みにくいので、現代語訳(大倉, (2012)) を入手して読んでみたところ…Kent Beckの序文に相当するテキストは見当たりません(見つけた方は教えてください)。
かろうじて近い内容の言葉を探すと、水の巻に見られます。五輪書は、地の巻、水の巻、火の巻、風の巻、空の巻の5章から構成されており、水の巻では心の構えや身体の構えについて論じられています。
兵法における心の持ち方。兵法の道において、心の持ちようは平常の心と変わってはならない。平常のときも戦いのときも少しも変わらず、心を広く素直にして、緊張しすぎず、少しも弛まず、心に偏りがないように、心を真中におき、心を静かに揺るがせて、その揺るぎのなかにも一瞬たりとも揺るぎを失わないように、よくよく吟味すべきである。(大倉(2012),p.36)
Kent Beckが指しているのがこの一節であると言い切ることはできませんが、内容としては近いかと思います。原文も引用しておきます。
兵法心持之事。兵法之道におゐて、心の持様ハ、常の心に替事なかれ。常にも兵法之ときにも、少も替らすして、こゝろを廣く直にして、きつくひつはらす、すこしもたるます、心のかたよらぬやうに、心をまん中に置て、心を静にゆるかせて、其ゆるきのせつなもゆるきやまぬやうに、能々吟味すべし。(大倉(2012), p.139)
Kent Beckは、TDDによってプログラミングにおける不安を断ち切ることができると言っています。
時には勝ち、時には負ける。やりすぎてしまうこともある。興奮したり、不安になって先走ることもある。それでも、私には従うべき道がある。私が不安を断ち切ることができるように、自分を導いてくれる1つのプラクティスというテクニックが。
(Kent Beck, 「eXtreme Programmingテスト技法」(日本XPユーザーグループ (2001)) の序文に寄せて)
自分もこのような心境に至りたいものです。まだまだ鍛錬が必要です。