From one side complexity of telecommunications infrastructure is the consequence of the industry innovative nature and its constant positioning on the front edge of the technologies development. From the other side a lot of complexity within an operator is artificially created resulting in higher implementation and maintenance costs.
To make its clear by complexity I mean additional efforts required to support exotic, insignificant or low priority use cases. This definition is not comprehensive but it fits best to subject of this post. It is quite an obvious fact that complexity has a multiplier effect within operator's technical environment. In other words complexity tends to spread itself every domain it touches multiplying costs up to several times. Here are some root causes of such an artificial complexity
- Solution recently implemented as temporary way-out then was coated with business processes and required to be reproduced in every newly implemented system.
- Support of legacy products and product models.
- Support of legacy equipment not compatible with the newer standard integration interfaces.
- Unreasonable toughening of business requirements. Too literal understanding of business requirements.
And hundreds more.
So let’s add Pareto principle to our armory and start going into details.
One of the major reason of unnecessary complication is simply peoples unwilling to bother themselves with looking on the problem from end-to end prospective. What means answering following questions
How support of this use case will impact the efforts of current project?
How the necessity to support this use case will impact other areas e.g. product management, assurance, provisioning, billing, customer care, selling, supply chain management, network management etc?
How support of this use case will impact the operational and phase out costs?
What is the aggregated impact?
How does impact correlate with the commercial or non commercial (loyalty, prestige) effects of use case support?
Moreover, asking and answering all these questions doesn't make sense if there is no feedback between business and engineering. Implementation project should be always able to negotiate the business requirements provided otherwise the implementation costs will rise uncontrollably. Business always requires more in hope to receive at least half of what have been requested. Too literal treatment of business requirements is frequently worse than too free one.
Personally I have one criteria to consider complexity evaluation thinking. It is 5% and it is much thinner margin than in Pareto law. For example, does this use case impacts less then 5% of customers? Why so? Just for fun. 5% forms up a critical mass to trigger self-synchronizing behavior among the rest 95% of any given people set if they do something simultaneously. You'd never offend the 5% of innovators promoting the new products.
Final conclusion. Each case is unique and there is no common solution. But always bear in mind your strategic principles one of which should be Perfection and another one keeping thing as simple as they could be.