Software Architecture

What is software architecture?

It depends. Everyone in IT asks this question at some point and the answer they get is a mixed bag depending on who tries to answer it. So to deepen the general state of confusion I thought I would add yet another definition.

What IS a Software Architect?

It depends. I think of Software architects as “Master builders”. They may not have the title “Architect” but they are doing most of the following:

Now when I say “Business Acumen” for example, I don’t mean that the architect has an MBA, but they must have a good awareness of how their company operates and what influences its success. Similarly when I mention Creativity, I don’t mean they are artists or anything like that but they have some capacity to create something new and enjoy doing so.

OK, but what does an Architect DO?

It depends. At a really high level they focus on how the theoretical practices of software engineering can be practically applied.

Do you NEED an Architect?

It depends. There are TONS of applications being built where an architect is not involved and is not required. Those applications still have an architecture (even if it is accidental or unplanned) of some kind. The trouble starts when things start to scale up, either in volume (business, users, traffic) or in the number of systems involved. If this has not been considered beforehand then things can quickly start sliding toward “big ball of mud” territory and development progress reduces. So the architecture of things, their design absolutely matters and is something we should always consider. The person doing this (senior developer for example) may not always be titled an Architect but they are filling that role.

You say “it depends” a lot, is that a joke?

Well it depends, do you find it funny?