since each component of the program works independently, each component can be tested by itself without needing the whole program to be completed first. the program can be built piece by piece with confidence that each piece works.