Taming the Complexity Dragon
James O. Henriksen (Wolverine Software)
Abstract:
Every software developer seeks to maximize software applicability, correctness, performance, obedience, and ease-of-use, and to minimize software cost and complexity. Of these seven properties, complexity is by far the most important. While complexity is bad enough in its own right, it is made even worse by its adverse correlation with the other properties. Applicability, correctness, obedience, ease-of-use, and performance suffer as complexity increases, and cost increases.
Paradoxically, organizations that are in the best position to do something about complexity are the ones who are in fact increasing existing complexity and introducing new complexity to the systems we use. The time has come to mount a frontal attack on the complexity dragon.
This talk will be given from the perspective of an experienced simulation software developer. A large number of concrete examples will be presented to illustrate how both developers of, and users of, simulation software can deal with complexity. While we may not be able to slay the complexity dragon, we may be able to tame him.