What is a software architect?

I've been talking through the role profile for software architects recently and I'm going to publish a revised version soon. In the meantime, I thought that it's worth clarifying exactly who the profile is aimed at. Although there might not be a common definition of "architecture", there is agreement that there are different scales of architecture. For example, you might have architecture at an application level, at a software system level or at an enterprise level.

Put simply; the role profile is aimed at those of us taking responsibility for the architecture of a bespoke software development, which I've summarised as follows.

The scope of a software/technical architect

Essentially, the scope of the role is the software and the infrastructure on which that software runs upon, which my experience suggests is what people mean by "software architect" or "technical architect" (i.e. they are aggregate terms). What do you think?

About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.



Re: What is a software architect?

I don't like the term software. Software is nothing in itself just part of something. We use the term application architect which seems more appropriate to me. I'm more interested in the commonalities between all kind of architects, why are people calling themselves architect?

Re: What is a software architect?

I think 'Architect' is more of a buzzword than reality. I have known people call themselves architect to shy away from real coding, and they manage to do so using jargons which few people will understand, use politics as the means, AND more surprisingly they get away with all these. These are facts. I believe that you cannot be a successful architect unless you, at one time, have been a brilliant (at least very good) developer. The serious question is, can you call upon an architect for any software system which any technologies? Isn't it that an architect needs to know the technology stack fairly well to architect it? You will need to negotiate with several technology vendors and developers and specialist at the various technology stack. What an architect needs to remember is that there are more knowledgeable and specialist people than him in respective technology stacks. He cannot work in isolation.

Re: What is a software architect?

as skilled as someone There's a tendency when discussing architects to refer to examples of bad ones. The discipline is certainly not unique in that regard!

It's a good question whether an architect needs to be skilled in the technologies they use. We've touched on this before and noted that you'll never be else, nor will you necessarily be even familiar with some of the technologies. The key is to become sufficiently familiar, sufficiently quickly to be making design decisions about those technologies with confidence.

An architect can't do that (effectively) on their own.

Re: What is a software architect?

I agree with Kevin. An Architect needs to become familiar with all the technologies on a project such that they can have an intelligent conversation about those with the specialists using them. The best way to do that is undoubtedly to be humble enough to learn from the specialists. And it doesn't hurt to read veraciously either!

Tom

Re: What is a software architect?

My thoughts exactly; you do need to understand the technologies, particularly if your scope is as I've suggested in the diagram (i.e. responsibility for architecting the overall software system).

Re: What is a software architect?

First, architect is not a knowing all. Second, architecture happens at high level, business and technical feasibility ground. It does not happen at code level. So, there is not such a thing as a Java architect for instance. The guy needs to have two or more tecnologies where he is an expert, and also needs to actually know about a wider range of technologies too. Architects are not in an ivory tower, they are beside the designers and developers, looking at everything, all days, coaching and picking up problems at any moment, surrounded by experts in the technologies. Architects, like leaders, need self-earned authority. That is, they need to earn by themselves the name. If a decision is made, and people accepts it because the truly know that is a good one just because it comes from you, you have authority. BTW, the a more general name should be Software Intensive System's architect. That means we work on a system, which one of its more important parts is software, but not all. There are lots of additional components. So, in that case, the diagram is incomplete. Willliam Martinez.

Add a comment Send a TrackBack