As was said in the beginning of the chapter, executing your test cases as soon as possible
is an excellent way of getting concrete feedback about your program. In order to run test
cases early, programmers need to integrate the pieces of their code into the code base
often. Programmers could be tempted to work on their own computer until the finish
implementing a “whole” requirement. In industry, this could quite feasibly mean they
keep their code to themselves for several months. However, this is a dangerous practice
– and can lead to what is known in industry as integration hell. Just because a
component works on a programmer’s own computer, this doesn’t mean it will work when
it is assembled with the code other programmers are working on. The earlier it is known
that there are some interface problems or some data that’s not getting passed properly the
better. This knowledge can only be gained by integrating code and testing early and
often. Then, integration problems can be more easily localized in the work that was just
integrated. By localizing the code that contains a new defect, the programmer can
efficiently identify and remove defects.