As we saw in Chapter 19, Fit tables help solve three major problems in software development. We now look at those problems from a programmer's perspective.
Communication: Providing a way for businesspeople who want a system to communicate their needs in a concrete way. The tests help us to see that we've completed work. They provide concrete examples of business rules.
Balance: Spending less time on gaining balance by reducing the number and severity of problems, catching them early, and making sure they don't return. As software systems age, they're inclined to get more and more difficult to change. Effort is needed, through refactorings, to keep systems in balance. To do this effectively, however, fast, automated tests are needed to help ensure that changes don't introduce bugs.
Agility: Keeping the software in good shape so that changes can be made quickly and effectively to support business change.