Some teams choose to fix bugs as soon as they come to light (early bug fixing). Others “save them up” until the end of the development cycle (late bug fixing). Of these, early bug fixing is by far the superior strategy.
Early bug fixing depends upon two principles:
Processes that are likely to uncover bugs (testing, code reviews, getting running software into users’ hands) happen continuously during the development cycle.
Bug fixing takes priority over everything else.
The aim is to keep the number of bugs in the software (both those we know about and those we haven’t yet found) as small as possible.
Until you start looking for them, you can have little or no idea how many bugs ...