Industry experts typically estimate the cost of rework at 40-50% of the total project cost. The amount of rework can be significantly reduced by ensuring that quality is built into the project from the start.
We encourage the following practices for building quality into your project.
Building the Thing Right
To ensure the internal quality of your project, developers perform unit and integration testing. However, to be effective, a developer testing program must ensure that these tests are run frequently, and that the tests are measured and managed. The benefits are increased by making the results of this developer testing accessible by the whole project team, and allowing testers to drill down and determine any areas of weakness in the developer testing. Additional practices, such as static analysis, measurement of code metrics and peer review, provide additional assurance of code quality.
Building the Right Thing
While developer testing practices help ensure the internal quality of your project, they do not ensure that the business objectives are met. We recommend augmenting developer testing practices with specification workshops, which provide a forum for the project team to discuss and clarify requirements. One of the outputs of the specification workshop is a set of examples, that are turned into tests for ensuring that the "right thing" is built.
We will provide training and mentoring to help your project team adopt these practices. Our staff have experience with both open source and commercial tools to assist with these practices.