下で紹介した本は、人間の脳が何かを学習する上で、報酬を得ることが学習効率を挙げる上でとても重要であるという脳科学の知見を元に、効果的な勉強法について明かした本だ。
ここで言う報酬とは、達成感とほぼ等価だ。小さな達成感を積み重ねると、より高いスキルや知識を得ようとして正のフィードバックが発生する。こういったプロセスのことを強化学習と言うらしい。
さて、ソフト開発というのは意外と報酬が得られない作業である。
実装フェーズに至るまでに長い設計フェーズを経たり、開発を始めてからもかなりたたないと開発者本人も実際に動くものを見ることが出来ないなどざらである。
そんな中、いわゆるアジャイル開発、なかでもTDD(テスト駆動開発)というのは、報酬感・達成感を得ることで脳が活発化するフィードバックをうまく活用した開発方法といえるのではなかろうか。
こまめにテストプログラムを書くことで自分の書いたプログラムを動かすことが出来る。テストプログラム自体もプログラムなので、動かす楽しみ(自分の書いた成果が目に見える形で現れる達成感)が味わうことが出来る。
TDDではこまめにテストを書く、本体を書く前にテストプログラムを書くことを推奨しているので、小さな達成感を積み重ねることが出来るというわけだ。