Otras charlas de Global Software Architecture Summit 2019 también en podcast: https://lk.autentia.com/GSAS19-Podcast
My position is that an architect needs a good understanding of five things:
The environment in which their system is intended to run. For cloud based systems this is an understanding of distributed system principles, virtualization, networking, containerization, failure in the cloud, and security.
Architectural design principles. These are: quality attribute requirements drive design choices, business goals lead to quality attribute requirements, and design choices are constrained by the environment and by business considerations.
Processes to make the design principles concrete. Translating an architectural design principle into a design repeatedly requires a process. Knowing that quality attributes drive design does not get you a design but a series of questions: what are the important quality attribute requirements, what are the options for realizing those requirements, and what are the trade offs among the requirements that result from these options?
Architectural styles. Systems are not derived from first principles. Knowing the strengths and weaknesses of various architectural styles allows the designer to take advantage of the experiences of the field.
The tools to be used in the development, deployment, and forensic processes. Current tool suites have the side effect of deskilling software engineers. Software architects must understand the tool suite and their characteristics.