In this article, we have a close look at what your goal as an architect should be. Before reading any further, take a piece of paper and put down the list of goals from your perspective.
This is the second article in the following series of articles on Software Architecture :
- 1 - Quick Introduction To Software Architecture
- 2 - What Is The Goal Of a Software Architect?
- 3 - 5 Qualities of a Great Software Architect
- 4 - 5 Important Responsibilities of a Software Architect
- 5 - Software Architecture - Why do we use Layered Architectures?
Technology Enables/Supports Business
The most important point to understand is that technology enables and supports businesses. That is the primary reason why we build awesome applications and frameworks.
For example, Netflix built an excellent microservices architecture, in order to support its business and consumer needs. Netflix’s architecture enables them to provide an out-of-this-world movie streaming experience to all their customers. Simply having great technology will not help them survive.
Your role as an architect is very similar - architect applications that support business needs.
What Are These Business Needs?
The business needs can be put into the following categories:
Functional Requirements
Netflix might say it needs a web page where all the available movies are listed. A user should then be able to select a movie by clicking on it, and watch it. This is an example of a functional requirement. All businesses have them.
Non Functional Requirements
Netflix might put down a condition that the application needs to support over 100,000 users. The amount of time needed to load a page should not exceed 2 seconds. Also, application should be very secure. In addition, the system should be available 99.9999% of the time. These are all non functional requirements.
Quick Feature Releases
In general, if you get a fresh requirement today, you don’t want it be delivered 6 months down the line. There is a need for early delivery of features.
High performance organizations such as Facebook, Twitter, Amazon and Netflix do multiple feature releases in a single day.
Early Feedback
Another thing that all businesses need is early feedback. If a system is down, a particular feature is not working as expected, or if a large number of users don’t like a particular feature, the business wants to know of it as early as possible.
Quick Troubleshooting And Support
In today’s customer-centered world, it is of high importance that you have teams to deliver quick troubleshooting, and excellent customer support services. You also need to solve any problems that customers raise, very quickly.
Focus On The Right Things as an Architect
A lot of technology folks are obsessed with technology - tools, frameworks, languages and stuff like that. These are very important in their own right, without a doubt.
However, the problems comes when we forget the very reason why the application is being built - to enable a business to succeed.
As an architect, your unwavering focus should be on the business entirely, and look to reach business goals using the right technology solutions.
Do check out our video on this:
Summary
In this article, we focused on what the goals of an architect should be. We saw that most developers focus on the technology, but lose sight of the business goals. Applications are enablers of businesses. We then saw the five categories of business goals that an architect should try to meet through the application design.