Publishing Date: Januar 2020
Authors: Mark Richards, Neal 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.
Keep Current with Latest Trends
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