Sorting Out Software Complexity

Nov 9th, 2002 by Tony in * papers

Why are there so many different correct approaches to designing the solution to a problem? Because the solution space is so complex.

Why is estimation so difficult? Because our solutions are so much more complicated than our problems appear to be.

Why is reuse-in-the-large so elusive? Because complexity magnifies the solution diversity that limits the value of large-scale reuse.

Why do top people matter? Because it takes considerable intelligence and skill to overcome complexity.

Why do the best designers use iterative, heuristic approaches? Because there are seldom any simple and obvious design solutions, and even more seldom any optimum ones.

Why is software maintenance such a time consumer? Because it is seldom possible to determine, at the outset, all the ramifications of a problem solution.

Why does software have so many errors? Because it is so difficult to get it right the first – of even the Nth time.

Complexity, I would assert, is the biggest factor involved in anything having to do with the software field. It is explosive, far reaching, and massive in its scope.

— Robert L Glass, Communications of the ACM, November 2002

No Comments