自己フィードバック

OOPである程度大規模のプログラムを書いていると、自分で設計したはずのクラス群なのに、どうもしっくりこないというか、いわゆる身につかない時期がある。もちろんテストも完了しており、論理にも矛盾はないはずなのにだ。そんな時は人に説明してくれ、といわれても大抵はしどろもどろでまともに説明できないし、なにより自信が持てないのである。しばらく経つと内容を完全に忘れてしまうのもこういう時だ

そんな時は、全体の仕様の固まり具合や、実装の完成度なんか気にせずに、敢えて他の人が自分のプログラムを使うことを前提にした、人に見せるためのドキュメントを書くようにしている。ドキュメントを書き進めるうちに、使いづらい部分が見えてきたり、自分自身の中であやふやだった論理が明確になってきたりするので、実装に戻って気になった部分を直す、そして直した部分をドキュメントに加筆する、という正の自己フィードバックを得ることができるのだ。まあ、単に自分が不器用なだけかもしれないが。