What is software architecture?

What is architecture?

Architecture is a widely-used term within software development yet is very hard to define rigorously. Indeed, it changes meaning from domain to domain, company to company, project to project and even from employee to employee. Read more...

Types of architecture

Types of architecture Architecture applies to various aspects of software systems development, understandably so given its generic and flexible terms of reference. The classification of an architecture into a particular type may be obvious from its context and is, arguably, irrelevant to its success. Nonetheless, it can be useful to have an understanding of the breadth of the discipline - it may also help to put the subject of these essays into perspective. Read more...

Strategy rather than code

Is enterprise architecture the next step? There are many different types of architecture and many names to describe the same thing. This essay summarises application, system and enterprise architecture before looking at whether enterprise architecture is the next logical step for people on the software architecture career path. Read more...

What is the big picture?

What is the big picture? Whenever we talk about software architecture, undoubtedly we'll end up talking about the "big picture", but what exactly does this mean? Put simply, when we're thinking about software development, most of our focus is placed on the code. Here, we're thinking about object oriented principles, classes, interfaces, inversion of control, refactoring, automated unit testing and the countless other practices that help us build better software. If you have a team of people that are *all* thinking about this, then who is thinking about the other stuff? Read more...

Some frequently asked questions


Eric Nelson from Microsoft interviewed Simon Brown at the DevWeek 2009 conference about our software architecture workshop, transitioning into an architecture role and whether architects should code. Take a look ... it's a nice overview of our approach to software architecture and to training software developers to be more architecturally aware.

Read more

You can see lots of other content discussing what software architecture is about and why it's important in our What is software architecture? category.