以前に書いた「[開発の進め方]テストケースファースト」
http://d.hatena.ne.jp/iad_otomamay/20070819
に従って、現在プロジェクトを進めています。
単純な話で、
テストファーストなんですが、
「テストコード」は書かずに「テストケース」だけを先に書きましょう
という進め方です。
実際にやってみて、気づいた事。
- プロジェクトメンバーに抵抗なく受け入れられる。
- 詳細設計はほとんど行っていない(DB物理設計や項目定義ぐらい)。
- テストケースはテストコードに比べてレビューしやすい。
- 新人レベルのプログラマーが戦力になる。
- テスト仕様書作成の強制力が増す。
目論みどおりか、それ以上の効果を挙げていると思います。
特に、新人レベルのプログラマーでも「正解」を予め与えた状態で
プログラミングを始めるので、十分な戦力になることが予想外の収穫でした。
これが通常のウォーターフォールだと、
設計書を読んでも細かい部分の正解が分からないため、新人レベルでは戦力になりません。
また、テストコードを先に書こうとすると、
新人レベルがテストコードばかりを書く役目を押し付けられがちで
やはり戦力にならず、テストファーストの意味も薄らいでしまいます。
それから、テストコードに食傷気味のベテランプログラマーさんなどにも
すんなりと受け入れられました。
詳細設計を行わないですむということで、
設計レベルのSEもニコニコ。
以前は、テスト設計書を「出せ出せ」と、プログラマーの尻をたたいてようやく出来ていた
のですが、テストケースファーストにしてから、プロセスの一環であるために
テストケースのドキュメントが完璧に揃うことになります。
かなり良いことだらけなので、これからも進めていきたいと思います。