DEV Community

Victor Homem Heck
Victor Homem Heck

Posted on

What does a software architect do?

So, after searching for a while, and noticing how each company treats a software architect(at least here in Brazil), I am wondering what exactly would be the responsibilities of a software architect?

Discussion (2)

Collapse
derickhess profile image
Derick Hess

A software architect is usually software developer/engineer with a lot of experience. They are in charge of designing software starting from the highest abstraction levels. They decide the design of the software, technologies used, tools, platforms, coding standards, etc. The design and understand how everything in the project/software will fit together so others on the team can implement their design.

Collapse
kspeakman profile image
Kasey Speakman • Edited on

They are responsible for matching the “qualities” of the software to what the business needs. Ex. Ops cost, dev cost, maintainability, reliability, performance, and many others. You can’t have them all, and different architectural patterns make different trades. If you ask business these questions directly, they will say all of them are important. So you have to interview the stake holders to properly frame the discussion. There are certain qualities the business is willing to spend money (dev labor) to ensure. And others that ultimately won’t affect the bottom line.

The architect finds a combination of strategies that fits. Ex. Stateful or stateless, micro or mono, request or event driven, and many more. (And different business capabilities may warrant different quality combinations.) In an ongoing role, they assimilate new services in a way that preserves the desired qualities. And of course, the business changes focus on what qualities are important over time.