Publishing Date: Januar 2020

Authors: Mark RichardsNeal Ford

Defining Software Architecture

In this definition, software architecture consists of the structure of the system (denoted as the heavy black lines supporting the architecture), combined with architecture characteristics (“-ilities”) the system must support, architecture decisions, and finally design principles.

Make Architecture Decisions

There are eight core expectations placed on a software architect, irrespective of any given role, title, or job description:

  • Make architecture decisions
  • Continually analyze the architecture
  • Keep current with latest trends
  • Ensure compliance with decisions
  • Diverse exposure and experience
  • Have business domain knowledge
  • Possess interpersonal skills
  • Understand and navigate politics

An architect is expected to define the architecture decisions and design principles used to guide technology decisions within the team, the department, or across the enterprise.

Continually Analyze the Architecture

An architect is expected to continually analyze the architecture and current technology environment and then recommend solutions for improvement.

An architect is expected to keep current with the latest technology and industry trends.

Ensure Compliance with Decisions

An architect is expected to ensure compliance with architecture decisions and design principles.

Diverse Exposure and Experience

An architect is expected to have exposure to multiple and diverse technologies, frameworks, platforms, and environments

Have Business Domain Knowledge

An architect is expected to have a certain level of business domain expertise.

Possess Interpersonal Skills

An architect is expected to possess exceptional interpersonal skills, including teamwork, facilitation, and leadership

Understand and Navigate Politics

An architect is expected to understand the political climate of the enterprise and be able to navigate the politics

Laws of Software Architecture

Everything in software architecture is a trade-off.

If an architect thinks they have discovered something that isn’t a trade-off, more likely they just haven’t identified the trade-off yet

Why is more important than how