Front End Architecture: Where Business Meets IT
Front end architecture describes how business capabilities are exposed to employees, customers, and partners through the web, mobile, voice, and web services interaction media.
A thoughtfully designed front end architecture will result in bottom line productivity gains and top line growth improvements while improving time-to-market and lowering development and maintenance costs.
In your examination of front end architecture, you will first look at the "what" of the front end. This includes the benefits, goals, and capabilities required of the front ends that serve a wide variety of user groups and interaction media.
Next, you will turn your focus on the "how" of front end architecture, looking at an overall front end solution that satisfies the broad set of functional and non-functional requirements.
Finally, you will review guiding principles for successfully designing and implementing your front end architecture.
Why Focus on Front End Architecture?
The overall goal of front end architecture is to deliver business capabilities through efficient end user centered experiences that cross multiple user groups and interaction media. Common components are leveraged across user experiences where possible and practical.
What are the benefits that would be derived from realizing this goal?
First of all, end user productivity is improved by providing a seamless view of the content, data, and functions needed to perform a business role, linked to defined processes and procedures. Increases in end user productivity will directly benefit the bottom line.
Next, as the relationship between external constituents deepens through front end interactions, the top line grows. In the case of customers and partners, the front end, in a very real sense, manages the relationship between your organization and its partners and customers.
Finally, architecting an overall front end solution that thoughtfully reuses components across user groups and interaction media will result in faster time-to-market and lower development and maintenance costs.
With the potential benefits of front end architecture in mind, you will now focus on the requirements tied to achieving these benefits.
Front End Architecture: Desired Qualities
A solution architecture must satisfy a particular set of functional and non functional requirements. You will first consider the non functional requirements or quality attributes desired for the front end.
Certain qualities describe attributes of the architecture that can be measured and observed at run time, such as usability. Other qualities, such as reusability, can only be measured and observed at design time. You will first look at the desired run time qualities, and then the design time qualities.
Front End: Desired Run Time Qualities
The front end serves an organization's employees, partners and, customers. Thus, the number one quality that must be satisfied through the front end architecture is usability. The ISO definition of usability is the efficiency, effectiveness, and satisfaction with which specific users achieve specified goals within a particular environment (ISO 9241).
Usability is tied to other run time qualities, such as performance and availability. A system isn't very usable if it isn't available, or if it doesn't provide adequate interaction response time to its users.
Usability is paramount in achieving the bottom line and top line growth benefits. The front end architecture must always start with the end user, and then work its way back to the solution.
Another desired quality of front end architecture related to usability is medium transparency, defined as a consistent experience for the end user and all their interactions through the front end. These interaction media include web, mobile, voice, and web services.
There are many "cross medium" use cases that the front end architecture must satisfy. A few examples include:
- A customer beginning a transaction on the web and completing it over the phone with the assistance of an employee in a contact center
- A customer beginning a transaction on an interactive voice response unit and completing it on the web
- A partner completing a sales transaction on behalf of a customer, posting this transaction through a web service, with the customer later servicing their account on the customer website
From the discussion above, you should see that the desired run time qualities of usability and medium transparency are directly tied to the goals of improving bottom line results through productivity improvements, and top line growth through improving ease of doing business, allowing customers and partners to seamlessly interact through their preferred medium.
Front End: Desired Design Time Qualities
Next, you will look at the design time qualities of development scalability, "phase in" ability, reusability and maintainability, all of which are tied to delivering upon the goals of reduced time to market and lower development and maintenance costs.
A front end architecture serving multiple user groups and interaction media is a very broad goal for an organization. As such, this architecture must allow for multiple development teams to contribute components that comprise the overall solution. The ability to scale development across multiple teams and to enable parallel development is a key requirement.
"Phase In" Ability
A quality related to development scalability is what you might call "phase in" ability. The front end architecture must allow functionality to be incrementally "phased in" over time—in a way that makes sense to the employee, customer, or partner. Legacy assets and packaged applications must be woven into the overall front end user experience, even if they may be "phased out" over time. This quality might be met in part by agile software development practices, but also by the architecture itself.
Where possible and practical, the architecture should allow and promote reuse so front ends can be assembled and configured quickly for multiple user groups and interaction media. This is tied to the goal of reducing time-to-market and lowering development costs.
The architecture should be designed so the least amount of change is required to modify the functionality that is exposed across multiple user groups and interaction media.
Page 1 of 4