
Fundamentals of Software Architecture: An Engineering Approach

Figure 10-6. Layered architecture characteristics ratings
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
Diagramming and presenting architectures are two critical soft skills for architects. While entire books exist about each topic, we’ll hit some particular highlights for each.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
Architects struggle to find the correct granularity for services in microservices, and often make the mistake of making their services too small, which requires them to build communication links back between the services to do useful work.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
The entity trap anti-pattern arises when an architect incorrectly identifies the database relationships as workflows in the application, a correspondence that rarely manifests in the real world.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
By not saying “you must” or “you need to,” the architect effectively turned the demand into a simple statement of fact (“this means…”).
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
It’s really through collaboration with the development team that the architect is able to gain the respect of the team and form better solutions. The more developers respect an architect, the easier it will be for the architect to negotiate with those developers.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
(We consider more than 12 developers on the same team to be a big team, and 4 or fewer to be a small team.)
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
architects identify actors who perform activities with the application and the actions those actors may perform. It provides a technique for discovering the typical users of the system and what kinds of things they might do with the system.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
The context section of an ADR specifies the forces at play. In other words, “what situation is forcing me to make this decision?” This section of the ADR allows the architect to describe the specific situation or issue and concisely elaborate on the possible alternatives.