⚡️ Enterprise Architect Vs. Software Architect Vs. Solution Architect - Who Does What?
The Tech Caffeine #43: This Week in Tech
I hope you're enjoying "The Tech Caffeine." I would appreciate it if you passed this along to a friend.
🗞 In This Issue
Top 5 Articles that I am recommending you to read
Deep Dive: Enterprise Architect Vs. Software Architect Vs. Solution Architect - Who Does What?
Listen to this: Google SRE Podcast on why SLOs can be problematic and proposes alternative methods for monitoring complex, large-scale systems.
Tweets of the week
👉 Top Five
1️⃣ Scott Triglia shares his experience with building and scaling the Staff+ engineering community at Stripe.
2️⃣ If you have been considering contributing to open source projects but don’t know how to start(scale and survive), then Daniel Stenberg (Creator of CURL and many other projects) has some great tips for you.
3️⃣ Last week Google announced AlloyDB for PostgreSQL, and it made it to the news. Before jumping into the use, knowing what is under the hood is always good.
4️⃣ If you are still confused and don’t know how to differentiate between Artificial Intelligence, Machine Learning, and Deep Learning, here is a detailed explainer.
5️⃣ a16z has recently published the 2022 State of Crypto Report, which covers a lot of ground on the Global Crypto Market, NFTs, WEB3, real-world impact of crypto, and much more.
🤿 The Deep Dive
Enterprise Architect Vs. Software Architect Vs. Solution Architect - Who Does What?
If you have been part of an IT or software organization, you may meet various types of architects daily. Primarily,
Software/Data/Application/Infrastructure Architects
Enterprise Architects
Solution Architects
Many times, you don’t know who is expected to do what. In this post, I am trying to explain the differences between these roles and the responsibilities for each role.
Software/Data/Application/Infrastructure Architects
Software/Data/Application/Infrastructure Architects are responsible for defining and implementing the architecture of a particular system. If you have been building an application(web/mobile/desktop), then it’s the software architect’s responsibility to design a robust system as per the requirements.
When the application is of Data/Analytics nature, the Data Architects are expected to play a significant role in designing data sourcing, processing, models, etc.
The Infrastructure architects are mainly responsible for focusing on the overall infrastructure requirements such as (including but not limited to) - hardware/cloud management, network management, storage, backup management, etc.
Solution Architects
Solution Architects are mainly responsible for helping clients use a technology already built. For example, you may have seen that organizations like AWS/GCP/Azure/Stripe have a Solution Architect role. They are required to work with clients so that these technical solutions can be easily used to solve clients’ business problems.
Check out this snippet from Stripe’s Solution Architect job description, and it will help you understand what I am trying to convey -
Enterprise Architects
Enterprise Architects need to maintain a larger organizational view so that Software/Data/Application/Infra Architects can focus on their system scope.
Here is what Enterprise Architects do -
Define Enterprise-wide guiding principles.
Build and maintain Tech Radars so that individuals are aware of preferred/discouraged technologies
Define business capabilities for each application in the landscape.
Use Business Capabilities Map to do portfolio rationalization
Facilitate Standards Management (For example, security standards, integration standards, etc.)
Provide reference architectures/patterns for common problems.
Etc.
There isn’t like one type of architect is better than other. Each architect has a role to play in an organization.
Some organizations might be using these titles and may have completely different job descriptions. I have tried my best to summarize the common understanding.
🎧 Listen To This
Narayan Desai explains why SLOs can be problematic and proposes alternative methods for monitoring complex, large-scale systems.