How do you define software architecture? Everyone will have their own definition. There are many definitions out there, and most of them are very much software-oriented; an example is the one chosen by Wikipedia which defines software architecture as “the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.”
Microsoft's definition is fairly high-level and abstracts this subjective notion: “Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application.”
Another interesting definition comes from Martin Fowler: “The highest-level breakdown of a system into its parts; the decisions that are hard to change; there are multiple architectures in a system; what is architecturally significant can change over a system's lifetime; and, in the end, architecture boils down to whatever the important stuff is.”
In the end, this is the way we view it at Mentum: software architecture is for us the continuously evolving set of decisions and architectural patterns that structure our software tools, enable transversal attributes such as scalability, performance, maintainability, usability and quality, and upon which we can base the efficient development of the best functionality to address the needs of the radio planning market in general and of our customers in particular.
A key business goal of any software architecture is to enable the addition of features without major effort, and in general the ability to sustain changes and ensure the application built on this architecture remains future-proof all along its life cycle.
This is achieved by bridging customer and technical requirements through the development of use cases and scenarios that need to be implemented in the software. As stated by Microsoft, “The goal of architecture is to identify the requirements that affect the structure of the application. Good architecture reduces the business risks associated with building a technical solution.”
In addition, it is critical to ensure that the architecture itself can stand the test of time, to some extent; it is equally critical for a business to realize that the activity of architecting is not something that is done once but instead is a repeated and continuous endeavor to retain flexibility and allow the products to handle the inexorable evolution in the software, RF and hardware technologies as well as the evolving needs of the telecom market.
At Mentum, we focus on ensuring the architecture of our products allows our R&D efforts to remain efficient throughout the life of our products. We aim to deliver the functionality that the market needs as soon as we can and with the highest quality level, yet at a competitive price; this can only be achieved with a best-in-class architecture and a continuous investment in this important area. Finally, we invest considerably in ensuring our architecture decisions are flexible enough that they allow our products and components to follow the software evolution, including reaching new delivery paradigms such as SaaS (Software as a Service) and enabling new products such as Mentum Fusion.
A well thought-out architecture must consider these important principles:
- Build to change instead of build to last
- Understand the end user needs and the domain before designing components
- Identify sub-systems in your product and consider layers and components to abstract them and identify the key interfaces
- Use an incremental and iterative approach to designing the architecture
- Learn from history, document your decisions and identify and mitigate key risks
- Do not under-invest in architecture
Mentum has a long track-record of building successful architectures. Our flagship product, Mentum Planet, undergoes significant architectural redesigns in every major release, the last one having been implemented in Mentum Planet 5.0. Those represent a very large investment and allow this product to remain best-in-class. The current architecture has been fundamentally redesigned in order to optimally support the evolving needs of 4G radio planning, looking into both the technology and the streamlining of engineering tasks and workflows. Similarly, Mentum Ellipse has recently been redesigned entirely, following the same architectural principles, though adopting patterns that are specific to microwave and backhaul planning, along with its technological and engineering specificity.
To Mentum as well as any business, a good architecture allows:
- Delivery of higher quality at a lower cost
- Better code reuse hence faster software development
- Support for incremental code optimization
- Facilitate communication between R&D and customers, through product management, sales and customer support
The value of a good architecture to our customers is tangible in different ways:
- Because our R&D efficiency is boosted by our investments in building an excellent architecture, the pace of our developments is high and therefore the products evolve quickly to address the evolving needs of the market (comparing the Mentum Planet release cycle with the other products in the market speaks for itself)
- This fast evolution of our products increase the value of the investment our customers put into the product, as well as the value of the maintenance we provide, since it includes all improvements made to the products and modules owned by the customer
- We become faster in leveraging new hardware or software technologies, and to adapt our platform to new technologies, thus further increasing the evolving value of our product
To conclude this note, I would like to mention that Mentum, since its creation, has invested heavily in building and developing the right architectures for its products, and includes at the heart of its strategy a continuous investment in this important area. We also make sure to always use the latest available technologies such as the .NET framework and all capabilities Windows operating systems bring release after release. The latest versions of Mentum Planet, Ellipse and Fusion are a testimony of the value this investment brings to our customers and so will be our next round of releases. Our software tools are there to both last and evolve, remaining best-in-class at all times, and continuously adapting to the needs of our customer and the evolution, or even revolution of our market.