Over the years, the software architect has been joined by the enterprise architect in the pantheon of software...
team titles. Now it's time to include the solution architect. Individuals that take on solution architecture find themselves filling a varied set of roles. While they focus on the particular issues of an organization, they must also be versed in the general skills and techniques of architecture. At times, solution architects have to oversee the integration of very diverse corporate technology efforts.
"The solution architect focuses on a particular business problem or issue that requires a comprehensive business/IT solution," said William Ulrich, president of TSG, Inc., and long-time IT consultant. "The solution architect leverages all aspects of business architecture, information architecture, application and SOA architecture, and all other architectural inputs provided under enterprise architecture."
Figure 1: Enterprise and solution architects may seem similar, but there are many key differences between their roles.
This puts the solution architect in a somewhat different role than that of the enterprise architect, whose focus is much broader. The enterprise architect, in Ulrich's words, "[ties] views and blueprints together across multiple business units and disciplines regardless of the solution to a particular issue."
Solution architecture is still hard to define because the practice can take many forms. For example, solution architects dealing with an end-to-end value stream that formalizes a loan agreement for a customer must address the identification of business services, Web services, data services, middleware and more. They also have to cope with back-end application interfaces as required.
A solution architecture includes elements from many diverse organizational systems. In an insurance industry setting, for instance, territory covered could include the process streams required for issuing a loan, modifying a loan and defaulting. Such a loan would require a state machine management design as well as the identification of cross-value stream rule interactions based on state changes.
The solution architecture typically includes various blueprints and verbiage to communicate the overall architecture to solution delivery teams. If an application or multiple applications require transformation, integration or replacement, the solution architect must incorporate transitional architecture views and transformation concepts as a part of the solution.
Ulrich said that solution architects require foundational support, which includes well-articulated business architecture and information architecture, as well as a well-documented current-state application architecture.
Solution architect wanted
Len Fehskens, vice president of skills and capabilities at The Open Group, said the training process of being a solution architect requires mastering many skills, which can make it hard to break into the field. According to Fehskens, prospective solution architects will benefit greatly from internship or apprenticeship programs, designed for entry-level candidates. These programs allow candidates to work alongside experienced practitioners until they are capable of independent practice.
Unfortunately, such programs can be difficult for organizations to afford, said Fehskens. "The answer is that, until such apprenticeship programs are acknowledged as a professional necessity, a solution architect has to acquire solution architect experience under [the] cover of some other job role [or] title and then find someone willing to sponsor them based on that 'covert' experience," he explained.
"The field is young and still emerging, and the majority of best practices are proprietary to organizations that have learned by trial and error," Fehskens continued. "A competent solution architect is good at filtering out what's relevant from what's irrelevant. Solution architects should have a childlike obsession with asking 'why.' They need free access to the stakeholder community -- not just some figurehead spokesperson for the stakeholder community."
What is enterprise architecture? What is solution architecture?
The enterprise architect has garnered much attention in the last decade, which was a time when significant attention has been directed toward having more successful outcomes from innovative software development experiments. It is difficult to say how the solution architect will fit into the grand scheme.
For better or for worse, the solution architect is often viewed in relation to his or her enterprise architect counterpart [see Figure 1]. Viewers like Graham Berrisford, solution and enterprise architect at Avancier Ltd. Consultancy, suggest that solution architects typically focus on a fewer number of products or projects while enterprise architects tend to operate across multiple products and projects. The former may focus on tactics, while the latter tends to be strategic. The solution architect is responsible for building and leading the design of a specific product while the enterprise architect deals with a large and diverse portfolio of systems or applications.
Another view comes courtesy of Rob Daigneau, principal and solution architect at ArcSage LLC, and author of the recent book, "Service Design Patterns," published by Addison-Wesley.
He noted that the IEEE 1471-2000 (or the "Recommended practice for architectural description for software-intensive systems") states that architecture comprises the "fundamental organization of a system embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution."
"Given these definitions, it's probably easiest to define what a software architect does," Daigneau noted. "Quite simply, a software architect is a person who designs software. Those who espouse 'Agile philosophies,' myself included, believe that all developers should possess architectural (i.e., design) skills. However, there are usually one or a few more senior architects that guide the overall direction of a product's design and help to ensure its conceptual integrity. This is where solution architects and enterprise architects come in."