あるプロジェクトマネージャが、プログラマにこのような指示をしていた。
おかしなことを言うものだ。
プログラミング中に「動作確認」ができるのなら、積極的に行うべきだろう。そのほうが品質のよいプログラムができるに決まっているからだ。
プログラミングの目的は、単に「ソースコードを書く」ことではない。「正しく動くプログラムを作る」ことである。
文章の誤字・脱字を探すのとは違って、ソースコード上のミス(バグ)は、読み返しただけではなかなか見つからない。実際にプログラムを動かして確認しなければ、見逃してしまうことも多い。経験が少ないプログラマであればなおさらである(※1)。
大きなシステムを作る場合でも、まず一部の機能だけのソースコードを書き、そこだけを動かしてみて、確認すべきだ。その部分が正しく動いたら、別の小さな機能を書く。少し書いては動作を確認し、動作を確認してはまた少し書く。このようにして、小さな機能を着実に作り、それを積み上げていくことで、品質の高いシステムが出来上がるのである(※2)。
プログラマが念入りに「動作確認」を行うほど、品質は高くなる。「プログラミング中にプログラムを動かすな」という指示は、品質を落とすためになされているとしか思えない。
私がそのような指示を受けたプログラマであったら、指示は無視して、プログラミング中の動作確認を行うだろうと思う。また、全てのプログラマにも、そうであって欲しいと思う。
問題は、なぜこのマネージャがバグの数を増やすような指示を出したのか、ということだ。
続く
※1
もちろん、ソースを読み返す必要がない、というわけではないので、誤解のないよう。
※2
テストドリブンとか、テストファーストと呼ばれる手法は、それを徹底(かつ自動化)したものといっていいだろう。
■関連記事
バグを求めるものたち 中編
バグを求めるものたち 後編
図解入門 よくわかる最新ソフトウェアテスト手法の基本と極意
―ソフトウェア品質向上のための実践テスト手法
―ソフトウェア品質向上のための実践テスト手法
posted with amazlet on 06.05.06
若林 宏
秀和システム (2003/11)
売り上げランキング: 238,824
秀和システム (2003/11)
売り上げランキング: 238,824
おすすめ度の平均: ![2.25](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-2-5.gif)
![2.25](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-2-5.gif)
![3](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-3-0.gif)
![2](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-2-0.gif)
![3](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-3-0.gif)
世界一わかりやすいプロジェクト・マネジメント
posted with amazlet on 06.05.06
サニー ベーカー G.マイケル キャンベル キム ベーカー
総合法令出版 (2005/04)
売り上げランキング: 7,301
総合法令出版 (2005/04)
売り上げランキング: 7,301
おすすめ度の平均: ![5](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-5-0.gif)
![5](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-5-0.gif)
![5](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-5-0.gif)
![5](https://img-proxy.blog-video.jp/images?url=http%3A%2F%2Fimages-jp.amazon.com%2Fimages%2FG%2F09%2Fx-locale%2Fcommon%2Fcustomer-reviews%2Fstars-5-0.gif)