What Is The Goal Of a Software Architect?


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 :

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:

image info

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.

10 Step Quick Introductions to Frameworks

Related Posts

Spring Boot Tutorials for Beginners

At in28Minutes, we are creating a number of tutorials with videos, articles & courses on Spring Boot for Beginners and Experienced Developers. This resources will help you learn and gain expertise at Spring Boot.

Spring and Spring Boot Video Tutorials for Beginners

At in28Minutes, we are creating a number of tutorials with videos, articles & courses on Spring Boot for Beginners and Experienced Developers. Here's a list of video tutorials and courses for you

Creating Spring Boot and Vue JS CRUD Full Stack Application with Maven

This guide helps you create a full stack application with all the CRUD (Create, Read, Update and Delete) features using Vue JS as Frontend framework and Spring Boot as the backend REST API. We use Maven as the build tool.

Software Design - Separation Of Concerns - with examples

Software architects and programmers love having Seperation of Concerns. What is it? Why is it important? Let's get started.

Object Oriented Software Design - Solid Principles - with examples

Software design is typically complex. Object oriented design takes it to the next level. There are a number of design patterns and other stuff to be aware of. Can we make things simple? What are the goals to aim for when you are doing object oriented design? SOLID Principles is a great starting point for Object Oriented Design.

Software Design - Open Closed Principle - with examples

Open Closed Principle is one of the SOLID Principles. You want your code to be easily extended. How do you achieve it with minimum fuss? Let's get started.

Software Design - What is Dependency Inversion Principle?

Dependency Inversion Principle is one of the important SOLID Principles. Dependency Inversion Principle is implemented by one of the most popular Java frameworks - Spring. What is it all about? How does it help you design good applications?

Introduction to Four Principles Of Simple Design

With agile and extreme programming, the focus is on keeping your design simple. How do you keep your design simple? How do you decide whether your code is good enough?

Software Design - Single Responsibility Principle - with examples

For me, Single Responsibility Principle is the most important design principle. What is Single Responsibility Principle? How do you use it? How does it help with making your software better? Let's get started.

What is an In Memory Database?

In this article, we understand what the term "In-Memory Database" actually means. We see what scenarios they can be used, and why they are important.