1. Making complexities easier to understand
2. Revealing unnecessary complexities
After this has been done, it is easier both to reduce and manage complexities, as well as establishing the proper IT/IS strategies, improving processes and making the right choices on IT investments.
However, it is important to understand that complexity does not need to be a bad thing, it just needs to be at the right place. In fact, increasing complexity is required for making a business more agile as well as increasing cost efficiency by enabling reuse and faster modification of IT solutions. Besides having complexity at the right place, there needs to be predictable patterns behind it, and it needs to be based on explicit and well established principles and rules.
The increase of unnecessary complexity is definately a maturity thing. By applying a coherent architectural strategy, using design patterns, enforcing standards, establishing and exchanging best practices, and consolidating heterogonous environments unnecessary complexities will be reduced. It is my strong recommendation to anyone dealing with IT to make Einstein's "Make everything as simple as possible, but not simpler" to their mantra. Because in the IT industry we tend to overcomplicate things, add unnecessary complexity, and not care enough about following principles, patterns, standards and guidelines.
To make necessary as well as unnecessary complexities clear to business decision makers is a challenging task for IT and management professionals. But there simply is no escape for businesses - making the complex clear is an absolute necessity for making the right business decisions.