プログラミングをしている時には、プログラマとしての意識、つまり「作る側」の意識と、ユーザとしての意識、つまり「使う側」の意識の両方が大切になります。というのは当たり前の話ですから、殆どの人はもう聞き飽きたでしょう。
しかしながら、実際にまさにプログラムを書いている最中は、どうしても「作る側」の意識になります。これは仕方のないことです。だから、「使う側」の意識に切り替るタイミングを入れていかなければいけません。
そのため、僕は動作確認を頻繁に入れます。プログラムを実行させずにコードだけひたすら書き続けるということはしません。昔読んだ本の中には、コードだけひたすら書くことを推奨し、コーディングしながらデバッグをしないようにと書いてあるものもありましたが、それだと無駄にバグが多くなるようにしか思えません。その本ではバグの収束曲線を把握するためだと説明がありましたが、それは本来不要なバグを作りこんでからデバッグするという無駄な手間を増やすことであるとしか僕には思えませんでした。
ちなみに、動作確認を頻繁に行うというのは、ある意味テスト駆動開発に近いです。実際、僕はテスト駆動開発を知る前には、自動化テストの有無を除けばテスト駆動開発と同じやりかたを自分でしていました。要するに、最初に小さい仕様を考え、コードを書き、手動でテストを行います。それが動いたら、また仕様を少し加えたものを考え、コードを書き、手動でテストを行う・・・という繰り返しですね。これに自動化テストの記述を加えて、テスト実行を自動化すればまさにテスト駆動開発です。
ちなみにテスト駆動開発であれば自然に「作る側」と「使う側」の意識が切り替わるので今回の話は改めてするまでもないかもしれません。ただ、必ずしもテスト駆動開発を全ての開発の部分に適用できるわけではありませんから、やはり自分で意識することもどうしても必要だと思いますね。
※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうぞ。
0 件のコメント:
コメントを投稿