As the size of a software system grows, the complexity of that software system grows “at least as
fast the square of the size of the program” [Weinberg, G., 1992] and quickly outstrips the
relatively fixed capacity of a human brain. Gerald Weinberg calls this law of software
development “the size / complexity dynamic”.
FDD decomposes the entire problem domain into tiny problems, which can be solved in a small
period of time, usually 2 weeks Î decomposed problems independent to each other reduces the
need of communication.
“Observe that it is perhaps 100 times more costly to make a change to the requirements during
system testing as it is to make the change during requirements definition“ (Fairley, R., 1985).
FDD splits the project into iterations so that the distance in time between analysis and test is
reduced Î early discovery of errors reduces the cost of fixing the errors.