When adopting an
agile approach to producing software, it is essential that folks from different
functions come together to work as one team. Of prime importance is the coming
together of the builders and breakers. Both developers
and testers need to work closely together as one team to produce quality
software. Development and testing go hand-in-hand rather than testing playing
catch up with Development. This implies an incremental approach to testing
work-in-progress artifacts as opposed to testing completed pieces. Build something-test it quickly-provide rapid feedback-incorporate feedback-build more-test some more ….
In such an approach
too, it is easy to retain the functional distinctions in terms of assuming that
testers do the testing and developers just code. To achieve greater quality,
the emphasis must be on building in quality and prevention rather than just detection.
Development is equally if not more responsible to build in quality and adopting
quality practices that minimizes defects. Testers would partner with
Development to quickly understand, test and provide feedback.
Also, there needs to be an organization wide emphasis on testing. When
Development produces an artifact, there needs to be demonstrated evidence of
tests having been run with "satisfactory" results. In fact, reporting
of test results for any artifact being delivered by Development needs to be a
requirement rather than something that is desirable or good to have.
Effort/project estimates for producing software must include testing and time
required to implement quality practices.