Solution architecture is a description of a specific solution that comprises business-related, informational, and technical points of view. Solution architectures help developers define the requirements and strategies needed to successfully implement a software solution.
A solution usually consists of multiple systems and describes a conceptual model that represents the structure and behavior of each system, as well as how they interact with each other. Each system is broken down further with fundamental structures such as system elements, their properties, behavior, and how they interact with other elements.
This can be a complex and difficult concept to understand. Let’s try to make it easier to comprehend.
Painting a technological picture
Think of solution architecture like the craft of painting a picture. To paint a picture, we need to account for each brushstroke at the lowest level, and depending on the concept of what we’re trying to achieve with our painting, different areas of the painting will be segmented into darker or lighter shades so we can achieve depth, object focuses, differentiated backgrounds, blurred effects, and more.
The levels within the painting are pretty much the same and are indistinguishable to the untrained eye. But to truly understand and analyze the art of painting, you need to grasp the importance of each part.
The practice of solution architecture is similar.
The three levels of architecture
Each level plays an important role in architecting a proper, efficient solution that yields business value.
Enterprise architecture allows us to define the “big-business picture.” What is the overall business infrastructure, and how does each part of this infrastructure interact with the others? This is defined through a business model and its associated business processes.
At this level, the architecture describes how a business’s infrastructural segments communicate and interact with each other, as well as what their purpose is and how they can provide business value. Understanding these high-level elements is essential to constructing a concrete solution.
Breaking down each business process into smaller manageable segments provides us with details, much like the process of breaking down a painting into its individual parts to better understand the piece of art as a whole. These details about the business process illustrate how the process is managed at a higher level. A “workflow description” describes how the business operation is managed, in what order, and why.
Every application within a larger business process either works independently or interacts with other applications or services as needed to bring value and fulfill requirements.
Describing these applications and how they behave and interact with each other is defined in solution architecture.
If we were to take each application or service and analyze it separately, we could see that they usually run specific logic, thus managing data and information. Technical architecture is like analyzing and defining each brush stroke on the painting, an even deeper level of analysis than examining the parts of a painting.
At this point, we’re analyzing efficiency: affordability, scalability, manageability, and reusability. This level of analysis allows us to understand an application’s or service’s specifications and adjust them as needed.
A simplified analogy
Let’s take a step back and imagine that a car is our business model.
A car is a vehicle that comprises multiple systems, including a transmission system, a braking system, a steering system, an electrical system, and much more.
Each of these individual systems provides a certain value while executing specific operations and completing processes in the act of driving. We can accelerate, steer, and use light signals for safety. When we’re cold, we can turn on the heat or air conditioning if we’re hot. We can turn on the headlights at night, and when it’s raining, we can use the windshield wipers.
Each system is different, driven by the process definition and related workflows designed for fulfilling specific operations.
Turning on the lights uses the light hardware and communicates through the electrical system, but it does not have anything to do with moving the car through the transmission system. The electrical system, however, is a conduit between multiple systems, allowing the engine to communicate with dials inside the car, providing information on whether our engine is overheating or not, what the oil pressure is, our speed, and much more.
Designing a safe car that runs reliably, is comfortable, and is easy to use is proof that great architecture provides great cars.
The same is true for software systems. They are defined by individual business processes, workflows, and operations, but these components must work together to make the solution as a whole run smoothly.
Designing great software requires great architecture.
The final product impact
A person running a business is making choices based on business needs, affordability, and time constraints, with the ultimate goal of enhancing business processes or creating business value. Software systems often serve those needs. They enable businesses to manage information and processes better, more efficiently, so that businesses can realize financial and operational success.
Being able to find information about where a product is, tracking it while moving from one place to another, providing proper timely information to other business that you work with, or having a software system alert you when something is wrong with your product, is so impactful on quality and ability to run a business at the highest productivity level as possible.
So, why not have great software that can help us. Why settle for low quality?
This is where great architecture comes into play. If architected properly, the system will be easily scalable, manageable, affordable, and will bring business value, fast. The return on investment is how we decide if we’re going to invest in it or not. If that return is high and fast, yet affordable to start with, there is no reason why a business wouldn’t decide to go for it.
An example of an already successful business investing in a software system to help run it is the software system I built for Assisted Living company in 2003-2005. With four facilities and over 600+ bedrooms, they provided care for 1000+ patients. There was an extensive number of personnel, all of whom were trying to keep track of all details required and regulated by government rules and HIPAA compliance.
Going from paper trail to automated digital trail, which automated formerly manual processes and better defined their day-to-day operations, helped this business cover almost all issues they’re experiencing. Most were caused by human error.
After just a few months of using new software, the business was capable of providing better care for their patients. The savings of $350,000+ yearly in only one of their facilities proved how great an investment solution architecture was for the company.
Even if you’re making millions, saving a good chunk of money goes a long way, plus the operating expenses are lowered with a higher quality of operations itself.
That’s how much impact we’re talking about––a lot!
It all starts with an idea
What are your existing business issues? Good analysis of the business itself, its infrastructure and processes, workflows and operations, and data and information goes a long way to better understanding why something is happening and what needs to be done to improve it.
Using the latest trends in technology and designing great systems that are easily scalable and manageable––while providing affordable solutions to businesses in need of efficient ROI––is ultimately the goal of every software solution. If not, it should be!