For every 25 percent increase in problem complexity, there is a
100 percent increase in complexity of the software solution. That’s
not a condition to try to change (even though reducing complexity is
always a desirable thing to do); that’s just the way it is.
That’s Fact 21 in Robert L. Glass’s
Facts and Fallacies of Software Engineering. He backs this up with
a published study from 1979.
This certainly seems right to me. We’re all quick to accept just a
little added complexity to our requirements after we start, especially
if what’s being requested captures our imaginations. (I’ve been
guilty of this many, many times.) But as this fact warns, a little
bit of additional complexity in the problem will lead to a lot
more work in the project.