The difference lies in where these roles are positioned in a project, an ecosystem or a supply chain. In other words who they work with and for.
A few words of explanation: at different times I have held roles as Solution Architect or Service Architect and work with people in many other architectural roles. All these roles bring significant challenges but can be supremely rewarding. It's well worth aspiring to one or more of them during your career.
The clue is generally in the name. So a Solution Architects typically work within large enterprises and are responsible for ensuring that all the applications used in-house, by customers or suppliers play nicely together. This many include software developed in-house by independent software vendors or running in the cloud. This may initially appear to be all about API specification and design. However, this role usually extends to include making sure that DevOps processes and the choices made about tools or technology accross the enterprise's fleet of applications remains compatible. This typically involves a lot of time invested in understanding the roadmaps of many suppliers.
Solution Architects are responsible for a single application or technology product including both hardware and software. Cloud Architects are usually responsible for one or more of the compute, network, storage components of Cloud Services. A Software Architect may be responsible for the overall design of an application, particularly when there are many subcomponents that need to work together.
Your reply is awesome.
How about enterprise architect and system architect?
You mentioned DevOps. How would you define DevOps.
As with all things Job title related the difference is going to depend entirely on the company that is handing them out as titles. They could all be the same. They could have different focuses (solution architect might be focused just on a single product, while an enterprise architect might be focused on architecting the communication between a suite of products, and a software architect focuses on the architecture of the code itself).
I would pay more attention to the job description connected to those titles then the titles themselves. In my experience both as a hiring manager and a developer titles mean next to nothing, I skip them and read the description of the job.
They all abuse the word architect :D
Don't you think software and infrastructure are complex enough to require architecting?
I do, I was just joking about the titles we use in software.
provided good answers...
Sometimes it really depends on the company. I've come across a "web architect" once and I'm still not sure what they did, probably a solution architect focused on web.
This is the only correct answer (so far). I think there is a rather perverse obsession on job titles. (Not just in the software industry, in general).
The actual difference in the titles is what the company defines them to be, if they even define it. There is no IETF RFC, or ISO standard.
One problem with defining a title is restricting the roles.
Sometimes just because you're an architect, you don't write mundane boring janitorial code. Just because you're a lead it means your decision has more weight. You because you're a programmer, you don't think critically about integrating with other parts of the systems.
It takes away shared responsibility and builds a hierarchical relationship.
Systems expands (or sometimes shrink) across time and roles changes. You could define your whole system as a unique system/solution, but things split and decouples.
I still don't get the "enterprise" thing though.
"Enterprise" is just a word that you use to say that you are just looking at a (flawed) high level abstraction of a thing, and are not concerned with everything below.
I'll have a go at the Enterprise Architect title: this usually refers to a role that looks at the way a larger organisation (aka Enterprise) functions: the culture it has, how information and finance flows through it, how risk is managed, how people are hired and retained and how that lot matches up to the roadmap/vision and strategies of the business.
This is followed by the refactoring of these things to improve performance, usually through applying lean thinking, restructuring (sometimes de-structuring), transformation programmes, etc. to deliver more effectively. For the massively bored, go look at TOGAF as one way to approach this (although it has detractors, me included).
TL;DR: It's engineering a whole company to meet desired/expected performance.
When I was in university, I had a lecturer who didn't like unit tests. He was a...
The heartbeat of the software industry.
We’re a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.