updated 17h ago
Fundamentals of Software Architecture: An Engineering Approach
One important thing to note is that agility does not equal time to market. Rather, it is agility + testability + deployability. This is a trap many architects fall into when translating domain concerns. Focusing on only one of the ingredients is like forgetting to put the flour in the cake batter. For example, a domain stakeholder might say somethi
... See morefrom Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
Programmers know the benefits of everything and the trade-offs of nothing. Architects need to understand both.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
Two components are connascent if a change in one would require the other to be modified in order to maintain the overall correctness of the system. Meilir Page-Jones
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
There are no wrong answers in architecture, only expensive ones.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
To use a physics analogy, software systems model complex systems, which tend toward entropy (or disorder). Energy must be added to a physical system to preserve order. The same is true for software systems: architects must constantly expend energy to ensure good structural soundness, which won’t happen by accident.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
Each architecture characteristic that an architect designs support for potentially complicates the overall design.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
Never shoot for the best architecture, but rather the least worst architecture.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
Often, the architect is also the technical leader on projects and therefore determines the engineering practices the team uses. Just as architects must carefully consider the problem domain before choosing an architecture, they must also ensure that the architectural style and engineering practices form a symbiotic mesh. For example, a microservice
... See morefrom Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago
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.
from Fundamentals of Software Architecture: An Engineering Approach by Mark Richards
Glenn Goodrich added 6mo ago