Every enterprise has its own software development practices that cover how developers update code, how changes are tracked and tested and how new releases are created. We generally expect that whatever practices have historically worked within an organization will continue to work for the implementation of this application. However, a build methodology was developed that has worked well for managing concurrent changes to the application that is based on the following principles:
- The application should work in its entirety at all times. Therefore, any change to a part of
the application requires the application to be retested in whole.
- Bugs are more expensive to fix the longer they stay in a system. Hence the importance of
spotting any defect immediately after a software failure or crash occurs.
- In a complex system, errors not always appear where the code is modified, so it would be
unreliable to test selectively based on what is likely to fail to find all
the places of actual malfunction.